Linux常用命令
1.查看进程
-
查看进程信息获取PID : ps -ef | grep 进程名
-
查看进程启动时间: ps -p PID -o lstar
-
查看进程静态统计信息: ps option: a u x -e -l -f
- 以简单列表的形式显示出进程信息 : ps aux
根据内存使用率降序排序:ps aux --sort +%mem
根据cpu使用率降序排序:ps aux --sort +%cpu
显示出的信息列表标题各个字段含义:
USER: 启动该进程的用户账号的名称。
PID:该进程的系统号,在当前系统中是唯一的。
%CPU:CPU占用比
%MEN:内存占用比
VSZ:占用虚拟内存(swap空间)的大小
RSS: 占用常驻内存(物理内存)的大小
TTY: 表示该进程在哪个终端上运行,“?”代表未知或不需要终端。
STAT:显示当前进程状态(S 表示可中断的休眠进程、s表示父进程、<表示高优先级、N表示低优先级、R表示正常运行的进程、l 表示多线性进程、D表示不可中断的休眠进程、+ 表示前台进程、z表示僵尸进程)
START: 启动该进程的时间
TIME: 该进程占用的CPU时间
COMMAND:启动该进程的命令名称
- 以长格式显示系统中的进程信息:ps -elf
与ps aux命令不同的各字段含义描述:
PPID : 当前进程的父进程
C:表示cpu的占用
PRI : 用户态进程的优先级
NI : 内核态(取值范围:-20→19,数值越低,优先级越高)
ADDR : - 表示正在运行
WCHAN :当前进程的内核态的名称 -
查看进程的动态信息 : top
(每隔 3秒刷新一次,类似于Windows 系统中的任务管理器)相关字符含义如下:
系统任务(task)信息:
total : 总进程数
runnnig:正在运行的进程数
sleeping :休眠的进程数
stopped:中止的进程数
zombie : 僵尸进程的进程数1>CPU占用信息:us表示用户占用;sy表示内核占用;ni 优先级调度占用;id表示空闲CPU;wa表示I/O等待占用;hi表示硬件中断应用;si表示软件中断占用;st表示虚拟化占用。
2>内存(Mem)占用信息:total表示总内存空间;used表示已用内存;free表示空闲内存;buffers表示缓冲区域。
3>交换空间(swap)占用:total表示总交换空间;used表示已用交换空间;free表示空闲交换时间;cached表示缓存空间。 -
根据特定条件查询进程的PID : pgrep
结合 “-l” 选项可同时输出对应的进程名;
结合 “-U” 选项查询指定用户的进程。
例子:
查看进程名中含有“log” 的进程:pgrep ‘log’
查看进程名中含有“log” 的进程并显示进程名:pgrep -l ‘log’
查看用户“root”的进程并显示进程名:pgrep -l -u root -
查看进程树: pstree
常见选项:
“-a”: 显示完整信息
“-u”: 列出对应的用户名
“-p”: 列出对应的PID号
例子:
查看完整命名、用户、PID:pstree -aup
指定用户查看:pstree -ap root
2.查看日志
- 查看实时日志:tail -f XXX.log (Ctrl+C 退出)
- 搜索关键字附近日志:cat -n filename | grep “关键字”
- 实时监控100行日志: tail -100f test.log
- 查询日志尾部最后10行的日志 :tail -n 10 test.log
- 查询10行之后的所有日志: tail -n +10 test.log
- 查询日志文件中的头10行日志:head -n 10 test.log
- 查询日志文件除了最后10行的其他所有日志:head -n -10 test.log
- 使用vim查看
1>进入vim编辑模式:vim filename
2>输入“/关键字”,按enter键查找
3>查找下一个,按“n”即可
4> 退出:按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我 们输入命令:
wq! 保存退出
q! 不保存退出 - 根据行号查找(查看第20行前后10行日志)
- 得到关键日志行号:cat -n test.log |grep “debug” (假设得到行号为20)
- 查询行号附近的日志:cat -n test.log | tail -n +10 | head -n 20
(查看第10行以后的20行日志) - 根据日期查看:sed -n ‘/2021-02-23 00:00:01/,/2021-02-23 00:02:00/p’ test.log
(日期必须是日志中打印出来的日期) - 日志分页打印,通过空格键翻页:cat -n test.log |grep “XXX” |more
- 将日志保存在文件中:cat -n test.log |grep “debug” ** >**XXX.tx
3.杀死进程
- 强制杀死进程:kill -9 PID
- 指定进程名杀死进程 :pkill -9 进程名(部分名称)
- 指定进程名杀死进程 :killall -9 进程名(全名称)