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,如需转载请自行联系原作者

相关文章
|
1月前
|
Unix Shell Linux
Shell 输入/输出重定向
10月更文挑战第4天
21 8
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
62 12
|
4月前
|
Shell Linux
Shell 脚本编程学习
Shell 脚本编程学习
36 0
|
5月前
|
机器学习/深度学习 存储 Shell
shell 中匹配正则 字符串处理【整理版】
shell 中匹配正则 字符串处理【整理版】
102 4
|
5月前
|
机器学习/深度学习 存储 Shell
shell 中匹配正则 字符串处理
shell 中匹配正则 字符串处理
220 1
|
5月前
|
人工智能 运维 中间件
Linux-shell简单学习
Linux-shell简单学习
30 0
|
5月前
|
Unix Shell Linux
Shell 重定向:控制数据流向的艺术
在Unix/Linux中,Shell提供输入输出重定向来灵活控制数据流。了解和运用重定向能提升Shell效率。标准输入(0)、输出(1)和错误输出(2)是基础。`&gt;`用于覆盖输出,`&gt;&gt;`用于追加,而`&lt;`用于改变输入源。错误输出可单独重定向,如`2&gt;`或`2&gt;&gt;`。组合使用如`2&gt;&1`可合并输出和错误到同一文件。输入重定向示例:`cat &lt;&lt;END`读取直到`END`。掌握这些,可高效管理命令输出。
48 0
|
6月前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结
|
6月前
|
机器学习/深度学习 Shell Linux
shell 学习记录
shell 学习记录
31 0
|
6月前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结