博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
0404 第十次课:shell基础(下)
阅读量:6255 次
发布时间:2019-06-22

本文共 1347 字,大约阅读时间需要 4 分钟。

hot3.png

一、shell特殊符号

  • shell中的一些特殊符号:

    *:表示任意个任意字符

    ?:表示任意单个字符

    #:表示注释字符

    \ :表示脱义字符

    |:表示管道符

二、cut命令

  • cut命令是用来分割

    用法: cut -d 指定分隔符 -f 指定段号 -c 指定第几个字符

  • 示例:

    1、 以":"分割,截取passwd文件的第一段

    cat /etc/passwd |cut -d ":" -f 1

    2、截取pass文件第一行

三、sort命令

  • sort命令是用来进行排序

    用法:sort -n 以数字进行排序 -r 反序 ,-t 分隔符(一般不使用)

  • 注意点:

    sort默认的排序是按ascii码进行排序

    sort一般和uniq结合起来使用

    如何按照数字排序那么特殊符号和字母大小默认认为是0

  • 示例:

    1、不加参数,默认是ascii码进行排序

    2、以数字进行排序,字母和特殊符号会被认为是0,所以字母和特殊符号都在数字之上

    3、反序

四、wc命令

  • wc命令是用来统计

    用法:wc -l 统计行数 -m统计字符数 -w 统计词数

    示例:

    1、统计行数

    2、统计字符数

    3、统计词数

五、uniq命令

  • uniq命令是用来去重的,一般都是结合sort来进行使用。

    用法:uniq -c 统计重复行数

  • 示例:

    1、去重

    2、统计重复行数

六、tee_tr_split命令

  • tee命令

    tee命令和输出重定向(>)类似,不同的是tee会把重定向的内容打印到屏幕。tee也支持追加,加个-a参数即可。

    示例:

  • tr命令

    tr命令用于替换字符

    示例:

    1、替换字母

    2、替换所有的字母

  • split命令

    split命令用于切割,可以把一个大文件切割为小文件。

    用法:split -b 按照大小进行切割,默认单位为字节。 -l 指定行数进行切割

  • 示例

    首先生成一个大一点的文件

    find /etc -name "*.cnf" -exec cat {} >> 01.txt \;

    1、按照100k 大小进行分割,如果不指定名称系统会默认生成文件名。

    split -b 100k 01.txt

    2、指定文件名

    split -b 100k 01.txt wxy

    3、指定行数分割

    split -l 10000 01.txt

七、shell特殊符号下

  • $:变量前缀

  • !$:正则中表示行尾

  • ; :多条命令写到一行 用";"分割

    如下:同时执行ll和统计命令

  • ~:用户家目录,正则中表示匹配符

  • &:放在命令后门表示后台执行

  • ">":正确重定向

  • ">>":追加重定向

  • 2> :错误重定向

  • 2>> :错误追加重定向

  • &> : 正确错误同时重定向

  • []:指定字符中的一个,如[0-9],[a-zA-z]

  • || && 用在命令之间。||表示如果前面命令执行成功则不会执行后面的,&&表示前面的命令执行成功才会执行后面的命令

    示例:

    || 前面ll命令执行成功后,后面wc命令则不会执行

    判断一个目录是否存在,如果不存在则创建

    [ -d wxy ] || mkdir wxy

    -d 是判断一个目录是否存在

    改为&&就会报目录已存在

八、扩展内容

转载于:https://my.oschina.net/u/3755326/blog/3033321

你可能感兴趣的文章
Xcode Debug调试汇总
查看>>
设计模式:再严谨的单例也尽量不要使用
查看>>
TiDB at 丰巢:尝鲜分布式数据库
查看>>
三篇文章了解 TiDB 技术内幕 —— 谈调度
查看>>
Next.js踩坑入门系列(六) —— 再次重构目录
查看>>
1. Context - React跨组件访问数据的利器
查看>>
Git常用操作、提交到GitHub等
查看>>
Android基础 四大组件之广播(Broadcast)
查看>>
SQL优化器原理 - 查询优化器综述
查看>>
TODO list小工具,给自己一个交代
查看>>
iOS Notification 与多线程
查看>>
NLP系列学习:概率图模型简述
查看>>
数组分页,返回数据,你用过吗?
查看>>
JEESZ-kafka消息服务平台实现
查看>>
(四)构建dubbo分布式平台-maven代码结构
查看>>
解读Node核心模块Stream系列一(Writable和pipe)
查看>>
自我绘制三
查看>>
区块链开发、以太坊开发的技术资料资源汇总
查看>>
CSS 技巧篇(五):理解CSS优先度
查看>>
使用vue解决复杂逻辑
查看>>