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

简介:

一、linux的文件类型:
        类型                           标识符        颜色
        档案file:                          -            白色
        目录directory:            d            蓝色
        字符设备character:   c            黄色
        块设备block:                  b           黄色
        管道 pipe:                       |            黄色
        链接设备linek:               ln           蓝--绿
        socket:                           s

二、别名设置和取消

ualias  撤销别名使用
ualias cmdalias
命令别名和命令本身的时候 \cmd

1
2
3
4
5
#设置进入网络编辑目录的别名
[root@lovelace 51cto] # alias cdnet='cd /etc/sysconfig/network-scripts/'
#使用别名
[root@lovelace 51cto] # cdnet
[root@lovelace network-scripts] #

 

1
2
3
4
5
6
7
[root@lovelace 51cto] # alias cdnet='cd /etc/sysconfig/network-scripts/'
[root@lovelace 51cto] # cd cdnet
- bash cd : cdnet: 没有那个文件或目录
[root@lovelace 51cto] # cd cdnet
- bash cd : cdnet: 没有那个文件或目录
[root@lovelace 51cto] # cdnet
[root@lovelace network-scripts] #

取消别名设置

 

1
2
3
4
5
6
7
#取消别名设置
[root@lovelace network-scripts] # unalias cdnet
[root@lovelace network-scripts] # cd -
/home/scripts/51cto
#再次验证别名是否还存在
[root@lovelace 51cto] # cdnet
- bash : cdnet:  command  not found

 

 

三、管道、重定向
系统设定
 默认输出设备  标准输出 stdout 1
  显示器
 默认输入设备  标准输入 stdin 0
  键盘
 标准错误输出  stderr 2

 

> 输出重定向  原有内容丢失 覆盖输出
< 输入重定向  原有内容丢失 覆盖输入

>> 追加输出  保留文件中原有内容
<< 此处生成文档
>| 强制 输出重定向
2> 重定向错误输出 
&>:重定向标准输出或错误输出到同一个文件

1>&2 正确返回值传递给2输出通道 &2表示2输出通道

2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.

1
2
3
4
5
#2>&1是网上使用最广泛的一个示例
[root@lovelace 51cto] # cenet > info.tt 2>&1
#查看info.tt文件内容
[root@lovelace 51cto] # cat info.tt
- bash : cenet:  command  not found

 

四、文件名通配
文件名通配 gloabbing  
    *  匹配任意长度的字符,可以是空字符串
   ? 匹配一个字符,但不可为空

    \ 可以做转义使用,也可作为续行符号
    [] 匹配一个序列中的任意一个
        [0-9][a-z][a-zA-Z] 选择其中的任意一个
    [^]  取反的意思
    [^0-9] 除了0-9之外的任意单个字符
    [[:space:]] 所有的空白字符
    [[:punct:]] 标点符号
    [[:lower:]] 小写字母  也可用 [a-z]表示
    [[:upper:]] 大写字母 也可用[A-Z]表示
    [[:alpha:]]  大小写字母 也可用[a-zA-Z]表示
    [[:digit:]]  数字  也可用[0-9]表示
    [[:alnum:]]  数字和大小写字母 也可用[0-9a-zA-Z]表示

五、正则表达式

基本正则表达式:
    .   匹配任意单个字符
    [^] 匹配指定范围外的任意单个字符 不需要转义
    []  匹配指定范围内的任意单个字符,不需要转义
    ^   匹配行首
    $   匹配行尾
    \?   匹配前面出现字符的0个或1个字符
    *   匹配前面的字符任意次数
    .*  匹配任意长度的任意字符
    \{m,n\} 匹配其前面的字符至少m次,至多n次,需要转义
    \(\)   后向引用
    \<  = \b  其后面的任意字符必须作为单词首部出现

    \>    = \b  其前面的任意字符必须作为单词的尾巴出现
    ^$空白行

扩展正则表达式:
字符匹配:
    .  匹配任意单个字符
    [] 匹配指定范围内的任意单个字符,不需要转义
    [^]  匹配指定范围外的任意单个字符 不需要转义


次数匹配:
    * 匹配前面的字符任意次数
    ?  匹配前面出现字符的0个或1个字符   不需要转义
    + 其前字符至少一次
    {m,n}  匹配其前面的字符至少m次,至多n次 不需要使用\转义

位置牟定:
    ^ 匹配行首
    $ 匹配行尾
    ^$空白行
    \> 其前面的任意字符必须作为单词的尾巴出现
    \< 其后面的任意字符必须作为单词首部出现
分组:
    ()不需要再进行转义
        \1,\2,\3....
或者:
    | or 
         a|b a或者b

 

示例脚本(暂时未列出...)



本文转自lovelace521 51CTO博客,原文链接:http://blog.51cto.com/lovelace/1211323,如需转载请自行联系原作者

相关文章
|
2月前
|
Linux Shell 文件存储
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
48 1
|
19天前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结
|
1月前
|
Shell
shell学习(六) 【case多条件分支语句】
shell学习(六) 【case多条件分支语句】
19 1
|
1月前
|
Shell 应用服务中间件 nginx
shell学习(七) 【shell 函数】
shell学习(七) 【shell 函数】
12 1
|
1月前
|
Shell Perl
shell学习(九) 【shell sed用法】
shell学习(九) 【shell sed用法】
13 0
|
1月前
|
机器学习/深度学习 Shell Windows
shell学习(八) 【shell 正则 匹配符和限定符】
shell学习(八) 【shell 正则 匹配符和限定符】
9 1
|
1月前
|
Shell 应用服务中间件 开发工具
shell 学习(二) shell语法【特殊字符、转义字符、shell 字体颜色和字体背景】
shell 学习(二) shell语法【特殊字符、转义字符、shell 字体颜色和字体背景】
12 0
|
1月前
|
Shell
shell 学习(四)【if语法 for循环控制】
shell 学习(四)【if语法 for循环控制】
16 0
|
3月前
|
Unix Shell Linux
在Unix/Linux Shell中,管道(`|`)和重定向
在Unix/Linux Shell中,管道(`|`)和重定向
25 1
|
3月前
|
监控 Shell Linux
Linux如何系统的学习shell方法
Linux如何系统的学习shell方法
38 0