您的位置:首页 > 运维架构 > Shell

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

2013-05-27 16:14 447 查看
一、linux的文件类型:
类型 标识符 颜色
档案file: - 白色
目录directory: d 蓝色
字符设备character: c 黄色
块设备block: b 黄色
管道 pipe: | 黄色
链接设备linek: ln 蓝--绿
socket: s
二、别名设置和取消
ualias 撤销别名使用
ualias cmdalias
命令别名和命令本身的时候 \cmd
#设置进入网络编辑目录的别名
[root@lovelace 51cto]# alias cdnet='cd /etc/sysconfig/network-scripts/'
#使用别名
[root@lovelace 51cto]# cdnet
[root@lovelace network-scripts]#

[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]#
取消别名设置

#取消别名设置
[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输出通道.
#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

示例脚本(暂时未列出...):
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux file 管道 color 定向