1. 过滤指定进程
ps aux | grep sshd
#首先通过ps命令加参数查看所有进程
#然后通过管道利用grep命令对进程关键字段进行过滤
2. 按照内存使用率从高到低和从低到高两种方式排序进程,输出内容包括user,pid,memory,comm,stat
ps ax -o user,pid,%mem,comm,stat --sort=+%mem
#从高到低,排序参数 --sort=+%mem( + 号表示递增)
ps ax -o user,pid,%mem,comm,stat --sort=-%mem
#从低到高,排序参数 --sort=-%mem( - 号表示递减)
如果要取排序后的部分数据,比如说内存占用前5的进程,可以使用多重命令组合
ps ax -o %mem,pid --sort=-%mem |grep PID -v | head -n 5
#此命令首先对系统进程按照内存使用率按从大到小排序,然后通过PID过滤掉不符合条件的内容,最后对过滤后的数据取前五行
3. 修改程序的运行优先级,监控内容变化(以Firefox为例)
watch -n 1 'ps ax -o stat,comm | grep firefox'
#此命令监控了Firefox进程的部分信息,-o定义输出的格式
首先我们以指定优先级运行Firefox程序
注意状态为SNL
然后我们修改Firefox的运行优先级为0
注意状态为SL+
接着我们修改Firefox的运行优先级为-6
注意状态变化
4. 环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
ctrl+z ##把占用终端的进程打入后台
fg num ##把后台进程调回前台
bg num ##把后台暂停的进程运行
comm & ##让命令直接在后台运行
5. 用户登陆审记
w ##查看使用系统的当前用户有那些
w -f ##-f查看使用地点
last ##查看用户登陆成功历史
lastb ##查看用户登陆未成功历史
6. 进程信号
常用信号等级
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程 (可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程 (不能被阻塞)
20 ##把进程打入后台 (可以被阻塞)
man 7 signal ##查看信号详细信息
结束进程的一般用法
kill -信号 进程pid
#结束唯一id的进程
killall -信号 进程名字
#通过指定进程名称结束进程,可以结束多个进程
pkill -u username -信号
#结束某个用户下的所有进程
7. 系统服务的控制(部分示例以sshd服务为例)
1.systemd
系统初始化程序,系统开始的第一个进程,pid为1
2.systemctl 命令
systemctl list-units ##列出当前系统服务的状态
systemctl list-unit-files ##列出服务的开机状态
systemctl status sshd ##查看指定服务的状态
systemctl stop sshd ##关闭指定服务
systemctl start sshd ##开启指定服务
systemctl restart sshd ##从新启动服务
systemctl enable sshd ##设定指定服务开机开启
systemctl disable sshd ##设定指定服务开机关闭
systemctl reload sshd ##使指定服务从新加载配置
systemctl list-dependencies sshd ##查看指定服务的倚赖关系
systemctl mask sshd ##冻结指定服务
systemctl unmask sshd ##启用服务
systemctl set-default multi-user.target ##开机不开启图形
systemctl set-default graphical.target ##开机启动图形
setterm ##文本界面设定color
3.服务状态
systemctl status 服务名称
loaded ##系统服务已经初始化完成,加载过配置
active(running) ##正有一个或多个程序正在系统中执行,
# vsftpd 就是這種模式
atcive(exited) ##僅執行一次就正常結束的服務,
# 目前並沒有任何程序在系統中執行
atcive(waiting) ##正在執行當中,
# 不過還再等待其他的事件才能繼續處理
inactive ##服务关闭
enbaled ##服务开机启动
disabled ##服务开机不自启
static ##服务开机启动项不可被管理
failed ##系统配置错误