在这里不给大家列出最基本的linux命令,相信大家从网上一搜就是一堆基本命令的使用手册,这里只给同学们列出来最干货的,最能解决实际问题的命令:

1、强制杀死所有指定进程。相信同学们在杀进程的时候经常用到是kill -9 进程号,这样的命令,但是这样只针对杀单进程,如果进程有成百上千个呢,总不能手动一个个得杀死吧,所以这个命令组合就派上用场了:

#其中PROCESS为进程名称
[root@ixxxx ~]# ps -ef | grep PROCESS | grep -v grep | awk '{print $2}' | xargs kill -9

2、查看文件总行数。我们在运维工作中避免不了查看文件总行数,如果文件很小还可以但要是文件很大,甚至超过了服务器内存,那么我们就不能简单的使用vim 然后set nu查看行数了,这样会把文件整个加载到内存里,造成服务器崩溃,这个时候就该cat命令上场了,cat不会把文件一次性加载到内存里,所以不会大量占用内存的情况,命令如下:

[root@ixxxx ~]# cat index.php |wc -l
17

3、查看占用系统内存最高的进程。如果发现系统负载过高,内存占用情况是我们排查的重要指标,其中找出内存占用最高的进程显得尤为重要,如下面的命令,默认找出前10个内存占用最高的进程,如果想列出top5 则在head后面追加 -n 5即可:

#默认找出占用内存最高的top10进程
[root@ixxxx ~]# ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql    26687  0.0  5.0 993736 50904 ?        Sl   7月16  16:56 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
www      18489  0.0  4.7 356764 48564 ?        S    8月08   0:11 php-fpm: pool www
www      27745  0.0  4.5 353940 45900 ?        S    8月07   0:17 php-fpm: pool www
www      17313  0.0  4.4 353136 45112 ?        S    8月08   0:12 php-fpm: pool www
www      18486  0.0  4.3 352704 44524 ?        S    8月08   0:11 php-fpm: pool www
www      17312  0.0  4.3 352168 44020 ?        S    8月08   0:12 php-fpm: pool www
www      11171  0.0  4.3 352044 43668 ?        S    8月09   0:04 php-fpm: pool www
www      11168  0.0  4.2 352988 42964 ?        S    8月09   0:04 php-fpm: pool www
www      18488  0.0  4.1 351356 41660 ?        S    8月08   0:11 php-fpm: pool www
www      17310  0.0  4.1 350600 42176 ?        S    8月08   0:11 php-fpm: pool www

4、实时监控发往mysql服务器的sql语句。这个命令时程序员排查问题的实用命令,在客户端服务器上执行如下命令即可抓包sql语句,127.0.0.1和3306分别替换成mysql服务器的地址和端口号

[root@xxxx ~]# tcpdump -s 0 -l -w - dst 127.0.0.1 and port 3306 |strings
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

5、查看服务器内存剩余情况。其中free列代表内存剩余多少。

[root@xxxx ~]# free -mh
              total        used        free      shared  buff/cache   available
Mem:           991M        442M        127M        120K        420M        362M
Swap:          1.0G        125M        898M

6、查看磁盘空间占用概况。

[root@xxxx ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/vda1        40G  4.7G   33G   13% /
devtmpfs        486M     0  486M    0% /dev
tmpfs           496M     0  496M    0% /dev/shm
tmpfs           496M  464K  496M    1% /run
tmpfs           496M     0  496M    0% /sys/fs/cgroup
tmpfs           100M     0  100M    0% /run/user/0

7、 取两个文件的差集。得出的结果是在中存在但不在a.log中存在的行,如下:

[root@xxxx ~]# cat a.log
11
22
[root@xxxx ~]# cat b.log
22
33
[root@xxxx ~]# grep -F -v -f a.log b.log  | sort | uniq
33

8、查找某个字符串在哪些文件里存在。-r为递归查找,-n为显示字符串所在的行号,如下在当前目录下查找关键字为itboy的文件。

[root@VM_0_8_centos ~]# cat f.log
111
222
333
444
itboy
555
[root@VM_0_8_centos ~]# grep -rn itboy ./*
./f.log:5:itboy

9、查找指定文件在哪个目录下。“/”可以换成你想要查找的目录路径

[root@VM_0_8_centos ~]# find / -name filename

10、查看正在运行的进程。比如查看正在运行的php-fpm进程。

[root@VM_0_8_centos ~]# ps -ef | grep -v grep | grep php-fpm
nginx    19765 27832  0 18:35 ?        00:00:06 php-fpm: pool www
nginx    24722 27832  0 18:56 ?        00:00:03 php-fpm: pool www
root     27832     1  0 8月08 ?       00:00:06 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx    30174 27832  1 19:17 ?        00:00:00 php-fpm: pool www

敬请期待!持续更新中~

发表评论

电子邮件地址不会被公开。 必填项已用*标注