| 
                        副标题[/!--empirenews.page--]
                           
本文并不是介绍Linux命令的手册,而是侧重于命令在特定场景下如何帮助应急人员和攻关人员定位问题并解决问题,因此,对于每个命令的介绍将直切主题,直接介绍命令使用的具体场景,而不是介绍命令的详细使用格式。 
01.必不可少的基础命令和工具 
1、grep 
grep是Linux下通用的文本内容查找命令。 
也可以利用它打印匹配的上下几行,线上查找问题的时候,可以使用下列命令,查找关键字,显示关键字出现行的后5行,并且给关键字着色。 
使用方式: 
- grep -5 'parttern' INPUT_FILE #打印匹配行的前后5行  
 - grep -C 5 'parttern' INPUT_FILE #打印匹配行的前后5行  
 - grep -A 5 'parttern' INPUT_FILE #打印匹配行的后5行  
 - $grep -B 5 'parttern' INPUT_FILE #打印匹配行的前5行  
 - grep -A -15  --color 1010061938 * #查找后着色 
 
  
2、find 
通过文件名称查找文件的存在位置,名称查找支持模糊匹配。 
使用方式: 
- find . -name FILE_NAME 
 
  
命令输出: 
- robert@robert-ubuntu1410:~$ find . -name VestaServer.java 
 - ./working/workspace/vesta-id-generator/vesta-server/src/main/java/com/robert/vesta/server/VestaServer.java 
 
  
3、uptime 
查看机器的启动时间、登录用户、平均负载等情况,通常用在线上应急或者技术攻关的时候来确定操作系统的重启时间。 
使用方式: 
- uptime 
 
  
命令输出: 
- robert@robert-ubuntu1410:~$ uptime 
 - 14:42:30 up  2:51,  3 users,  load average:0.03, 0.06, 0.06 
 
  
从上面输出可以看到如下信息: 
    - 当前时间:14:42:30
 
    - 系统已运行的时间:2小时51分
 
    - 当前在线用户:3个用户
 
    - 系统平均负载:0.03, 0.06, 0.06,最近1分钟、5分钟、15分钟系统的负载情况
 
 
系统平均负载指在特定时间间隔内队列中运行的平均进程数。如果一个进程满足以下条件,它其就会位于运行队列中: 
    - 它没有在等待IO操作的结果
 
    - 它没有主动进入等待状态(也就是没有调用'wait'相关的系统API)
 
    - 没有被停止(例如:等待终止)
 
 
一般来说,每个CPU内核对应活动进程数不大于3,则系统运行良好,换句话说,也就是活动进程数小于CPU核数的3倍。 
举例说明,如果你的服务器的cpu有3个核心,那么只要uptime最后输出的一串字符数值小于9,即表示系统负载正常。但是,如果系统负载超过10,那就表示当前系统负载过重,需要定位系统执行任务负载超标的原因。 
4、lsof 
列出系统当前打开的文件句柄,在Linux文件系统中,任何资源都是以文件句柄的形式管理的,例如:硬件设备、文件、网络套接字等,系统内部为每一种资源分配一个句柄,应用程序只能用操作系统分配的句柄来引用资源,因此,文件句柄为应用程序与基础操作系统之间的交互提供了通用的操作接口。 
应用程序打开文件的描述符列表包含了大量的关于应用程序本身的运行信息,因此通过lsof工具查看这个文件句柄列表,对系统监控以及应急排错提供重要的帮助。 
查看某一个进程打开的文件句柄: 
- lsof -p 2862 
 
  
命令输出: 
- robert@robert-ubuntu1410:~$ lsof -p 2862 | less 
 - COMMAND  PID   USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME 
 - java    2862 robert  cwd    DIR                8,1     4096  537041 /home/robert/working/workspace/vesta-id-generator/releases/vesta-id-generator-0.0.1-release/bin/vesta-rest-0.0.1 
 - java    2862 robert  rtd    DIR                8,1     4096       2 / 
 - java    2862 robert  txt    REG                8,1     5730 1064639 /home/robert/working/softwares/jdk1.8.0_20/bin/java 
 - java    2862 robert  mem    REG                8,1  7216688 1318996 /usr/lib/locale/locale-archive 
 - java    2862 robert  mem    REG                8,1 65525265 1189622 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/rt.jar 
 - java    2862 robert  mem    REG                8,1    80460 1189581 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/i386/libnio.so 
 - java    2862 robert  mem    REG                8,1   103299 1189580 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/i386/libnet.so 
 - java    2862 robert  mem    REG                8,1    81884 1583248 /usr/share/locale-langpack/zh_CN/LC_MESSAGES/libc.mo 
 - java    2862 robert  mem    REG                8,1  3131363 1189479 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/charsets.jar 
 - java    2862 robert  mem    REG                8,1  3500527 1189621 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/resources.jar 
 - java    2862 robert  mem    REG                8,1  1179307 1330505 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/ext/localedata.jar 
 - java    2862 robert  mem    REG                8,1   615948 1189601 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/jsse.jar 
 - java    2862 robert  mem    REG                8,1  3860522 1330502 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/ext/cldrdata.jar 
 - java    2862 robert  mem    REG                8,1  1065895 1330501 /home/robert/working/softwares/jdk1.8.0_20/jre/lib/ext/bcprov-jdk15-132.jar 
 - ...... 
 
  
查看某一个端口的使用方式: 
- lsof -i :8080 
 
  
                                                (编辑:我爱故事小小网_铜陵站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |