总结一下运维和测试常见的linux命令
文件篇
日志篇
1. 实时查看日志文件最后50行:
$: tail -n 50 wx.log
2. 查找当前目录及子目录中文件名包含log的全部文件
$ find . -name *log* 或者$ find . | grep log
3. 统计字符串出现字数
$ grep -c "被查找的字符串" 文件名
4. 过滤字符串,并显示字符串所在行数
grep -n "正则" ./linux.txt
5. 查看最新日志中关键字出现次数以及行数
tail -n 50 linux.txt| grep -c "命令"
tail -n 50 linux.txt| grep -n "命令"
进程篇
1. 过滤名为java的进程
ps -ef| grep java
2. 显示全部进程
ps -ef
其中各列的内容意思如下
UID //用户ID、但输出的是用户名
PID //进程的ID
PPID //父进程ID
C //进程占用CPU的百分比
STIME //进程启动到现在的时间
TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD //命令的名称和参数
或者是
ps aux
默认是按照CPU占用百分比排序的
同ps -ef 不同的有列有
USER //用户名
%CPU //进程占用的CPU百分比
%MEM //占用内存的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
STAT //进程的状态
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间
3. 杀进程, 先使用ps命令找到进程id,使用kill -9 命令,终止进程
$kill -9 pid
4. 杀指定进程
➜ ~ ps -ef | grep java
501 57271 57125 0 2:20下午 ttys000 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox java
# awk输出的是第二个字段,也就是PID
➜ ~ ps -ef | grep java | awk '{print $2}'
57282
# 根据PID杀进程
➜ ~ps -ef | grep java | awk '{print $2}' xargs kill -9
磁盘篇
将容量结果以易读的容量格式显示出来
$df -h
CPU篇
top