Linux常用命令总结(二)
1.Netstat 命令
用于显示各种网络相关信息,如网络连接,路由表,接口状态等待。
例如 统计IP110.120.119.XXX的连接数:
netstat | grep 110.120.119.XXX |wc -l
列出所有 tcp 端口 netstat -at
查看端口3306的使用情况
netstat tunlp | grep 3306
查看连接某服务端口最多的的IP地址
netstat -nat | grep "110.110.110.110:3306" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
2.关闭swap,再开启swap
swapoff -a
swapon -a
3.lsof(list open files) 命令
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
注意:在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
例如: lsof
-i 用以显示符合条件的进程情况
lsof -i:3306
还例如,在卸载文件系统时,如果该文件系统中有任何打开的文件,操作通常将会失败。那么通过lsof可以找出那些进程在使用当前要卸载的文件系统。
4.文件(文档)按时间排序
按照递增时间顺序列出所有文件,其命令如下:
ls -ltr
-l 表示列出每一个文件的详细信息,例如文件权限、链接数、所有者名称和组所有者、文件大小、最后修改的时间和文件/目录名称;
-t 表示按照时间顺序;
-r表示将排序的结果反向输出。
按照时间递减的顺序列出所有文件,其命令如下:
ls -lt
5.find搜索符合条件的文件
find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
使用实例:
6.which 搜索某个系统命令的位置
例如
##查找python命令所在的路径 which python ##查找path中java的路径 which java
7.ps 命令显示运行的进程
ps 命令显示运行的进程,还会显示进程的一些信息如pid, cpu和内存使用情况等:
-A :所有的进程均显示出来 -a :不与terminal有关的所有进程 -u :有效用户的相关进程 -x :一般与a参数一起使用,可列出较完整的信息 -l :较长,较详细地将PID的信息列出
8.grep命令
该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,比如可以加在ps, tail, cat后面。
cat xx.log | grep '关键字' -C 5 显示file文件里匹配“关键字”字串那行以及上下5行 cat xx.log | grep '关键字' -B 5 显示“关键字”及前5行 cat xx.log | grep '关键字' -A 5 显示“关键字”及后5行
常常通过结合使用 ps 和 grep 命令来查看 某进程的运行情况。
但是如何过滤掉 grep 进程本身的输出呢?
答案是在进程后面加 | grep -v grep 。-v 参数的含义为: 不包括。
例如,查看redis进程
ps -ef | grep redis | grep -v grep
9.iowait 分析
运行 dstat 命令,观察 CPU 和 I/O 的使用情况
dstat 1 10
当 iowait 升高(wai)时,磁盘的读请求(read)都会很大(M),这说明 iowait 的升高跟磁盘的读请求有关,很可能就是读磁盘导致的.
10.查看系统的僵尸进程
ps -e -o stat,ppid,pid,cmd | egrep '^[Zz]' 或 ps -ef | grep "defunct"
11.快速定位 Out of memory 相关log 信息
(1) 执行 dmesg -T 命令
dmesg -T 这个命令可以显示很多系统进程相关的日志信息。例如 mysqld 内存超出了上限,并且自动的killed掉了,可以通过此命令查看。
dmesg -T
(2)上面的命令 或者 之间查看message 系统log ,打印OOM的log,其时间有时候是明显不对的(与内核有关),此时,log文件中OOM的 时间 明显 与其所处于的上下文时间不连贯的。
查看现实真正的时间,与上下文连贯,可以通过 journalctl 命令查看,通过这个命令查看的时间是对的。
查看内核日志(不显示应用日志)
journalctl -k
还可以指定其他参数 ,例如 显示尾部指定行数的日志
journalctl -n 15
通过 --since 查看指定时间的日志等,
12. 查看服务是否设置了自启动
在Linux系统中,使用systemctl命令可以查看服务是否已设置为 自启动
systemctl is-enabled <服务名>
参考网址
1.Linux netstat命令详解
https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html
2.释放linux的swap内存
https://blog.csdn.net/chenghuikai/article/details/77476830
3.linux命令总结之lsof命令
https://www.cnblogs.com/ginvip/p/6367939.html
4.linux常用命令(50个)
https://www.cnblogs.com/xuxinstyle/p/9609551.html
5.性能分析(4)- iowait 使用率过高案例
https://www.cnblogs.com/poloyy/p/13424572.html
6.journal查看Linux日志相关