视频的容积 发表于 2018-8-21 09:10:43

shell 学习之正则、别名以及管道重定向

  一、linux的文件类型:
  类型                           标识符      颜色
  档案file:                        -            白色
  目录directory:            d            蓝色
  字符设备character:   c            黄色
  块设备block:                  b         黄色
  管道 pipe:                     |            黄色
  链接设备linek:               ln         蓝--绿
  socket:                           s
  二、别名设置和取消
  ualias撤销别名使用
  ualias cmdalias
  命令别名和命令本身的时候 \cmd
#设置进入网络编辑目录的别名  
# alias cdnet='cd /etc/sysconfig/network-scripts/'
  
#使用别名
  
# cdnet
  
#
# alias cdnet='cd /etc/sysconfig/network-scripts/'  
# cd cdnet
  
-bash: cd: cdnet: 没有那个文件或目录
  
# cd cdnet
  
-bash: cd: cdnet: 没有那个文件或目录
  
# cdnet
  
#
  取消别名设置
#取消别名设置  
# unalias cdnet
  
# cd -
  
/home/scripts/51cto
  
#再次验证别名是否还存在
  
# cdnet
  
-bash: cdnet: command not found
  三、管道、重定向
  系统设定
  默认输出设备标准输出 stdout 1
  显示器
  默认输入设备标准输入 stdin 0
  键盘
  标准错误输出stderr 2
  > 输出重定向原有内容丢失 覆盖输出
  < 输入重定向原有内容丢失 覆盖输入
  >> 追加输出保留文件中原有内容
  | 强制 输出重定向
  2> 重定向错误输出
  &>:重定向标准输出或错误输出到同一个文件
  1>&2 正确返回值传递给2输出通道 &2表示2输出通道
  2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.
#2>&1是网上使用最广泛的一个示例  
# cenet > info.tt 2>&1
  
#查看info.tt文件内容
  
# cat info.tt
  
-bash: cenet: command not found
  四、文件名通配
  文件名通配 gloabbing
  *匹配任意长度的字符,可以是空字符串
  ? 匹配一个字符,但不可为空
  \ 可以做转义使用,也可作为续行符号
  [] 匹配一个序列中的任意一个
   选择其中的任意一个
  [^]取反的意思
  [^0-9] 除了0-9之外的任意单个字符
  [[:space:]] 所有的空白字符
  [[:punct:]] 标点符号
  [[:lower:]] 小写字母也可用 表示
  [[:upper:]] 大写字母 也可用表示
  [[:alpha:]]大小写字母 也可用表示
  [[:digit:]]数字也可用表示
  [[:alnum:]]数字和大小写字母 也可用表示
  五、正则表达式
  基本正则表达式:
  .   匹配任意单个字符
  [^] 匹配指定范围外的任意单个字符 不需要转义
  []匹配指定范围内的任意单个字符,不需要转义
  ^   匹配行首
  $   匹配行尾
  \?   匹配前面出现字符的0个或1个字符
  *   匹配前面的字符任意次数
  .*匹配任意长度的任意字符
  \{m,n\} 匹配其前面的字符至少m次,至多n次,需要转义
  \(\)   后向引用
  \<= \b其后面的任意字符必须作为单词首部出现
  \>    = \b其前面的任意字符必须作为单词的尾巴出现
  ^$空白行
  扩展正则表达式:
  字符匹配:
  .匹配任意单个字符
  [] 匹配指定范围内的任意单个字符,不需要转义
  [^]匹配指定范围外的任意单个字符 不需要转义
  次数匹配:
  * 匹配前面的字符任意次数
  ?匹配前面出现字符的0个或1个字符   不需要转义
  + 其前字符至少一次
  {m,n}匹配其前面的字符至少m次,至多n次 不需要使用\转义
  位置牟定:
  ^ 匹配行首
  $ 匹配行尾
  ^$空白行
  \> 其前面的任意字符必须作为单词的尾巴出现
  \< 其后面的任意字符必须作为单词首部出现
  分组:
  ()不需要再进行转义
  \1,\2,\3....
  或者:
  | or
  a|b a或者b
  示例脚本(暂时未列出...):


页: [1]
查看完整版本: shell 学习之正则、别名以及管道重定向