目录
- 一、网络管理命令
- 二、进程管理命令
-
- [1. 显示当前系统进程状态:ps](#1. 显示当前系统进程状态:ps)
- [2. 显示系统性能信息和进程信息:top](#2. 显示系统性能信息和进程信息:top)
- [3. 向进程发送信号:kill](#3. 向进程发送信号:kill)
- [4. 管理定时任务:crontab(了解)](#4. 管理定时任务:crontab(了解))
- [5. 继续运行命令:bg](#5. 继续运行命令:bg)
- [6. 重启 / 关闭 Linux 系统](#6. 重启 / 关闭 Linux 系统)
- 三、补充
一、网络管理命令
1. 查看和配置网络设备:ifconfig
当网络环境发生改变时可通过 ifconfig
命令对网络进行相应的配置,只有 root 权限才可以配置网络。
1)重启网络命令
service network-manager restart
or sudo systemctl restart NetworkManager
以下两种重启网络的指令可能会有如下图所示错误:
-
sudo /etc/init.d/networking restart
-
sudo service networking restart

2)重启网卡命令
-
重启网卡:
sudo ifconfig ens33 up
,其中 ens33 是网卡名。 -
修改 ens33 的 IP :
sudo ifconfig ens33 xxx.xxx.xxx.xxx
2. 查看与设置路由:route
命令:route -n
,当网络不通时,通过执行 route 查看路由,查看网关配置是否正确。

3. 追踪网络路由:traceroute
Linux 的 traceroute
和 Windows 的 tracert
都是用于网络路由追踪的命令,主要作用是显示从本机到目标主机之间经过的路由节点(路由器)列表,分析网络路径和故障点。
相同点:
-
目的相同:追踪数据包从源头到目标之间经过的路由路径。
-
原理相似:通过发递递增 TTL(生存时间,Time To Live)值的报文,使路由器返回超时的响应包,从而获得每一跳的信息。
不同点:
项目 | (Linux)traceroute | (Windows)tracert |
---|---|---|
默认协议 | UDP 数据包(默认) | ICMP 回显请求包(默认) |
参数用法 | 选项丰富,支持多种协议和参数 | 参数较少,功能更简单 |
输出格式 | 通常显示每一跳三个时间(RTT),有些系统支持更多 | 显示每跳三个往返时间 |
兼容性 | 需要安装(大部分发行版自带) | Windows 自带 |
高级功能 | 支持 TCP、ICMP、UDP 等多种协议作为探测包 | 主要使用 ICMP |
总结:
-
Linux 下的 traceroute 功能更灵活,可以通过参数选择不同的协议。
-
Windows 的 tracert 更简单,默认用 ICMP ,更适合普通用户快速诊断。
使用示例:
Linux:(bash)
bash
traceroute www.baidu.com
traceroute -I www.baidu.com # 使用 ICMP
traceroute -T www.baidu.com # 使用 TCP(有些版本不支持)
Windows:(cmd)tracert www.baidu.com
4. 查看端口信息和使用情况
1)netstat 命令
netstat(network statistics)是一个用于显示网络连接、路由表、接口统计等信息的命令行工具,广泛用于网络故障排查和流量监控。
基本语法:netstat [选项]
参数:
选项 | 作用说明 |
---|---|
-a | 显示所有连接和监听端口,包括 TCP 和 UDP |
-t | 只显示 TCP 连接 |
-u | 只显示 UDP 连接 |
-n | 显示数字形式的地址和端口号(不进行域名解析) |
-l | 只列出监听状态的 socket |
-p | 显示使用该连接的程序的进程 ID 和进程名(需要 root 权限) |
-r | 显示路由表 |
-i | 显示网络接口列表 |
-s | 按协议显示统计信息 |
-c | 每隔一段时间重复显示上述内容(用于动态监控) |
-e | 显示扩展的网络接口信息 |
如何查看机器的网络状态?用 netstat -an
命令显示网络连接的状态信息,以查看端口状态。比如查看 TCP 或 UDP 使用的端口情况,使用命令:netstat -an|grep tcp
or netstat -an|grep udp
,它的输出内容通常包含以下列:
列名 | 含义 |
---|---|
Proto | 协议类型 |
Local Address | 本地 IP 地址和端口号 |
Foreign Address | 远程 IP 地址和端口号 |
State | 连接状态,表示该 TCP 连接的当前状态 |
State(状态)是显示当前的连接状态,又分为:
-
LISTENING :正在监听连接请求
-
ESTABLISHED :连接已建立
-
SYN_SENT :客户端已发送SYN请求,等待响应
-
SYN_RECEIVED :收到SYN请求,等待确认
-
FIN_WAIT_1,FIN_WAIT_2,CLOSE_WAIT,TIME_WAIT 等:表示连接关闭过程的不同阶段
-
CLOSED :连接关闭

【注】:查看进程信息时需要 root 权限,否则相关信息可能无法显示。
2)lsof 命令
lsof(List Open Files)用于列出当前系统中打开的文件信息。它不仅能列出普通文件,还可以显示打开的网络连接、管道、设备等,因此常用于系统和网络故障排查。
基本语法:lsof [选项] [文件或目录或用户...]
参数:
选项 | 作用说明 |
---|---|
-i | 显示所有网络连接(网络文件),可以加协议或端口过滤,例如 -i tcp 或 -i :80 |
-i4 / -i6 | 只显示 IPv4 或 IPv6 的网络连接 |
-p <PID> | 显示指定进程 ID 打开的所有文件 |
-u <user> | 显示某个用户打开的文件 |
-c <command> | 只显示指定命令名对应进程打开的文件 |
-t | 只输出 PID ,常用于脚本中过滤 |
-n | 不解析网络地址成主机名,直接显示 IP |
-P | 不解析端口名为服务名,直接显示端口号 |
+D <目录> | 递归查找指定目录下被打开的文件 |
+L1 | 仅显示链接数超过 1 的文件 |
-r <秒数> | 每隔指定秒数重复执行命令,用于动态监控 |
-s | 显示文件大小 |
-F <输出选项> | 以指定格式输出,用于脚本应用 |
比如查看指定端口的所有连接,即查看哪个进程使用了这个端口,输入命令:sudo lsof -i [tcp/udp]:[指定端口号]
即可查看。

【注】:
-
有些信息需要 root 权限查看,比如查看其他用户进程打开的文件,通常需要用 sudo 。
-
lsof 能反映系统中非常详细的 "打开文件" 情况,包括网络端口、管道、设备文件,非常强大。
二、进程管理命令
命令 | 含义 |
---|---|
ps |
查看系统中的进程 |
top |
动态显示系统中的进程 |
kill |
向进程发送信号(包括后台进程) |
crontab |
用于安装、删除或者列出用于驱动 cron 后台进程的任务 |
bg |
将挂起的进程放到后台执行 |
1. 显示当前系统进程状态:ps
ps [选项]
命令可以帮助用户查看进程的详细信息,包括进程号、发起者、CPU 和内存使用情况等。常用选项包括:
选项 | 作用说明 |
---|---|
aux | 显示所有进程的详细状态 |
-ef | 显示系统中所有进程的列表,包括其他用户的进程 |
-l | 以长格式显示进程信息 |
-u | 显示面向用户的格式,包括用户名、CPU 及内存的使用情况等信息 |
使用 ps 命令可以及时发现进程异常情况,并与 kill 命令搭配使用以中断不必要的服务进程。
① 查看系统内所有进程:ps -elf
,可以显示父子进程关系。

- F :进程标志(flags)
- S :进程状态(sleeping, running, stopped等)
- R → 运行状态
- S → 睡眠状态
- T → 暂停状态(调试)
- Z (zombie)→ 僵尸状态,进程结束后,资源没有被回收
- UID:进程所有者的用户 ID
- PID:进程的进程 ID
- PPID :进程双亲的进程 ID
- C :CPU 使用率的调度优先级相关信息
- PRI :进程优先级
- NI :进程的 nice 值(优先级调整)
- ADDR :进程的地址(内存地址)信息
- SZ :进程使用的内存页数(虚拟内存大小)
- WCHAN :进程正在等待的内核函数地址(等待通道)
- TTY :进程启动时的终端设备
- TIME :进程占用 CPU 的累计时间
- CMD :启动该进程的命令名称和参数
② 查看指定进程是否还在:ps -elf |grep tcp_server
or ps -elf |grep udp_server
。

③ 显示所有进程的详细状态:ps aux

- USER :启动这些进程的用户
- %CPU :进程占用的 CPU 百分比
- %MEM :占用内存的百分比
- VSZ :该进程使用的虚拟内存量(KB)
- RSS :该进程占用的固定内存量(KB)
- STAT :进程的状态
- START :进程启动的时间
- COMMAND :启动的程序名称或命令行
注:
cat /proc/cpuinfo
查看 Linux 的 CPU 的核数。
2. 显示系统性能信息和进程信息:top
top
显示前 20 条进程,动态的改变,按 q 退出。

1)系统总体信息
- 时间和运行时长:如 15:40:11 up 3:25 表示当前时间和系统已运行 3 小时 25 分钟。
- 用户数:当前登录用户数。
- 负载平均值:系统 1、5、15 分钟的负载。
- 任务(进程)数量和状态:总进程数,运行、睡眠、停止、僵尸进程数。
- CPU 使用详情(us 用户空间,sy 系统空间,ni 用户设定优先级进程,id 空闲,wa 等待 I/O,hi 硬件中断,si 软件中断,st 被虚拟机偷取的资源)。
- 内存使用详情(总内存,空闲,已用,缓存等)---
free
命令。 - 交换空间(swap) 使用情况。
2)进程信息列表
- PR :优先级
- VIRT :虚拟内存大小
- RES :常驻内存大小
- SHR :共享内存大小
- TIME+ :进程使用 CPU 累计时间
优先级(PR)和 NI(nice 值)间关系:nice 值越小,优先级越高。
3)top 命令常用快捷键
快捷键 | 功能说明 | 快捷键 | 功能说明 |
---|---|---|---|
h | 显示帮助界面 | q | 退出 top |
P | 以 CPU 使用率排序 | M | 以内存使用率排序 |
T | 以累计 CPU 时间排序 | k | 杀死一个进程(输入 PID) |
r | 改变某个进程的优先级(输入 PID 和新优先级) | space | 立即刷新 |
1 | 显示 / 隐藏各 CPU 核心的使用情况 |
4)top 命令常用参数
参数 | 说明 |
---|---|
-d 秒数 | 设置刷新间隔时间 |
-p PID | 监控指定进程 |
-u 用户名 | 仅显示指定用户的进程 |
-n 次数 | 设置刷新次数,执行指定次数后退出 |
-b | 批处理模式(适合脚本使用) |
示例:top -d 1 -n 10 -u root
表示每 1 秒刷新一次,刷新 10 次后退出,只显示 root 用户的进程。
3. 向进程发送信号:kill
kill [选项] <pid>
命令是 Unix / Linux 系统中用来向进程发送信号的命令,最常用于终止进程。
- <pid>:进程 ID ,指定要发送信号的目标进程。
- 支持一次给多个进程发信号。
1)常用信号
信号名称 | 数字 | 作用 |
---|---|---|
SIGTERM (15) | 15 | 终止进程,默认信号,进程可捕获,优雅退出 |
SIGKILL (9) | 9 | 强制杀死进程,不能被捕获或忽略 |
SIGSTOP (19) | 19 | 暂停进程(不能捕获) |
SIGCONT (18) | 18 | 继续暂停的进程 |
SIGHUP (1) | 1 | 终端挂起信号,通常用于重读配置文件 |
2)常用用法示例
-
默认杀死进程(发送 SIGTERM):
kill 1234
-
强制杀死进程(发送 SIGKILL):
kill -9 1234
-
发送其他信号:
kill -s SIGSTOP 1234
# 暂停进程
kill -SIGCONT 1234
# 继续进程 -
给多个进程发送 9 号信号:
kill -9 1234 2345 3456
-
查看系统的所有信号:
kill -l

