1. Shell
shell就是终端程序的统称,充当了人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是Bash解释器,这个Bash解释器主要有以下4项优势:
(1)通过上下方向键来调取执行过的Linux命令;
(2)命令或参数仅需要输入前几位就可以用Tab键补全;
(3)具有强大的批处理脚本;
(4)具有使用的环境变量功能。
2. Linux命令的格式
命令名称 [命令参数] 命令对象
命令名称:表达的是想要做的事;
命令参数:用于对命令的调整(分为长格式和短格式);
命令对象:一般指要处理的文件、目录、用户等资源名称,也就是命令执行后的“承受方”。
3. 常用系统工作命令
3.1 echo命令
用于在终端设备上输出字符串或变量提取后的值
3.2 date命令
用于显示或设置系统的时间与日期
3.3 timedatectl命令
用于设置系统的时间
3.4 reboot命令
用于重启系统
3.5 poweroff
用于关闭系统
3.6 wget命令
用于在终端命令行中下载网络文件
3.7 ps命令
用于查看系统中的进程状态
五种常见的进程状态:R(运行);S(中断);D(不可中断);Z(僵死);T(停止)。
其他状态:高优先级(<);低优先级(N);被锁进内容(L);包含子进程(s);多线程(l)。
USER:进程的所有者;PID:进程ID号;%CPU:运行器占用率;%MEM:内存占用率;VSZ:虚拟内存使用量(KB);RSS:占用的股东内存量(KB);TTY:所在终端;STAT:进程状态;START:被启动的时间;TIME:实际使用CPU的时间;COMMAND:命令名称与参数。
3,8 pstree命令
用于以树状图的形式展示进程之间的关系
3.9 top命令
用于动态地见识进程活动及负载等信息
第一行:系统时间、运行时间、登录终端数、系统负载(1分钟、5分钟、15分钟内的平均值,数值越小负载越低)
第二行:进程总数、运行中的进程、睡眠中的进程、停止的进程数、僵死的进程数
第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等
第四行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量
第五行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量
3.10 nice命令
用于调整进程的优先级
PR和NI代表的是进程的优先级,数字越低(-29~19)优先级越高
3.11 pidof命令
用于查询某个指定服务进程的PID号码值
3.12 kill命令
用于终止某个指定PID值的服务进程(若系统提示无法终止可以加参数-9)
3.13 killall命令
用于终止某个指定名称的服务所对应的全部进程
4. 系统状态检测指令
4.1 ifconfig命令
用于获取网卡配置和网络状态等信息
ens160:网卡名称;inet:IP地址;ether:物理网卡地址;RX、TX:接收数据包与发送数据包的个数及累计流量
4.2 uname命令
用于查看系统内核版本和系统架构等信息
4.3 uptime命令
用于查看系统的负载信息
当前系统时间;系统已运行时间;启用终端数量;平均负载值
4.4 free命令
用于显示当前系统中内存的使用量信息
total:内存总量;used:已用量;free:空闲量;shared:共享使用的内存量;buffers:磁盘缓存的内存量;buff/cache:缓存的内存量;available:可用量
4.5 who命令
用于查看当前登入主机的用户终端信息
4.6 last命令
用于调取主机的被访问记录
4.7 ping命令
用于测试主机之间的网络连通性(-c:总共发送次数;-I:指定网卡名称;-i:每次间隔时间;-W:最长等待时间)
4.8 tracepath命令
用于显示数据包到达目的主机时图中经过的所有路由信息
4.9 netstat命令
用于显示如网络连接、路由表、接口状态等的网络相关信息
参数:-a(显示所有连接中的Socket)-p(显示正在使用的Socket信息)-t(显示TCP协议的连接状态)-u(显示UDP协议的连接状态)-n(使用IP地址不使用域名)-l(仅列出正在监听的服务状态)-i(显示网卡列表信息)-r(显示路由表信息)
4.10 history命令
用于显示执行过的命令历史
历史命令会保存到家目录中的.bash_history文件中
清空当前用户在本机上执行的Linux命令历史记录信息
4.11 sosreport命令
用于收集系统配置及架构信息并输出诊断文档
5. 查找定位文件命令
5.1 pwd指令
用于显示用户当前所处的工作目录
5.2 cd命令
用于切换当前的工作路径
cd -:返回上一次所处目录;cd ..:进入上级目录;cd ~:切换到当前用户的家目录;cd ~ username:切换到其他用户的家目录
5.3 ls命令
用于显示目录中的文件信息
ls -a:可以看到全部文件;ls -l:可以查看文件的属性、大小等详细信息;ls -d:查看目录属性信息
5.4 tree命令
用于以树状图的形式列出目录内容及结构
5.5 find命令
用于按照指定条件来查找文件所对应的位置
-name:匹配名称;-perm:匹配权限;-user:匹配所有者;-group:匹配所属组;-mtime -n +n:匹配修改内容的时间(-n指n天以内,+n指n天以前);-atime -n +n:匹配访问文件的时间(-n指n天以内,+n指n天以前);-ctime -n +n:匹配修改文件权限的一天(-n指n天以内,+n指n天以前);-nouser:匹配无所有者的文件;-nogroup:匹配无所属组的文件;-newer f1 ! f2:匹配比文件f1新但比f2旧的文件;-type b/d/c/p/|/f:匹配文件类型(块设备、目录、字符设备、管道、链接文件、文本文件);-size:匹配文件的大小(+50KB为查找超过50KB的文件,反之);-prune:忽略某个目录;-exec .... {}\:后面可跟用于进一步搜索结果的命令
5.6 locate命令
用于按照名称快速搜索文件所对应的位置
使用find指令进行全盘搜索虽然更准确但效率有点低
第一次使用locate命令之前记得先执行updatedb来生成索引数据库
5.7 whereis命令
用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置
5.8 which命令
用于按照指定名称快速搜索二进制程序(命令)所对应的位
6. 文本文件编辑命令
6.1 cat命令
用于查看纯文本文件(内容较少的)
6.2 more命令
用于查看纯文本文件(内容较多的)
6.3 head命令
用于查看纯文本文件的前N行
6.4 tail命令
用于查看纯文本文件后N行或持续刷新文件的最新内容
6.5 tr命令
用于替换文本内容中的字符
6.6 wc命令
用于统计指定文本文件的行数、字数或字节数
-l:只显示行数;-w:只显示单词数;-c:只显示字节数
6.7 stat命令
用于查看文件的具体存储细节和时间等信息
除了修改时间外,Linux文件包含3种时间状态:Access Time(内容最后一次被访问的时间,简称Atime);Modify Time(内容最后一次被修改的时间,简称Mtime);Change Time(文件属性最后一次被修改的时间,简称Ctime)
6.8 grep命令
用于按行提取文本内容
常用参数:-n(显示行号);-v(反向选择——仅列出没有“关键词”的行)
6.9 cut命令
用于按列提取文本内容
6.10 diff命令
用于比较多个文件之间的内容差异
参数:--brief(确认两个文件是否相同);-c(详细比较多个文件的差异之处)
6.11 uniq命令
用于去除文本中连续的重复行
6.12 sort命令
用于对文本内容进行再排序
参数:-f(忽略大小写);-b(忽略缩进与空格);-n(以数值型排序);-r(反向排序);-u(去除重复行);-t(指定间隔符);-k(设置字段范围)
7. 文件目录管理指令
7.1 touch命令
用于创建空白文件或设置文件的时间
参数:-a(仅修改“访问时间”);-m(仅修改“修改时间”);-d(同时修改访问时间和修改时间)
7.2 mkdir命令
用于创建空白的目录(可以结合-p参数来递归创建出具有嵌套层叠关系的文件目录)
7.3 cp命令
用于复制文件或目录
在Linux系统中复制操作具体分为3种情况:
(1)如果目标文件是目录,则把源文件复制到该目录中
(2)如果目标文件也是普通文件,则会询问是否要覆盖它
(3)如果目标文件不存在,则执行正常复制操作
参数:-p(保留原始文件的属性);-d(若对象为“链接文件”,则保留该“连接文件”的属性);-r(递归持续复制-用于目录);-i(若目标文件存在则询问是否覆盖);-a(相当于-pdr)
7.4 mv命令
用于剪切或重命名文件
7.5 rm命令
用于删除文件或目录
参数:-f(强制执行);-i(删除前询问);-r(删除目录);-v(显示过程)
7.6 dd命令
用于按照指定大小和个数的数据块来复制或转换文件
参数:if(输入的文件名称);of(输出的文件名称);bs(设置每个“块”的大小);count(设置要复制“块”的个数)
7.7 file命令
用于查看文件的类型
7.8 tar命令
用于对文件进行打包压缩或解压
参数:-c(创建压缩文件);-x(解开压缩文件);-t(查看压缩包内有哪些文件);-z(用gzip压缩或解压);-j(用bzip2压缩或解压);-v(显示压缩或解压过程);-f(目标文件名);-P(保留原始的权限与属性);-p(使用绝对路径来压缩);-C(指定解压到的目录)