文章目录
Linux的基本指令
一、基础指令:
1、ls指令:
-  用法1:ls 
 含义:列出当前工作目录下的所有文件/文件夹的名称
-  用法2:ls 路径 
 含义:列出指定路径下的所有文件/文件夹的名称
- 用法3:ls [选项] 路径
 含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
- ls -l 路径:以详细列表的形式进行展示
- ls -la 路径:显示所有的文件/文件夹(包含了隐藏文件/文件夹)
- ls -lh 路径:以列表的形式并且在显示文档大小的时候以可读性较高的形式显示。
  
  
 上述列表中的第一列字符表示文档的类型,其中"-"表示该行对应的文档类型为文件,"d"表示文档类型为文件夹,隐藏文档一般都是以"."开头。
  
2、pwd指令:
用法:pwd(print working directory,打印当前工作目录)
3、cd指令:
命令:cd(change directory,改变目录)
只输入cd,切换到当前用户的家目录。
4、mkdir指令:
用法1:mkdir 路径 (可以是文件夹名称也可以是包含名称的一个完整路径)
例:在指定路径下创建出一个文件夹test
mkdir /home/test
用法2:mkdir -p 路径
含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错
 
 用法3:mkdir 路径1 路径2 路径3 …(表示一次性创建多个目录)
 
5、touch指令:
作用:创建文件
 语法:touch 文件路径(路径可以是直接的文件名也可以是路径)
例:在当前路径下创建一个文件,命名为Linux.txt
touch linux.txt
例:同时创建多个文件
touch linux1.txt linux2.txt
例:用户家目录中创建文件,linux.txt
touch /home/smk/linux.txt
6、cp指令:
作用:复制文件/文件夹到指定的位置
 语法:cp 被复制的文档路径 文档被复制到的路径
例:使用 cp 命令来复制一个文件
 
 注:在复制过程中可以对新位置的文件进行重命名,但如果不是必要,建议保持前后名称一致。
例:使用 cp 命令来复制一个文件夹
 
 注:当使用 cp 命令进行文件夹复制操作的时候需要添加选项"-r"(-r表示递归复制),否则目录将被忽略。
7、mv指令:
作用:移动 文件/文件夹 到新的位置
 语法:mv 要移动的文档路径 要保存的位置路径
例:使用mv命令移动一个文件
mv a.txt /home/a.txt
例:使用mv命令移动一个文件夹
mv /home/a /a
补充:在Linux中重命名的命令也是mv,语法和移动语法一样。
mv /aaa /bbb
8、rm指令:
作用:删除文档
 语法:rm [选项] 要移除的文档路径
 选项:
- -f:force,强制删除,不提示是否删除
- -r:表示递归
例:删除一个文件
rm linux.txt
如果在删除的时候不想频繁的确认,则可以在指令中添加选项"-f"。
例:删除一个文件夹
 
 注意:删除一个目录的时候需要做递归删除,并且一般也不需要进行删除确认询问,所以移除目录的时候一般需要使用-rf选项。
例:删除多个文档
rm -rf a liunx.txt
例:删除一个目录下都以Linux开头的文件
rm -f linux*
9、vim指令:
语法:vim 文件的路径
 作用:打开一个文件(可以不存在,也可以存在)
 常用命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- shift+冒号 切换到底线命令模式,以在最底一行输入命令。
底线命令:
- q 退出程序
- w 保存文件
- q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
按ESC键可随时退出底线命令模式。
案例:使用vim打开文件,保存并退出:
 
10、输出重定向:
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖掉原先的文件内容
 >>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:正常执行的指令 >/>> 文件的路径(文件可以不存在,不存在则新建)
例:使用覆盖重定向,保存 ls -la的执行结果,保存到当前目录下的 ls.txt
ls -la >ls.txt
例:使用追加重定向,保存ls -la的执行结果到 ls.txt 中
ls -la >>ls.txt
11、cat指令:
作用1:cat有直接打开一个文件的功能。
 用法:cat 文件的路径
 
 作用2:cat还可以对文件进行合并
 用法:cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
例:合并2个文件,并存到一个文件中(配合输出重定向使用)
 
二、进阶指令:
1、df指令:
作用:查看磁盘的空间
 语法:df -h(-h表示以可读性较高的形式展示大小)
 
2、free指令:
作用:查看内存使用情况
 语法:free -m(-m表示以M为单位查看)
 
 Swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
3、head指令:
作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。
 语法:head -n 文件路径 (n表示数字)
 
4、tail指令:
作用1:查看一个文件的未n行,如果n不指定默认显示后10行
 语法:tail -n 文件的路径(n同样表示数字)
 
 作用2:可以通过tail指令来查看一个文件的动态变化内容(变化的内容不能是用户手动增加的)
 语法:tail -f 文件路径(该命令一般用于查看系统的日志比较多)
5、less指令:
作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多
 语法:less 需要查看的文件路径
6、wc指令:
作用:统计文件内容信息(包含行数、单词数、字节数)
 语法:wc -lwc 需要统计的文件路径(不加参数默认这三个)
- -l:表示lines,行数
- -w:表示words,单词数 依照空格来判断单词数量
- -c:表示bytes,字节数
  
7、clear / ctrl + L 指令:
作用:清除终端中已经存在的命令和结果
 语法:clear 或者 快捷键:ctrl + L
需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息。
8、管道(重要):
管道符:|
 作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。
 语法:管道不能单独使用,需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。
