一、Shell
计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同组成的,而
让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux 系统的内核负责完成对
硬件资源的分配、调度等管理任务。系统内核对计算机的正常运行来讲是很重要的,因此一般不建议直接去编辑内核中的参数,而是让用户通过基于系统调用接口开发出的程序或服务来管理计算机,如图所示。
1.1 Shell 是一个命令行工具。Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux 系统默认使用的终端是Bash(Bourne-Again SHell)解释器。主流Linux 统选择Bash 解释器作为命令行终端主要有以下4 项优势。
通过上下方向键来调取过往执行过的 Linux 命令;
命令或参数仅需输入前几位就可以用 Tab 键补全;
具有强大的批处理脚本;
具有实用的环境变量功能。
二、常用的系统工作命令
要想准确、高效地完成各种任务,仅依赖于命令本身是不够的,还应该
根据实际情况来灵活调整各种命令的参数。常见执行Linux 命令的格式是:
命令名称 [命令参数] [命令对象]
命令名称、命令参数、命令对象之间要用空格键分隔。命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀。长格式和长格式之间不能合并,长格式和短格式之间也不能合并,但短格式和短格式之间是可以合并的。
2.1 man 执行查看帮助命令
2.2 echo 输出字符串或提取后的变量值命令
echo 命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。
例如:
1.把指定字符串“111”输出到终端屏幕上
2.使用$变量的方式提取变量SHELL 的值,并将其输出到屏幕上
2.3 date 显示及设置系统的时间或日期命令
date 命令用于显示及设置系统的时间或日期,格式为“date [选项] [+指定的格式]”。
2.4 reboot 重启系统命令
reboot 命令用于重启系统,其格式为reboot。
由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root 管理员来
重启,其命令如下:
2.5 poweroff 关闭系统命令
reboot 命令用于重启系统,其格式为reboot。
由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root 管理员来
重启,其命令如下:
2.6 wget 下载网络文件命令
wget 命令用于在终端中下载网络文件,格式为“wget [参数] 下载地址”。
此命令如果是最小化安装,系统默认是不安装的,需要自行安装。下图所示为wget 命令
的参数以及参数的作用。
2.7 ps 查看系统中的进程状态命令
ps 命令用于查看系统中的进程状态,格式为“ps [参数]”。
ps 命令管道符技术搭配使用,用来抓取与某个指定服务进程相对应的PID 号码。ps 命令的常见参数以及作用如下图所示。
2.8 top 动态监视进程活动与系统负载等信息命令
top 命令用于动态地监视进程活动与系统负载等信息,其格式为top。
top 命令相当强大,能够动态地查看系统运维状态,完全将它看作Linux 中的“强化版的
Windows 任务管理器”。top 命令的运行界面如图所示。(“ctrl+c”组合键退出监视)
2.9 pidof 查询某个指定服务进程的PID 值命令
pidof 命令用于查询某个指定服务进程的PID 值,格式为“pidof [参数] [服务名称]”
每个进程的进程号码值(PID)是唯一的,因此可以通过PID 来区分不同的进程。例如,
可以使用如下命令来查询本机上sshd 服务程序的PID:
2.10 kill 终止某个指定PID 的服务进程命令
kill 命令用于终止某个指定PID 的服务进程,格式为“kill [参数] [进程PID]”
我们使用kill 命令把上面用pidof 命令查询到的PID 所代表的进程终止掉,其命
令如下所示。这种操作的效果等同于强制停止sshd 服务。
2.11 killall 终止某个指定名称的服务所对应的全部进程命令
killall 命令用于终止某个指定名称的服务所对应的全部进程,格式为:“killall [参数] [进
程名称]”。
通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这
些进程会比较麻烦,此时可以使用killall 命令来批量结束某个服务程序带有的全部进程。下
面以sshd 服务程序为例,来结束其全部进程。
如果我们在系统终端中执行一个命令后想立即停止它,可以同时按下Ctrl + C 组合键(生产环境中比较常用的一个快捷键),这样将立即终止该命令的进程。或者,如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执行命令时在末尾添加上一个&符号,这样命令将进入系统后台来执行。
三、系统状态检测命令
作为一名合格的运维人员,想要更快、更好地了解Linux 服务器,必须具备快速查看Linux
系统运行状态的能力,因此接下来会逐个讲解与网卡网络、系统内核、系统负载、内存使用
情况、当前启用终端数量、历史登录记录、命令执行记录以及救援诊断等相关命令的使用方
法,这些命令都超级实用。
3.1 ifconfig 获取网卡配置与网络状态等信息命令(此命令在最小化安装的时候默认是不安装的)
ifconfig 命令用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]”。
使用 ifconfig 命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就
是网卡名称、inet 参数后面的IP 地址、ether 参数后面的网卡物理地址(又称为MAC 地址),
以及RX、TX 的接收数据包与发送数据包的个数及累计流量(即下面加粗的信息内容):
3.2 uname 查看系统内核与系统版本等信息
uname 命令用于查看系统内核与系统版本等信息,格式为“uname [-a]”
在使用 uname 命令时,一般会固定搭配上-a 参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。
3.3 cat /etc/redhat-release 查看当前系统版本的详细信息命令
如果要查看当前系统版本的详细信息,则需要查看redhat-release 文件,其命
令以及相应的结果如下
3.4 uptime 查看系统的负载信息命令
uptime 命令可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1 分钟、5 分钟、15 分钟内的压力情况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。
3.5 free 显示当前系统中内存的使用量信息命令
free 用于显示当前系统中内存的使用量信息,格式为“free [-h]”。
为了保证Linux 系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。
在使用free 命令时,可以结合使用-h 参数以更人性化的方式输出当前内存的实时使用量信息。需要注意的是,输出信息中的中文注释是作者自行添加的内容,实际输出时没有相应的参数解释。
3.6 who 查看当前登入主机的用户终端信息
who 用于查看当前登入主机的用户终端信息,格式为“who [参数]”。
这三个简单的字母可以快速显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息。如图所示为执行who 命令后的结果
3.7 last 查看所有系统的登录记录命令
last 命令用于查看所有系统的登录记录,格式为“last [参数]”。
使用 last 命令可以查看本机的登录记录。但是,由于这些信息都是以日志文件的形式保
存在系统中,因此黑客可以很容易地对内容进行篡改。千万不要单纯以该命令的输出信息而
判断系统有无被恶意入侵!
3.8 history 显示历史执行过的命令
history 命令用于显示历史执行过的命令,格式为“history [-c]”。
执行history 命令能显示出当前用户在本地计算机中执行过的最近1000 条命令记录。如果觉得1000 不够用,还可以自定义/etc/profile 文件中的HISTSIZE 变量值。在使用history 命令时,如果使用-c 参数则会清空所有的命令历史记录。还可以使用“!编码数字”的方式来重复执行某一次的命令。历史命令会被保存到用户家目录中的.bash_history 文件中。Linux 系统中以点(.)开头的文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用cat 命令查看其文件内容。
3.9 sosreport 收集系统配置及架构信息并输出诊断文档
sosreport 命令用于收集系统配置及架构信息并输出诊断文档,格式为sosreport。
当 Linux 系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简
单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,亦
或让他们能提前了解某些复杂问题。
(我这里报错了,可能是我安装最小化版本造成的需要配置)
第二章未完待续。。。。
23:02:25
星期三
2023年5月3日