shell基础(下)

1.命令cut

概念:cut命令用来截取某一个字段 格式:cut -d [-cf] n cut -d截取分割符号为“:”, -f 1 表示截取第一段,1,2表示前两段,1-3表示头三段。

  • -d 后面跟分割字符,分割字符要用单引号括起来
  • -c 后面接的是第几个字符
  • -f 后面接的是第几个区块(指定区域)

46cebf211e8b04c3b64f41f439b01e5acbb.jpgd2bb98bc609cce3b97466444efd3d3afb6e.jpgb1a7e10b1c6e2920f1e0e7855d52ed0ed0b.jpg

2.命令sort

sort命令用于排序 格式:sort [-t 分隔符] [-kn1,n2] [-nru] 这里-n1和n2指的是数字,其他选项如下

  • -t 后面跟分割字符,作用跟cut -d选项一样,截取符号是什么
  • -n 表示使用纯数字排序,字母及特殊符号表示为0;(需要和k一起用)
  • -r 表示反向排序
  • -u 表示除去重复
  • -kn1,n2 表示由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
  • sort不加任何选项,则从首字符后依次按ASCII码值进行比较,最后将它们按升序输出

8f8b814a505fabfed6cb2075877dbd1c452.jpg

-t 后面跟分隔符,-k后面跟单个数字表示对第几个区域字符串排序,-n选项则表示用存数字排序

ed7133df808bc4bbd3326684aa47bfea55e.jpg

-k选项后面跟数字n1和n2表示:对第n1和n2区域内的字符串排序,-r为反向排序

87d8157d2f78b8c97a3cc9c983137bf9cc4.jpg

3.wc 命令

wc命令用于统计文档的行数,字符数或词数

  • wc不加选项 数 字数 字节数 文件名称
  • wc -c filename:显示一个文件的字节数
  • wc -m filename:显示一个文件的字符数
  • wc -l filename:显示一个文件的行数
  • wc -L filename:显示一个文件中的最长行的长度
  • wc -w filename:显示一个文件的词数

19aef7fa05436b1db81c273073adf42c4d5.jpg54ee967f2c8a96c331e44e3af2cdd4eb225.jpg

4.命令uniq

概念:uniq命令用来删除重复的行,改名了只有-c选项比较常用; 它表示统计重复的行数,并把行数写在前面,常与sort连用。

c6e491e24da21865b33637189cfc56184f6.jpg

c3f1a2790230cd288ba4367bfc1f209340e.jpg

 

5.命令tee

tee命令后面跟文件名,起作用类似于重定向>,但它比重定向多一个功能,即把文件写入后面跟的文件时,还会显示在屏幕上

1fba1c3cccea6a607717ac79ff7bbc72a13.jpg

5.命令tr

tr命令用于替换字符,常用来处理文档中出现的特殊符号;如DOS文档中出现的符号^M,该命令常用的选项如下:

  • -d 表示删除某个字符,后面跟要删除的字符;
  • -s 表示删除重复的字符
  • 删除去重复等操作都是针对一个字符来讲的;如果是一个字符串,就不能使用了

tr命令常用于把小写字母变成大写字母,如tr '[a-z]' '[A-Z]'

c282537642139c43b131351d149eddb4946.jpgfc2bb881d9996abadb2fe803cb1f857e882.jpg

tr命令还可以替换一个字符d8a8f1e9060fb266df805daa9b8a77cba2e.jpg

-d 表示删除某个字符,后面跟要删除的字符

cdb724634579be6d8132b300a1d8469e984.jpg8609915af8a9cbdc703aaba2b79d7751b90.jpg

-s 表示删除重复的字符

18b58166005a35becd2310f395d7f55d85a.jpg

6. 命令split

split命令用于切割文档,常用的选项为-b和-l

  • -b 表示依据大小来分割文档,默认单位为byte(字节),可以设置单位:K、M等
  • 也可以指定目标文件名
  • -l 表示依据行数来分割文档

3797ea05310329117a5641ba7b4c9ee99c5.jpg815f5b87a10b437387c524d1ff0b1dcf653.jpg

7.shell的特殊符号

特殊符号$

$可以用作变量前面的标识符,还可以和!结合使用

36da4f92d9867163dbb966f16bc2ca258c2.jpg

特殊符号 ;

在一行命令中运行两个或两个以上的命令,需要在命令之间加符号;

6e49b9c97f325077dcc6c7600d8bb549095.jpg

重定向符号>、>>、2>和2>>

和>>分别表示取代和追加的意思。当我们运行一个命令报错时,报错信息会输出到当前屏幕。如果想重定向到一个文本,则要用重定向符号2>或者2>>,它们分别表示错误重定向和错误追加重定向。

  • 2>和2>>它们分别表示错误重定向和错误追加重定向
  • 错误和正确都输入&>

54bcafb16eae50a60aab9d9f2e244da9e68.jpg54e5b45b9742799a9df63df5ce9384a1e9e.jpg6275f9405228840f0a02afa24e1338c9751.jpg

特殊符号~

符号~代表用户的家目录,root用户的家目录是/root,普通用户的家目录是/home/username

中括号[]

中括号内为字符组合,代表字符组合中的任意一个。指定一个范围(1-3,a-z)

特殊符号||

使用||时,表示或者,意思是说 如果两条命令用||分割的话,第一条执行成功后,第二条就不会执行,假如第一条命令是错误的话,执行失败就会执行第二条

014672f845fe13963fa0ba98b50ee095247.jpg

特殊符号 &&

使用&& 表示前面的命令执行成功以后,才会执行后面的命令,如果前面命令执行不成功,后面的命令就不会执行。用&&分割,用来判断的

6453647f46c4d961cd69a3b61ece72b5377.jpg

总结下:

  • command1 ; command2

  • command1 && command2

  • command1 || command2

  • 使用 ”;” 时,不管command1是否执行成功都会执行command2;

  • 使用 “&&” 时,只有command1执行成功后,command2才会执行,否则command2不执行;

  • 使用 “||” 时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行

8.fork source exec的区别​​​​​​​

1. fork  ( /directory/script.sh) :如果shell中包含执行命令,那么子命令并不影响父级的命令,在子命令执行完后再执行父级命令。子级的环境变量不会影响到父级。 

fork是最普通的, 就是直接在脚本里面用/directory/script.sh来调用script.sh这个脚本.

运行的时候开一个sub-shell执行调用的脚本,sub-shell执行的时候, parent-shell还在。

sub-shell执行完毕后返回parent-shell. sub-shell从parent-shell继承环境变量.但是sub-shell中的环境变量不会带回parent-shell

2. exec (exec /directory/script.sh):执行子级的命令后,不再执行父级命令。

exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本.  被调用的脚本与父脚本在同一个shell内执行。但是使用exec调用一个新脚本以后, 父脚本中exec行之后的内容就不会再执行了。这是exec和source的区别

3. source (source /directory/script.sh):执行子级命令后继续执行父级命令,同时子级设置的环境变量会影响到父级的环境变量。

与fork的区别是不新开一个sub-shell来执行被调用的脚本,而是在同一个shell中执行. 所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用

 

转载于:https://my.oschina.net/u/4000361/blog/2873812

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值