1、过滤案例:需要通过管道查询出根目录下包含“y”字母的文档名称。
ls / | grep y
2、扩展处理:请使用学过的命令,来统计某个目录下的文档的总个数?
 答:ls / | wc -l
 
 即根目录下有25个文件
三、高级指令:
1、hostname指令:
作用:操作服务器的主机名
 语法1:hostname,含义:表示输出完整的主机名
 语法2:hostname -f ,含义:表示输出当前主机名中的全限定域名(即本地网络)
 
2、whoami指令:
作用:“我是谁?”显示当前登录的用户名
 语法:whoami
 
3、ps -ef 指令(重点)
指令:ps 
 作用:主要是查看服务器的进程信息
 选项含义:
- -e:等价于"-A",表示列出全部的进程
- -f:显示全部的列(显示全字段)
执行结果:
 
 列的含义:
 UID:该进程执行的用户id;
 PID:进程id(process ID);
 PPID:该进程的父级进程id(parent process ID),如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程;
 C:Cpu的占用率,其形式是百分数;
 STIME:进行的启动时间;
 TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;
 TIME:进程的执行时间;
 CMD:该进程的名称或者对应的路径;
在ps的结果中过滤出想要查看的进程状态(常用)
ps -ef|grep “进程名称”
例:查看火狐浏览器的进程:
 
4、du -sh指令:
作用:查看目录的真实大小
 语法:du -sh 目录路径
 选项含义:
- -s:只显示汇总的大小
- -h:表示以高可读性的形式进行显示
  
5、find指令:
作用:用于查找文件
 语法:find 路径范围 选项 选项的值
 选项:
- -name:按照文档名称进行搜索(支持模糊搜索)
- -type:按照文档的类型进行搜索
例:使用find来搜索httpd.conf
find / -name httpd.conf
例:搜索etc目录下所有的conf后缀文件
find /etc -name *.conf
例:使用find来搜索/etc/sane.d/目录下所有的文件
find /etc/sane.d/ -type f
例:使用find来搜索/etc/目录下所有的文件夹
find /etc -type d
6、service指令(重点)
作用:用于控制一些软件的服务启动/停止/重启
 语法:service 服务名 start/stop/restart
例如:需要启动本机安装的 Apache(网站服务器软件),其服务名 httpd
service httpd start

通过ps命令来检查 httpd 服务是否启动:
ps -ef|grep httpd

7、kill指令(重点)
作用:表示杀死进程
 语法:kill 进程PID(语法需要配合ps一起使用)
例:需要 kill 掉 Apache 的进程
 
 与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall
 语法:killall 进程名称
 
8、reboot指令:
1、reboot指令
 作用:重新启动计算机 
 语法1:reboot 重启
 语法2:reboot -w 模拟重启,但是不重启(只写关机与开机的日志信息)
9、shutdown指令
作用:关机
 语法1:shutdown -h now 或 shutdown -h 15:25
 案例:设置Linux系统关机时间在晚上12点
 
 除了shutdown关机以外,还有以下几个关机命令:
init 0
halt
poweroff
10、uptime指令:
作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间)
 语法:uptime
 
11、netstat -tnlp指令:
作用:查看网络连接状态
 语法:netstat -tnlp
 
 选项说明:
- -t:表示只列出tcp协议的连接;
- -n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示;
- -l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接;
- -p:表示显示发起连接的进程pid和进程名称;
12、chmod命令:
作用:chmod(change mode)命令是控制用户对文件的权限的命令
 语法1:chmod [ugoa] [[+-=][rwx] 文件或目录
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
 
 只有 “文件所有者” 和 “超级用户” 可以修改文件或目录的权限。
可以使用 “数字形式” 与 “字符形式” 表示文件的权限。
 
 在命令选项中,用 “ugoa” 来代表用户类别:
- u 表示该文件的所有者;
- g 表示文件所属组;
- o 表示其他用户;
- a 表示所有用户。
命令选项中用 “+ - =” 表示权限的操作动作:
- +表示增加权限;
- -表示取消权限;
- =表示赋值权限。
实例:
1、将文件 file1.txt 设为所有人皆可读 :
chmod ugo+r file1.txt 或 chmod a+r file1.txt
2、去掉所有人对 mymkdir 文件的执行权限:
chmod a-x mymkdir
3、为 ex1.py 文件拥有者增加可执行权限:
chmod u+x ex1.py
4、将文件 file1.txt 与 file2.txt 设该文件拥有者与其同一组的用户可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
5、将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
chmod命令常用选项:"-R" 选项,递归修改指定目录下所有文件、子目录的权限。
此外 chmod 也可以用数字来表示,语法2:chmod abc 文件或目录
其中 a,b,c 各为一个数字,分别表示 User、Group、及 Other 的权限。
r=4,w=2,x=1
若要 rwx 属性:4+2+1=7
 若要 rw 属性:4+2=6
 若要 rx 属性:4+1=5
相比字符形式,数字形式更为简便易用。通常在设置权限时都采用数字形式,字符形式主要用来对权限进行细微的调整。
例:
1、对 mymkdir 文件进行如下权限设置:
- 所有者具有读写执行权限;
- 所属组具有读和执行权限;
- 其他用户具有读和执行权限。
用数字形式的 chmod 命令完成:
chmod 755 mymkdir
2、使所有用户对 file1 文件 具有 读写执行 权限:
chmod a=rwx file1 或 chmod 777 file1
3、将 /usr/src 目录及其中所有的子目录、文件的权限都设置为rw-r--r--。
 chmod -R 644 /usr/src










