文章目录
linux 一些命令[下]
ps 命令
ps命令⽤于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是⾮常强⼤的进程查看命令,使⽤该命令可以确定有哪些进程正在运⾏和运⾏的状态、进程是否结束、进程有没有僵死、哪些进程占⽤了过多的资源等等,总之⼤部分信息都是可以通过执⾏该命令得到的。
常用组合
1. ps
PID TTY TIME CMD
8683 pts/1 00:00:00 ps
11641 pts/1 00:00:00 bash
PID:进程的标识号
TTY:进程所属的控制台号码
TIME:进程使⽤CPU总的时间
CMD:正在执⾏的命令⾏
2. ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10⽉20 ? 00:14:31 /usr/lib/systemd/
root 2 0 0 10⽉20 ? 00:00:00 [kthreadd]
root 3 2 0 10⽉20 ? 00:00:44 [ksoftirqd/0]
root 5 2 0 10⽉20 ? 00:00:00 [kworker/0:0H]
root 7 2 0 10⽉20 ? 00:00:00 [migration/0]
root 8 2 0 10⽉20 ? 00:00:00 [rcu_bh]
UID :由该⽤户执⾏的进程
PID:进程的标识号
PPID:进程的⽗进程标识号
C:CPU使⽤的资源百分⽐
STIME:进程开始的时间
TTY:该进程是哪个终端上运⾏的,若⽆终端,显示?。tty1-tty6是本
机的登录进程,pts/0等表示远程连接
TIME:进程使⽤的CPU的时⻓
CMD:正在执⾏的命令⾏
3. ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER:该进程属于的⽤户
PID:该进程号码
%CPU:进程占⽤CPU的资源⽐率
%MEM:该进程占⽤物理内存百分⽐
VSZ:进程使⽤的虚拟内存,单位Kbytes
RSS:该进程占⽤固定的内存量,单位Kbytes
TTY:该进程运⾏的终端位置
STAT:进程⽬前状态
R:运⾏中
S:终端睡眠中,可以被唤醒
D:不可中断睡眠
T:正在检测或是停⽌了
Z:已停⽌,⽆法由⽗进程正常终⽌,变成了zombie僵⼫进程
+:前台进程
I:多线程进程
N:低优先级进程
<:⾼优先级进程
s:进程领导者(含有⼦进程)
L:锁定到内存中
START:进程启动时间
TIME:CPU运⾏时间
COMMAND:进程命令
4. ps -u root # 显示 root 用户进程
pstree 命令
pstree指令⽤ASCII字符显示树状结构,清楚地表达程序间的相互关系。如果不指定程序识别码或⽤户名称,则会把系统启动时的第⼀个程序视为基层,并显示之后的所有程序。若指定⽤户名称,便会以⾪属该⽤户的第⼀个程序当作基层,然后显示该⽤户的所有程序。 使⽤ps命令得到的数据精确,但数据庞⼤,这⼀点对掌握系统整体概况来说是不容易的。pstree命令正好可以弥补这个缺憾。它能将当前的执⾏程序以树状结构显示。pstree命令⽀持指定特定程序(PID)或使⽤者(USER)作为显示的起始。
常用命令
# 需要安装, centos/red hat yum install psmisc -y
1. pstree
2. pstree -u root # 查看root用户的执行程序
3. pstree -p 1390 # 查看父进程为 1390 的所有程序
pgrep命令
pgrep 是通过程序的名字来查询进程的⼯具,⼀般是⽤来判断程序是否正在运⾏。
常用命令
1. pgrep ssh # 找出ssh 相关的进程号
2. pgrep -u root # 找出root用户相关的进程号
3. pgrep -l nginx # 过滤 nginx 相关进程, 以及进程号
kill killall 和 pkill
kill 命令:发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终⽌指定进程。
参数:
-l <信号编号>,若不加信号的编号参数,则使⽤“-l”参数会列出全部的信号名
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,⽽不发送任何信号
-s 指定发送信号
-u 指定⽤户
常用命令
kill -9 pid # 根据进程号杀掉进程
kill杀死进程需要获取进程的pid号,killall命令可以直接通过名字杀死
参数
OPTIONS (选项)
-e. 对于很⻓的名字, 要求准确匹配. 如果⼀个命令名⻓于 15 个字符, 则可能
-g 杀死属于该进程组的进程. kill 信号给每个组只发送⼀次, 即使同⼀进程
-i 交互⽅式,在杀死进程之前征求确认信息.
-l 列出所有已知的信号名.
-q 如果没有进程杀死, 不会提出抱怨.
-v 报告信号是否成功发送.
-V 显示版本信息.
-w 等待所有杀的进程死去. killall 会每秒检查⼀次是被杀的进程
常用命令
1. killall nginx # 杀死所有nginx的进程
2. killall -u root nginx # 杀死所有root⽤户启动的nginx
3. killall -w nginx # 等待nginx 进程被全部杀死
pkill命令可以通过进程名终⽌指定的进程,对⽐killall杀死进程可能要执⾏多次,pkill可以杀死进程以及⼦进程
-f 显示完整程序
-l 显示源代码
-n 显示新程序
-o 显示旧程序
-v 与条件不符合的程序
-x 与条件符合的程序
-p<进程号> 列出⽗进程为⽤户指定进程的进程信息
-t<终端> 指定终端下的所有程序
-u<⽤户> 指定⽤户的程序
常用命令
1. pkill nginx # 杀死nginx 所有进程
2. pkill -t pts/1 # 杀死 终端 pts/1 的所有进程 通过 w 命令查看终端
3. pkill -u root
注: 上述命令慎用
top 命令
top命令⽤于实时的监控系统处理器状态,以及各种进程的资源占⽤情况。
还可以按照CPU的使⽤量、内存使⽤量进⾏排序显示,以及交互式的命令操作
参数
-b 批处理
-c 显示完整的治命令
-I 忽略失效过程
-s 保密模式
-S 累积模式
-d <时间> 设置间隔时间
-u <⽤户名> 指定⽤户名
-p <进程号> 指定进程
-n <次数> 循环显示的次数
交互式命令
在top执⾏过程中,输⼊⼀些指令,可以查看不同的结果
z:打开,关闭颜⾊
Z: 全局显示颜⾊修改
h:显示帮助画⾯,给出⼀些简短的命令总结说明;
k:终⽌⼀个进程;
i:忽略闲置和僵死进程,这是⼀个开关式命令;
q:退出程序;
r:重新安排⼀个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有⼩数,就换算成ms。输⼊
f或者F:从当前显示中添加或者删除项⽬;
o或者O:改变显示项⽬的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令⾏;
M:根据驻留内存⼤⼩进⾏排序;
P:根据CPU使⽤百分⽐⼤⼩进⾏排序;
T:根据时间/累计时间进⾏排序;
w:将当前设置写⼊~/.toprc⽂件中。
B:全局字体加粗
数字1:⽤于多核监控CPU,监控每个逻辑CPU的情况
b:打开,关闭加粗
x,⾼亮的形式排序对应的列
< > :移动选择排序的列
用法案例
top -d 2 # 两秒更新一次
top -n 2 # 更新2次后退出
nohup 命令
nohup命令可以将程序已忽略挂起信号的⽅式运⾏起来,被运⾏程序的输出信息将不显示到终端。
常用命令
nohup ping baidu.com > nohup.out 2>&1 &
# > nohup.out 这是一个输出重定向。它意味着ping命令的标准输出(即正常的输出信息)会被重定向到nohup.out这个文件中,而不是显示在终端上。
# 2>&1:这是另一个重定向。这里的2代表标准错误(即错误消息),&1表示“与标准输出(即1)相同的地方”。所以,这个重定向的意思是:将标准错误重定向到标准输出所指向的地方,即nohup.out文件。
# &:这个符号在命令的末尾表示将这个命令放到后台运行。这样,即使你关闭了终端,nohup和ping命令也会继续运行。
bg 命令
bg命令⽤于将作业放到后台运⾏,使前台可以执⾏其他任务。
该命令的运⾏效果与在指令后⾯添加符号 & 的效果是相同的,都是将其放到系统后台执⾏。
使用案例
1. ping baidu.com # 启一个程序
2. 快捷键 ctrl + z # 暂停程序, 放入后台 可以通过jobs 查看后台停止的命令
3. bg 1 # 程序后台执行
3. fg 1 # 将后台停止/执行的程序 放到前台来执行
init 命令
init是Linux的进程初始化⼯具,是所有Linux进程的⽗进程,进程ID号是1。init命令的主要任务是根据配置⽂件 /etc/inittab 创建Linux进程
# 0 - 停机(千万不能把initdefault 设置为0 )
# 1 - 单⽤户模式
# 2 - 多⽤户,没有 NFS
# 3 - 完全多⽤户模式(标准的运⾏级)
# 4 - 没有⽤到
# 5 - X11 (xwindow)
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
init 0 代表直接关机
init 6 代表重启
service 命令
service命令⽤于对系统服务管理,centos7已经⽤systemctl替代service命令⽤于对系统服务进⾏管理,⽐如启动(start)、停⽌(stop)、重启(restart)、重新加载配置(reload)、查看状态(status)等
service mysqld #打印指定服务mysqld的命令⾏使⽤帮助。
service mysqld start #启动mysqld
service mysqld stop #停⽌mysqld
service mysqld restart #重启mysqld
service mysqld reload #重新加载my.cnf配置⽂件
service nginx stop/start/restart/reload
systemctl 命令
常用命令
systemctl start <service>:启动指定的服务。
systemctl stop <service>:停止指定的服务。
systemctl restart <service>:重新启动指定的服务。
systemctl reload <service>:重新加载指定服务的配置文件,无需停止或重启服务。
systemctl status <service>:查询指定服务的状态。
systemctl enable <service>:启用指定的服务,使其在系统启动时自动运行。
systemctl disable <service>:禁用指定的服务,防止其在系统启动时自动运行。
htop 命令
htop就是⽐top更好⽤的⼯具, 可以自己调整 htop 的风格,界面也比 top 更好看
yum install htop -y
进⼊htop
按下setup,进⼊设置
上下左右,移动,状态栏会发⽣变化(空格键,更改⻛格)
按下回⻋键,可以选择添加表(meters)
F10保存
htop能够记忆⽤户的设置
快捷键
F1 - F10
M:按照内存使⽤百分⽐排序,对应MEM%列;
P:按照CPU使⽤百分⽐排序,对应CPU%列;
T:按照进程运⾏的时间排序,对应TIME+列;
K:隐藏内核线程;
H:隐藏⽤户线程;
#:快速定位光标到PID所指定的进程上。
/:搜索进程名
glances命令
Glances 是⼀个由 Python 编写,使⽤ psutil 库来从系统抓取信息的基于curses 开发的跨平台命令⾏系统监视⼯具。glances 可以为 Unix 和 Linux 性能专家提供监视和分析性能数据的功能,
其中包括:
CPU 使⽤率
内存使⽤情况
内核统计信息和运⾏队列信息
磁盘 I/O 速度、传输和读/写⽐率
⽂件系统中的可⽤空间
磁盘适配器
⽹络 I/O 速度、传输和读/写⽐率
⻚⾯空间和⻚⾯速度
消耗资源最多的进程
计算机信息和系统资源
glances ⼯具可以在⽤户的终端上实时显示重要的系统信息,并动态地对其进⾏更新。这个⾼效的⼯具可以⼯作于任何终端屏幕。另外它并不会消耗⼤量的 CPU 资源,通常低于百分之⼆。glances 在屏幕上对数据进⾏显示,并且每隔两秒钟对其进⾏更新。您也可以⾃⼰将这个时间间隔更改为更⻓或更短的数值。glances ⼯具还可以将相同的数据捕获到⼀个⽂件,便于以后对报告进⾏分析和绘制图形。输出⽂件可以是电⼦表格的格式 (.csv) 或者 html 格式。
可以通过yum 和 pip 两种方式下载
# yum install glances -y or pip install glances
glances 是⼀个命令⾏⼯具包括如下命令选项:
-b:显示⽹络连接速度 Byte/ 秒
-B @IP|host :绑定服务器端 IP 地址或者主机名称
-c @IP|host:连接 glances 服务器端
-C file:设置配置⽂件默认是 /etc/glances/glances.conf
-d:关闭磁盘 I/O 模块
-e:显示传感器温度
-f file:设置输出⽂件(格式是 HTML 或者 CSV)
-m:关闭挂载的磁盘模块
-n:关闭⽹络模块
-p PORT:设置运⾏端⼝默认是 61209
-P password:设置客户端 / 服务器密码
-s:设置 glances 运⾏模式为服务器
-t sec:设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:
-h : 显示帮助信息
-v : 显示版本信息
glances 交互命令
h : 显示帮助信息
q : 离开程序退出
c :按照 CPU 实时负载对系统进程进⾏排序
m :按照内存使⽤状况对系统进程排序
i:按照 I/O 使⽤状况对系统进程排序
p: 按照进程名称排序
d : 显示磁盘读写状况
w : 删除⽇志⽂件
l :显示⽇志
s: 显示传感器信息
f : 显示系统信息
1 :轮流显示每个 CPU 内核的使⽤情况(次选项仅仅使⽤在多核 CPU 系统)
glances运⾏web服务
1.安装python的包管理⼯具pip
yum install python python-pip python-devel gcc -y
2.安装web模块,bottle
pip install bottle
3.启动服务
glances -w
Glances web server started on http://0.0.0.0:61208/
也可以选择直接用 pip 下载glances[all], 会默认吧bottle 这些扩展模块下载下来
pip install glances[all] 这个下载方式的优势,还可以解决 yum 下载的glances 和 pip 下载的bottle 版本不兼容问题。推荐使用
# 如果不需要Web服务可以安装glances精简版
pip install glances
高级操作
1. web 页面端展示
glances -w & # 启动后就可以通过ip:61208 方式在浏览器上访问
2. 设置账户密码
glances -w --username
# 设置的glances密码储存在了配置文件里,如果看不到就提前创建好这个目录。cat .config/glances/admin.pwd
# admin.pwd admin 账户的密码文件,下次根据这个用户启动就可以了 glances -w --username
3. 根据api文档,结合web 服务框架开发自动化运维服务 https://glances.readthedocs.io/en/latest/api.html
更多可以参考