常用系统工作命令
- 1.echo
- 2.date
- 3.timedatectl
- 4.wget
- 5.ps
- 6.pstree
- 7.top
- 8.nice
- 9.pidof
- 10.kill
- 11.killall
1.echo
echo
命令的作用是向用户显示一行文本。它可以用于各种情况,比如在脚本中输出提示信息、打印变量值、生成日志文件等等。
- 输出字符串。
echo "Hello, World"
- 输出变量的值。只需要将变量名放在引号内即可。
name="Tom"
echo "My name is $name"
- 使用重定向操作符
>
将输出重定向到文件中。
echo "Hello, World" > output.txt
2.date
date
命令是一个在命令行中使用的用于显示和设置系统时间的工具。它可以显示当前的日期和时间,也可以根据指定的格式来输出日期和时间信息。
- 查看当前系统的时间。
date
- 显示当前日期和时间的指定格式。
date +"%Y-%m-%d %H:%M:%S"
3.timedatectl
timedatectl
用于查询和修改系统时间、日期和时区设置。
- 查询当前时间、日期和时区。
timedatectl status
4.wget
wget
是一个可以从网络上下载文件的免费实用程序,它的工作原理是从 Internet 上获取数据,并将其保存到本地文件中或显示在你的终端上。
- 下载指定 URL 的文件,并保存为指定的文件名。
wget http://example.com/file.zip -O myfile.zip
5.ps
ps
命令用来查看系统上的进程信息。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps
命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
- a
:显示所有进程(包括其他用户的进程)。- u
:用户以及其他详细信息。- x
:显示没有控制终端的进程。
Linux 系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在 Linux 系统中有 5 种常见的进程状态,其各自含义如下所示。
R
(运行):进程正在运行或在运行队列中等待。S
(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。D
(不可中断):进程不响应系统异步信号,即便用ki 命令也不能将其中断。Z
(僵死):进程已经终止,但进程描述符依然存在,直到父进程调用wait40系统函数后将进程释放。T
(停止):进程收到停止信号后停止运行。
除了上面 5 种常见的进程状态,还有可能是 高优先级(<
)、低优先级(N
)、被锁进内存(L
)、包含 子进程(s
)以及 多线程(l
)这 5 种补充形式。
ps -aux
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位KB) | 占用的固定内存量(单位KB) | 所在终端 | 进程状态 | 被启动的时间 | 实际使用CPU的时间 | 命令名称与参数 |
6.pstree
pstree
命令是一个在 Unix-like
系统中用于以树状图的形式显示当前运行的进程的命令。这种展示方式比简单的列表(如 ps
命令)更加直观,有助于用户快速理解进程的层次结构和父子关系。在诊断系统问题时,pstree
可以帮助确定哪些进程是问题的根源,通过查看受影响的进程及其父进程,可以追踪问题的来源,并采取适当的措施进行修复。
pstree
7.top
top
命令用于动态地监视进程活动及系统负载等信息。
top
- 第 1 行:系统时间、运行时间、登录终端数、系统负载。
top
:名称。00:10:12
:系统当前时间。up 121 days, 20:48
:系统以及运行的时间,和uptime
命令相等。1 user
:当前有 1 个用户在线。load average: 0.07, 0.06, 0.05
:系统一定时间内的平均负载,分别是 1 分钟、5 分钟、15 分钟。
🚀 主要关注
load average
这个值,所谓系统负载就是:在一段时间内,CPU 正在处理以及等待 CPU 处理的进程数之和。系统在同一时间运行的进程数和系统 CPU 核数相关,一般来说 Load Average 的数值别超过这台机器的总核数,就没什么问题。
- 第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
Tasks
:任务,也就是进程。109 total
:当前总共有 109 个任务,也就是 109 个进程。1 running
:1 个进程正在运行。108 sleeping
:108 个进程正在休眠。0 stopped
:0 个停止的进程。0 zombie
:1 个僵尸进程。
- 第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源上百分比、空闲的资源百分比等。其中数据均为 CPU 数据并以百分比格式显示。
%Cpu(s)
:CPU 使用率。0.8 us
:用户空间占用 CPU 时间的百分比(大部分进程都运行在用户态,通常都是希望用户空间 CPU 越高越好)。0.5 sy
:内核空间占用 CPU 时间的百分比(Linux 内核态占用的 CPU 时间,系统 CPU 占用越高,表明系统某部分存在瓶颈。通常这个值越低越好)。0.0 ni
:占用 CPU 时间的百分比(ni
是nice
的缩写,进程用户态的优先级,如果调整过优先级,那么展示的就是调整过nice
值的进程消耗掉的 CPU 时间,如果系统中没有进程被调整过nice
值,那么ni
就显示为0
)。98.0 id
:空闲 CPU 占用率,等待进程运行。0.7 wa
:等待输入输出的 CPU 时间百分比(CPU 的处理速度是很快的,磁盘 IO 操作是非常慢的。wa
表示 CPU 在等待 IO 操作完成所花费的时间。系统不应该花费大量的时间来等待 IO 操作,否则就说明 IO 存在瓶颈)。0.0 hi
:CPU 硬中断时间百分比(硬中断是硬盘、网卡等硬件设备发送给 CPU 的中断消息 )。0.0 si
:CPU 软中断时间百分比(软中断是由程序发出的中断 )。0.0 st
:被强制等待(involuntary wait
)虚拟 CPU 的时间,此时 Hypervisor 在为另一个虚拟处理器服务。
- 第 4 行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
MiB Mem
:内存。3880176 total
:物理内存总量。999176 free
:空闲内存量。1042160 used
:已使用的内存量。1838840 buff/cache
:用作内核缓存的内存量。
- 第 5 行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
MiB Swap
:交换空间(虚拟内存,当内存不足的时候,把一部分硬盘空间虚拟为内存使用)。0 total
:交换区总量。0 free
:空闲交换区总量。0 used
:使用的交换区总量。2539192 avail Mem
:可用于启动一个新应用的内存(物理内存),和free
不同,它计算的是可回收的page cache
和memory slab
。
🚀 第四行和第五行输出信息,等同于使用
free -m
命令。
8.nice
nice
命令用于以指定的进程调度优先级启动其他程序。通过调整程序的优先级,可以影响程序在系统中的调度顺序。nice
命令的优先级范围从 -20
(最高优先级)到 19
(最低优先级)。默认情况下,nice
命令的优先级调整值为 10
。
- 将
ls
命令的优先级调整为10
。
nice -n 10 ls
9.pidof
pidof
是 Linux 系统中用来查找正在运行进程的进程号(pid
)的工具,功能类似 pgrep
和 ps
。
- 查询本机上 sshd 服务程序的 PID。
pidof sshd
10.kill
kill
命令用于终止某个指定 PID 值的服务进程。
11.killall
killall
命令用于终止某个指定名称的服务所对应的全部进程。
通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果用 kill
命令逐个去结束这些进程会比较麻烦,此时可以使用 killall
命今来批结束某个服务程序带有的全部进程。