Linux系统管理命令

进程查看命令ps

1
2
3
4
5
6
7
8
9
10
11
$ ps [选项]
# -a:显示一个终端的所有进程,除了会话引线
# -u:显示进程的归属用户及内存使用情况
# -x:显示没有控制终端的进程
# -l:长格式显示,显示各加详细的信息
# -e:显示所有进程
$ ps aux
# 查看系统中所有进程,没有'-',使用BSD操作系统格式
$ ps -le
# 查看系统中所有进程,使用Linux标准命令格式

参数

  • VSZ 虚拟内存 kb
  • RSS 真实内存 kb
  • TTY 终端
  • STAT 进程状态
  • START 进程启动时间
  • TIME 进程耗费的CPU运算时间
  • COMMAND 进程名字
1
2
3
- 字符终端 tty1 - tty6
- 图形终端 tty7
- 远程虚拟终端 pts/0 - 255
1
2
3
4
5
6
7
- R 运行
- S 睡眠
- Z 僵死
- T 停止状态
- s 包含子进程
- + 位于后台
- < 高优先级 对其他用户不利
1
2
3
$ pstree [选项]
# -p:增加显示进程的PID
# -u:增加显示进程的所属用户

进程查看命令top

1
2
3
4
5
6
7
$ top [选项]
# -d 秒数:top更新的间隔
# -b:使用批处理模式输出,一般和'-n'选项合用
# -n:次数:指定top命令执行的次数,一般和'-b'选项合用
$ top -d 10 -n 3 -b > aaa.log
# top命令每隔10秒执行,一共执行3次,每次将结果输入到aaa.log

查看系统健康状态

  • 可以按shift+x在交互模式下执行进程排序
  • shift+p:以CPU使用率排序,默认
  • shift+m:以内存使用率排序
  • shift+n:以PID排序
  • q:退出top
1
2
3
4
5
top - 08:18:14 up 10 min, 1 user, load average: 0.34, 0.52, 0.38
Tasks: 177 total, 1 running, 176 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.2 us, 0.7 sy, 0.0 ni, 97.4 id, 0.1 wa, 0.0 hi, 0.6 si, 0.0 st
KiB Mem : 3456512 total, 1211904 free, 940964 used, 1303644 buff/cache
KiB Swap: 18811900 total, 18811900 free, 0 used. 2207300 avail Mem
1
2
load average: 1分钟,5分钟,15分钟CPU的平均负载
%Cpu(s): 用户占比,系统占比,改变过优先级的用户进程占比,空闲占比
1
2
bufferrs:缓冲,加速写入
caches:缓存,加速读取
1
2
$ ps aux | grep httpd
# 查看进程名字为httpd的进程状态

ps、pstree和top

ps一般用于查看所有进程
pstree一般用于查看所有进程数
top一般用于查看系统的健康状态

杀死进程命令

1
2
3
$ kill -1 pid
# 信号1 SIGHUP 该信号让进程立刻关闭,并重新读取配置文件后重启
# 信号9 SIGKILL 该信号不能被阻塞、处理和忽略,一般用于强制终止进程。
1
2
3
4
$ killall [选项] [信号] 进程名
# 按照进程名杀死进程(存在一个进程名,有多个进程id)
# -i:交互式
# -I:忽略进程名的大小写

查看后台的工作

把进程放在后台运行

  • tar -zcf xx.tar /tmp &
    把命令放在后台,并在后台执行
  • tar -zcf xx.tar /tmp
    按下Ctrl+z,放在后台暂停
1
2
$ jobs -l
# 查看后台进行的进程
1
2
3
4
5
6
$ fg %工作号
# 将后台暂停的工作恢复到前台执行
$ bg %工作号
# 将后台暂停的工作恢复到后台执行
# 工作号诸如,[1],[2]...注意不是pid

后台命令脱离终端

即使终端关闭了,进程也不关闭

1
2
$ nohup 进程 &
# nohuo /root/aProcess.sh &

系统定时任务

一次性定时任务at

1
at [选项] [时间]

循环定时任务crontab