bash基础特性(2):
1.命名别名(alias)
通过alias命令实现:
(1):alias
显示当前shell进程中所有可用的命令别名:
(2):aliasNAME=’VALUE’
定义别名NAME,期相当于执行命令VALUES。
注意:在命令行中定义的别名,仅对于当前shell进程有效,如果想要永久有效,要定义在配置文件中。
仅对当前用户有效:./bashrc
对所有用户有效:/etc/bashrc
bash进程重新读取配置文件:
source/path/to/config_file,如source /etc/bashrc
. / path/to/config_file
撤销别名 unalias
unalias [-a] name [name…]
如果别名同原命令名称,则如果要执行原命令,可使用“\command”
3. glob(globbing):
bash中用于实现文件名“通配”
通配符:*,?,[ ]
(1):*
任意长度的任意字符
a*b:aab,ab,a123b
(2):?
任意单个字符
a?b:
aab
(3):[]
匹配任意指定范围内的任意单个字符
[0-9]:数字中的一个
[a-z]:a-z中的一个,不区分大小写
[A-Z]:大写字母
(4):[^]:匹配指定范围外的任意单个字符
专用字符集合:
[:digit:]:任意数字,相当于[0-9]
[:lower:]:相当于小写字母
[:upper:]:任意大写字母
[:alpha:]:任意大小写字母
[:alnum:]:任意数字或字母
[:space:]:空格
[:punct:]:标点符号
练习:
1. 显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少出现一位数字的文件或者目录。
#ls -d/var/l*[0-9]*[[:lower:]]
2. 显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录。
#ls /etc/[0-9]*[^0-9]
3 显示/etc目录下,以非字母开头,后面跟了一个字母及其他任意字符的文件或目录
#ls/etc/[^[:appha:]][[:alpha:]]
4 复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/magedu目录中。
#cp –a /etc/m*[^0-9] /tmp/magedu
5 复制/etc目录下,所有以.的结尾的文件或目录至/tmp/magedu.com目录中。
#cp–a /etc/*.d /tmp/magedu.com
6 复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/magedu.com目录中。
#cp –a/etc/[mnrp]*.conf /tmp/magedu.com
3.bash的快捷键:
ctrl+l:清屏,相当于clear命令。
ctrl+a:跳转至命令开始处。
ctrl+e:跳转至命令结尾处。
ctrl+c:取消命令执行。
ctrl+u:删除u命令行首至光标所在处的所有内容。
ctrl+k:删除光标所在处至命令行尾部的所有内容。
ctrl+d:退出。
3.bash的I/O重定向及管道
程序:指令+数据
读入数据
输出数据