Shell学习之路-(07-其他常用命令)

Shell学习之路-(07-其他常用命令)_第1张图片
题图: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相关教程,感谢您的查阅。

你可能感兴趣的:(Shell学习之路-(07-其他常用命令))