一 、命令别名(alias)
别名的创建
①不带参数时显示当前shell的所有可用的别名,如:
[root@Centos6-1 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
②自定义别名的方法,格式如下:
alias [-p] [name[=value] ... ]
-p:Print all defined aliases in a reusable format
自定义一个命令别名:
[root@Centos6-1 ~]# alias cdnet='cd /etc/sysconfig/network-scripts' [root@Centos6-1 ~]# cdnet [root@Centos6-1 network-scripts]# pwd /etc/sysconfig/network-scripts [root@Centos6-1 network-scripts]#
注意:别名对命令的定义仅对当前shell进程有效,如果想永久有效那么需要定义在配置文件中,有两种配置文件:
1、仅对当前用户有效的: ~/.bashrc
[root@Centos6-1 ~]# vim ~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias cdnet='cd /etc/sysconfig/network-scripts' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
[root@Centos6-1 ~]# source .bashrc //想要立即生效需要重读配置文件或者重新ssh,另外 source还可以写成. 如:
[root@Centos6-1 ~]# . .bashrc
2、对所有用户有效:/etc/bashrc
修改方式和上面一样
别名的撤销
撤销别名使用 unalias命令
用法:
unalias: unalias [-a] name [name ...]
Options:
-a remove all alias definitions.
二、 glob
bash中用于实现文件名通配的机制,通过通配符实现,通配符有以下几种:
(1) * 表示任意长度任意字符
a*b 符合条件的文件名有:aab a123b ab abab....以a开头以b结尾的
(2)? 表示任意单个字符
a?b 符合条件的有:a1b abb acb....以a开头中间只能有一个字符以b结尾
a??b 符合条件的有:a11b a12b ....以a开头中间只能有两个字符以b结尾
(3)[] 匹配指定范围内的任意单个字符
a[0-9]b 符合条件的有:a1b,a2b,a3b.....
a[a-z]b 符合条件的有:aab,acb,adb....注意:这里不区分大小写
a[A-Z]b 仅匹配中间是大写的字符
(4)[^] 表示取反
a[^0-9]b 表示匹配数字以外的字符
a[^A-Z]b 表示匹配小写字母和数字
a[^0-9a-z] 表示只匹配特殊字符
专用字符集合表示法:
注意:下面出现的[]并非上面提到的[],如果要使用下面的专用字符集合还需要再加上一层[],如 [[:digit:]]
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,例如 ls a[[:lower:]]b
[:upper:]:任意大写字母
[:alpha:]:任意大小写字母
[:alnum:]:任意数字或字母
[:space:]:所有的空格
[:punct:]:标点符号
练习题:
(1)显示/var目录下所有以l开头,以一个小写字母结尾且中间出现至少一位数字的文件或目录
[root@Centos6-1 ~]# ls -d /var/l*[0-9]*[[:lower:]]
(2)显示/etc目录下以任意一位数字开头且以非数字结尾的文件或目录
[root@Centos6-1 ~]# ls /etc/[0-9]*[^0-9]
(3)显示/etc目录下以非字母开头,后面跟了一个字母及其他任意长度任意字符的文件或目录
[root@Centos6-1 ~]# ls /etc/[^[:alpha:]][[:alpha:]]*
(4)复制/etc目录下所有以m开头以非数字结尾的文件或目录至/tmp/magedu目录中
[root@Centos6-1 ~]# ls -d /etc/m*[^0-9] /etc/magic /etc/makedev.d /etc/mke2fs.conf /etc/modprobe.d /etc/motd /etc/mtab /etc/my.cnf
[root@Centos6-1 ~]# cp -a /etc/m*[^0-9] /tmp/magedu
(5)复制/etc目录下所有以.d结尾的文件或目录至/tmp/magedu.com目录中
[root@Centos6-1 ~]# ls -d /etc/*.d /etc/bash_completion.d /etc/depmod.d /etc/ld.so.conf.d /etc/modprobe.d /etc/profile.d /etc/rc2.d /etc/rc5.d /etc/rsyslog.d /etc/sudoers.d /etc/chkconfig.d /etc/dracut.conf.d /etc/logrotate.d /etc/pam.d /etc/rc0.d /etc/rc3.d /etc/rc6.d /etc/rwtab.d /etc/xinetd.d /etc/cron.d /etc/init.d /etc/makedev.d /etc/popt.d /etc/rc1.d /etc/rc4.d /etc/rc.d /etc/statetab.d /etc/yum.repos.d [root@Centos6-1 ~]# cp -a /etc/*.d /tmp/magedu.com
(6)复制/etc目录下所有以.conf结尾且以m,n,r,p开头的文件或目录至/tmp/magedu.com目录中
[root@Centos6-1 ~]# ls /etc/[mnrp]*.conf /etc/mke2fs.conf /etc/nsswitch.conf /etc/resolv.conf /etc/rsyslog.conf [root@Centos6-1 ~]# cp -a /etc/[mnrp]*.conf /tmp/magedu.com
三、bash快捷键
Ctrl+l:清屏操作,相当于clear命令
Ctrl+a:跳转至命令首部(开始处)
Ctrl+e:跳转至命令结尾处
Ctrl+c:取消命令执行
Ctrl+u:删除命令行首至光标所在处的所有内容
Ctrl+k:删除光标所在处至命令行尾部的所有内容