题图:gratisography
常用命令的使用
常用命令的使用有很多,而且其用法也是琳琅满目,这边只列出自己经常用的一些指令,如果想看跟详细的使用方法可在网络上进行查看。
grep
grep允许对文本文件进行模式查找
1.在编程过程中,最常用的就是grep –rn “***”./
,该搜索为递归搜索,会将该目录和下层的目录下的内容进行全部查找,把文件名、行号等都显示出来。
grep –rn “***” ./ > ../aaa
将搜索到的结果存放在../aaa文件下面
例:
linye@ly:~/test_source/socket/tcp$ grep -rn "sockfd" ./
./client_tcp.c:15: int sockfd;
./client_tcp.c:25: if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){
./client_tcp.c:30: if(connect(sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0){
./client_tcp.c:37: if(send(sockfd, sendbuf, strlen(sendbuf), 0) < 0){
./client_tcp.c:41: close(sockfd);
2.与ls、ps等指令结合使用
例1:
root@RBR50:/# ps |grep ping-web
3497 root 420 S /bin/sh /sbin/ping-web
9574 root 96 S grep ping-web
root@RBR50:/# ps |grep ping-web | grep -v grep (排除有包含grep的行)
3497 root 420 S /bin/sh /sbin/ping-web
例2:
root@RBR50:/# ls -l | grep fir
-rw-r--r-- 1 root root 11 Jun 20 2016 firmware_language_version
-rw-r--r-- 1 root root 1 Jun 20 2016 firmware_region
-rw-r--r-- 1 root root 29 Jun 20 2016 firmware_time
-rw-r--r-- 1 root root 11 Jun 20 2016 firmware_version
更多例子可以查看Linux命令大全-grep
find
find指令用来查找文件所在位置,需要对文件的全名进行搜索,将匹配到名称一样的文件的路径列出来。
例:
linye@ly:~/test_source$ find ./ -name client_tcp.c
./socket/tcp/client_tcp.c
./socket/pthread/client_tcp.c
更多例子可以查看Linux命令大全-find
awk
awk在一个文本文件中抽取自己需要的数据包,一般是跟grep和sed配合使用。
1.使用空格分隔的文本数据
例:我们需要获取ping-web这个字符串,需要经过两次awk,第一次通过空格分隔来获取到/sbin/ping-web,空格的第六个字符串
root@RBR50:/# ps | grep ping-web | grep -v grep
3605 root 420 S /bin/sh /sbin/ping-web
root@RBR50:/# ps | grep ping-web | grep -v grep | awk '{print$6}'
/sbin/ping-web
2.使用特殊符号来分隔数据,使用-F
通过符号“/”当做分隔符,取/sbin/ping-web的第三个
root@RBR50:/# ps | grep ping-web | grep -v grep | awk '{print$6}' | awk -F "/" '{print$3}'
ping-web
更多例子可以查看Linux命令大全-awk
3.加条件操作
例:当$6=/sbin/ping-web时,打印出该行的$5
root@RBR50:/# ps | grep ping-web
3605 root 420 S /bin/sh /sbin/ping-web
4724 root 96 S grep ping-web
root@RBR50:/# ps | grep ping-web | awk ' $6 == "/sbin/ping-web" {print$5}'
/bin/sh
wc
参数 | 含义 |
---|---|
-c/-m | 显示Bytes数 |
-w | 显示字数 |
-l | 显示列数 |
-L | 最长一行的字符数 |
例:
linye@ly:~/test_scripts$ wc -l test_2.sh
7 test_2.sh
linye@ly:~/test_scripts$ wc -c test_2.sh
69 test_2.sh
linye@ly:~/test_scripts$ wc -m test_2.sh
69 test_2.sh
linye@ly:~/test_scripts$ wc -w test_2.sh
17 test_2.sh
linye@ly:~/test_scripts$ wc -L test_2.sh
25 test_2.sh
shift
shift即完成参数的左移,如shift 2,即左移两位,$3变成$1;不加参数shift及左移1位。
常用命令的使用的分析就到这边,有感悟时会持续会更新。
注:以上内容来自C语言中文网及本人在使用过程的一些理解整理。如有侵权,请及时通知我,我将马上删除,如有错误之处也请指出,进行探讨学习。文章只是起一个引导作用,详细的数据解析内容还请查看Shell相关教程,感谢您的查阅。