查看进程#
ps — 进程快照
ps # 当前终端启动的进程,极少用
ps aux # 全系统所有进程,最常用
ps aux | grep nginx # 筛选含 nginx 的进程ps aux 每一列的含义:
| 列 | 含义 | 怎么看 |
|---|---|---|
| USER | 进程所属用户 | root 还是你的用户名 |
| PID | 进程唯一 ID | 后面 kill 要用 |
| %CPU | CPU 占用率 | 哪个在吃 CPU |
| %MEM | 内存占用率 | 哪个在吃内存 |
| VSZ/RSS | 虚拟/物理内存 | 通常只看 RSS |
| STAT | 进程状态 | S=睡眠 R=运行 Z=僵尸 |
| COMMAND | 启动命令 | 这就是你在跑的东西 |
top — 实时进程监控
top # 进入交互界面,按 q 退出进入 top 后的常用按键:
P— 按 CPU 占用排序M— 按内存占用排序k— 输入 PID 杀掉进程q— 退出
htop — top 的彩色升级版
htop # 更直观,支持鼠标点击终止进程#
kill — 向进程发信号
kill PID # 礼貌地请进程退出(SIGTERM,信号 15)
kill -9 PID # 强制杀死(SIGKILL,信号 9)
kill -l # 列出所有信号类型流程:先用 ps aux | grep 进程名 找到 PID,再用 kill PID 处理。不响应才用 kill -9。
pkill — 按名字杀进程
pkill nginx # 杀掉所有名字匹配 nginx 的进程
pkill -9 -f "python script.py" # 强制杀,匹配完整命令行不用先查 PID,比 kill 更直接。
killall — 按精确名字杀
killall firefox # 杀所有 firefox 进程前后台与作业管理#
这是新手最迷惑的地方,但理解模型很简单:
前台 = 霸占终端,运行期间你不能敲别的命令
后台 = Shell 不等待它结束;仍可能向终端输出,也可能因读取终端而暂停& — 启动时放到后台
python train.py & # 直接在后台启动
sleep 100 & # 后台睡 100 秒启动后会打印 [作业号] PID,比如 [1] 12345。
jobs — 查看当前终端的后台作业
jobs # 列出所有后台作业
jobs -l # 附带 PID输出示例:
[1] - running python train.py
[2] + running sleep 100+ 表示最近操作的作业(fg 不带参数时默认调它)。
fg — 把后台作业调到前台
fg # 调回最近的那个
fg %1 # 调回作业号 1
fg %sleep # 调回名字含 sleep 的bg — 把暂停的作业放到后台继续跑
bg %1 # 把作业 1 放到后台继续Ctrl+Z — 暂停当前前台任务
在终端里按 Ctrl+Z,当前任务会暂停并回到 Shell。然后你可以:
bg # 让它在后台继续跑
fg # 或者调回前台继续nohup — 忽略挂断信号
nohup python train.py & # 忽略 SIGHUP,通常可在终端关闭后继续;不保证跨注销策略存活
nohup python train.py > output.log 2>&1 & # 输出写到文件配合 systemctl#
systemctl 管理 systemd 的 unit 和系统状态;默认连接系统管理器,systemctl --user 连接用户管理器。用户程序也可作为 user service 管理:
| 场景 | 用这个 |
|---|---|
| 用户自己跑的程序 | ps / kill / jobs / & |
| 系统服务(nginx/ssh/docker) | systemctl start/stop/status |
| 想开机自启 | systemctl enable 服务名 |
系统电源管理
systemctl 也负责关机、重启、挂起等系统级操作:
systemctl poweroff # 关机(等价于直接敲 poweroff)
systemctl reboot # 重启(等价于直接敲 reboot)
systemctl suspend # 挂起/睡眠
systemctl hibernate # 休眠(写盘后断电)poweroff 和 reboot 之所以可以直接敲(不需要 systemctl 前缀),是因为它们是系统历史上就存在的独立命令。systemd 保留了它们作为兼容入口——在 systemd 系统中通常由兼容入口处理;具体文件或链接布局取决于发行版。
这里使用 systemctl suspend 和 systemctl hibernate;独立入口及兼容命令因发行版和所安装工具而异。休眠还需要内核、交换空间与恢复配置支持。
系统服务详解见 Linux 登录与会话。
日常场景速查#
| 我想... | 命令 |
|---|---|
| 看谁在吃 CPU | top 或 htop |
| 看某个程序在不在跑 | ps aux | grep 关键词 |
| 杀死卡死的程序 | pkill 程序名,不行就 pkill -9 |
| 后台跑脚本 | ./script.sh & |
| 关了终端继续跑 | nohup ./script.sh & |
| 看看后台有什么 | jobs |
| 把后台的调到前台 | fg |
| 暂停当前程序 | Ctrl+Z |
参考与延伸
根据技术笔记重新整理,示例使用通用名称。