shell 常用到的特殊字符

  1. *:代表零个或多个字符或数字。
    test后面可以没有任何字符,也可以有多个字符,总之有或没有都能匹配出来。
  2. ? :只代表一个任意的字符
    不管是数字还是字母,只要是一个都能匹配出来。
  3. :这个符号在linux中表示注释说明的意思,即”#”后面的内容linux忽略掉。

在命令的开头或者中间插入”#” ,linux都会忽略掉的。这个符号在shell脚本中用的很多。
4. \:脱意字符,将后面的特殊符号(例如”*” )还原为普通字符。
5. | :管道符,前面多次说过,它的作用在于将符号前面命令的结果丢给符号后面的命令。这里提到的后面的命令,并不是所有的命令都可以的,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中grep, sed, awk为正则表达式必须掌握的工具,在后续内容中详细介绍。
6. $ :除了用于变量前面的标识符外,还有一个妙用,就是和’!’结合起来使用。
‘! ’ 表 示 上 条 命 中 中 最 后 一 个 变 量 ( 也 许 称 为 变 量 不 合 适 , 总 之 就 是 上 条 命 令 中 最 后 出 现 的 那 个 东 西 ) 例 如 上 边 命 令 最 后 是 t e s t . t x t 那 么 在 当 前 命 令 下 输 入 ! ’表示上条命中中最后一个变量(也许称为变量不合适,总之就是上条命令中最后出现的那个东西)例如上边命令最后是test.txt那么在当前命令下输入! 西test.txt!则代表test.txt。
  1)grep :过滤一个或多个字符,将会在后续内容中详细介绍其用法。
  2) cut :截取某一个字段
    语法:cut -d “分隔字符” [-cf] n 这里的n是数字
    -d :后面跟分隔字符,分隔字符要用双引号括起来
    -c :后面接的是第几个字符
    -f :后面接的是第几个区块
    -c 后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1,n2,n3
  3) sort :用做排序
    语法:sort [-t 分隔符] [-kn1,n2] [-nru] 这里的n1 < n2
    -t 分隔符 :作用跟cut的-d一个意思
    -n :使用纯数字排序
    -r :反向排序
    -u :去重复
    -kn1,n2 :由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
  4) wc :统计文档的行数、字符数、词数,常用的选项为:
    -l :统计行数
    -m :统计字符数
    -w :统计词数
  5) uniq :去重复的行,笔者常用的选项只有一个:
    -c :统计重复的行数,并把行数写在前面
    有一点需要注意,在进行uniq之前,需要先用sort排序然后才能uniq,否则你将得不到你想要的,笔者上面的试验当中已经是排序过所以省略掉那步了。
  6)tee :后跟文件名,类似与重定向”>”,但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。
  7)tr :替换字符,常用来处理文档中出现的特殊符号,如DOS文档中出现的^M符号。常用的选项有两个:
    -d :删除某个字符,-d 后面跟要删除的字符
    -s :把重复的字符去掉
    最常用的就是把小写变大写: tr ‘[a-z]’ ‘[A-Z]’
    当然替换一个字符也是完全可以的。
    不过替换、删除以及去重复都是针对一个字符来讲的,有一定局限性。如果是针对一个字符串就不再管用了,所以笔者建议只是简单了解这个tr即可,以后你    还会学到更多可以实现针对字符串操作的工具。
  8)split :切割文档,常用选项:
    -b :依据大小来分割文档,单位为byte
    格式如上例,后面的passwd为分割后文件名的前缀,分割后的文件名为passwdaa, passwdab, passwdac …
    -l :依据行数来分割文档
6. ; :分号。平时我们都是在一行中敲一个命令,然后回车就运行了,那么想在一行中运行两个或两个以上的命令如何呢?则需要在命令之间加一个”;”了。
7. ~ :用户的家目录,如果是root则是 /root ,普通用户则是 /home/username
8. & :如果想把一条命令放到后台执行的话,则需要加上这个符号。通常用于命令运行时间非常长的情况。
使用jobs可以查看当前shell中后台执行的任务。用fg可以调到前台执行。这里的sleep命令就是休眠的意思,后面跟数字,单位为秒,常用语循环的shell脚本中。
此时你按一下CTRL +z 使之暂停,然后再输入bg可以再次进入后台执行。
如果是多任务情况下,想要把任务调到前台执行的话,fg后面跟任务号,任务号可以使用jobs命令得到。
9. >, >>, 2>, 2>> :前面讲过重定向符号> 以及>> 分别表示取代和追加的意思,然后还有两个符号就是这里的2> 和 2>> 分别表示错误重定向和错误追加重定向,当我们运行一个命令报错时,报错信息会输出到当前的屏幕,如果想重定向到一个文本里,则要用2>或者2>>。
10. [ ]:中括号,中间为字符组合,代表中间字符中的任意一个
11. && 与 ||
在上面刚刚提到了分号,用于多条命令间的分隔符。另外还有两个可以用于多条命令中间的特殊符号,那就是 “&&”和”||”。下面笔者把这几种情况全列出:

  1. command1 ; command2
  2. command1 && command2
  3. command1 || command2
    使用”;”时,不管command1是否执行成功都会执行command2; 使用”&&”时,只有command1执行成功后,command2才会执行,否则command2不执行;使用”||”时,command1执行成功后command2 不执行,否则去执行command2,总之command1和command2总有一条命令会执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值