注意事项:
-
使用 kill 需要对目标进程有足够权限,一般只能杀自己启动的进程,或使用 root 权限。
-
优先用默认的 SIGTERM ,给进程机会清理资源,然后再考虑 SIGKILL 。
-
信号传递不是命令 "杀死" 进程的绝对保证,进程可以捕获和自定义信号处理(除 SIGKILL 和 SIGSTOP)。
3)pkill 命令
pkill 是一个在类 Unix 系统中用于根据进程名或其他属性来终止进程的命令。它是 kill 命令的增强版本,能够通过匹配进程名、用户、终端等条件来批量发送信号给进程。
pkill [选项] <模式>
-
<模式> 通常是指进程名的模式(可以是完整进程名,也可以是正则表达式)。
-
默认发送 SIGTERM 信号(即请求终止进程)。
常用选项及说明:
选项 | 说明 |
---|---|
-signal | 发送指定信号,例如 -9 (SIGKILL, 强制终止),-15 (SIGTERM) 等 |
-f | 匹配完整命令行,而不仅仅是进程名 |
-u <用户> | 只匹配该用户的进程 |
-t <终端> | 只匹配指定终端的进程(如pts/0 ) |
-n | 只作用于最新启动的匹配进程(PID 最大的那个) |
-o | 只作用于最早启动的匹配进程(PID 最小的那个) |
-x | 进程名必须完全匹配(不允许模糊匹配) |
-v | 反转匹配,即杀死不匹配模式的进程 |
-l | 列出所有信号名称 |
-c | 仅显示将会被杀死的匹配进程数(不实际杀死) |
注意:
-
pkill 通过向进程发送信号来终止进程,默认信号是 SIGTERM ,这允许进程清理资源后退出。若想强制终止进程,用 -9 (SIGKILL) ,但这样进程无法清理资源,可能引发数据丢失。
-
pkill 需对目标进程有足够权限,否则可能杀死失败。
-
在生产环境,使用 pkill 时要特别注意匹配规则,避免误杀重要进程。
相关命令:
-
kill
: 按 PID 杀进程。 -
pgrep
: 查找匹配条件的进程 ID ,配合 pkill 可做更复杂处理。 -
killall
: 根据名字杀死进程,某些系统与 pkill 相似但细节不同。
4. 管理定时任务:crontab(了解)
crontab [选项] [文件]
是 Linux / Unix 系统中用来管理定时任务的命令,允许用户根据时间周期自动执行脚本或命令。
基本功能:
-
管理用户的 "cron 任务表" ,用于周期性执行任务。
-
每个用户有独立的 crontab 文件。
-
常用来自动执行备份、监控脚本等。
1)常用选项和命令
设置定时任务:vim /etc/crontab
命令 / 选项 | 说明 |
---|---|
-e | 编辑当前用户的定时任务(打开编辑器) |
-l | 列出当前用户的定时任务 |
-r | 删除当前用户的所有定时任务 |
-u [用户名] -l | 查看指定用户的定时任务(需要权限) |
filename | 从文件导入定时任务(覆盖当前用户 crontab) |
2)crontab 文件格式与字段值说明
crontab 文件格式:crontab 文件每一行定义一个定时任务,格式为:分 时 日 月 周 命令。
字段 | 说明 | 取值范围 |
---|---|---|
分 | 分钟 | 0 - 59 |
时 | 小时 | 0 - 23 |
日 | 月内日期 | 1 - 31 |
月 | 月份 | 1 - 12 |
周 | 星期几(0 - 7,0 和 7 都是星期日) | 0 - 7 |
命令 | 要执行的命令或脚本路径 |
字段值说明:
-
* 代表任意值
-
多值用逗号分隔,如 1, 5, 10
-
区间用连字符,如 1-5
-
步进用斜杠,如每 10 分钟:*/10
-
星期和日期字段:如果同时指定,两个条件满足之一即可执行
3)示例
-
每天凌晨 1 点执行 /home/user/backup.sh :
0 1 * * * /home/user/backup.sh
-
每 5 分钟执行脚本:
*/5 * * * * /path/to/script.sh
-
每周一早上 7 点执行任务:
0 7 * * 1 /path/to/script.sh
-
每月 1 号 0 点执行:
0 0 1 * * /path/to/script.sh
-
每天晚上 10 点执行关机命令:
0 22 * * * /sbin/shutdown -h now
注:需要执行
which shutdown
查看 shutdown 的路径,如果不是 /sbin/shutdown 则需要替换。
注意事项:
-
命令中的环境变量可能不完整,最好使用完整路径或在脚本中设置环境。
-
crontab 里写的命令不显示输出(不输出到控制台),推荐重定向输出到日志文件,如:
0 1 * * * /home/user/backup.sh >> /home/user/backup.log 2>&1
。 -
编辑结束保存后,cron 会自动加载新任务。
5. 继续运行命令:bg
bg [作业号]
:如果不指定作业号,则默认对最近的被暂停的作业执行 bg 操作。
作用:
-
把暂停(stop)状态的作业放到后台继续运行。
-
让命令继续运行,但不占用当前终端。
使用场景:
-
你运行了一个命令,按 Ctrl+Z 暂停它(将其挂起,放到后台停止状态)。
-
接着你用 bg 让该任务在后台继续执行,而终端可以继续做其他事情。
相关命令:
-
Ctrl+Z
:暂停当前前台任务(发送 SIGTSTP 信号)。 -
jobs
:列出当前用户的所有后台作业及状态。 -
bg
:将暂停的作业放到后台继续运行。 -
fg
:把后台作业调回前台继续运行。
示例:
假设你启动了一个命令:sleep 100
,然后按下 Ctrl+Z,终端显示:
bash
[1]+ Stopped sleep 100
这时,任务暂停了,如果输入:bg
,会看到:
bash
[1]+ sleep 100 &
这表示任务在后台继续运行,终端可继续输入其他命令。
注意事项:
-
bg 只能作用于已经暂停的作业,运行中的或不存在的作业用不了。
-
需要通过 jobs 或直接写作业号,比如:
bg %1
,表示让作业号为 1 的任务放后台运行。
6. 重启 / 关闭 Linux 系统
-
reboot
:重启正在运行的 Linux 操作系统 -
poweroff
:关闭正在运行的 Linux 操作系统并切断系统电源
三、补充
1. 查看物理内存:free
free 命令是 Linux 系统中查看内存使用情况的常用命令。它可以快速显示系统的物理内存和交换空间(swap)的使用状况,帮助用户了解系统内存的分配和剩余情况。
1)常用选项
free [选项]
选项 | 作用说明 |
---|---|
-h | 以更易读的格式显示内存信息(自动使用 KB / MB / GB) |
-b | 以字节为单位显示 |
-k | 以 KB 为单位显示(默认单位) |
-m | 以 MB 为单位显示 |
-g | 以 GB 为单位显示 |
-t | 显示总计(内存 + 交换空间的总计信息) |
-s 秒数 | 每隔指定秒数刷新一次显示,直到用户退出 |
-c 次数 | 配合 -s ,指定刷新次数 |
2)输出字段说明

-
total :内存总量(物理内存或者交换空间总量)。
-
used :已使用内存,包括内核占用的缓存和缓冲区,所以不代表 "实际使用" 的内存。
-
free :未用的内存,是没有被任何用途占用的内存。
-
shared :多个进程共享使用的内存(shared memory)。
-
buff / cache :缓存和缓冲区占用的内存,它们是可以随时释放给程序使用的。
-
available :应用程序可用的内存(是估算值,比 free 更准确、更实际的可用内存指标),不仅包含 free 内存,还包括了部分缓存中能够被回收的内存。
3)总结
-
Linux 会尽量利用空闲内存做缓存,提高系统性能。
-
free 命令快速反映内存使用状态,是排查内存瓶颈的重要工具。
-
结合 buff / cache 和 available 字段判断内存使用情况,更准确。
-
默认输出单位是 KB ,推荐加 -h 参数提升可读性。