①不帶參數時顯示當前shell的全部可用的別名,如:git
[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'
②自定義別名的方法,格式以下:shell
alias [-p] [name[=value] ... ]vim
-p:Print all defined aliases in a reusable formatbash
自定義一個命令別名:ssh
[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進程有效,若是想永久有效那麼須要定義在配置文件中,有兩種配置文件:spa
一、僅對當前用戶有效的: ~/.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
二、對全部用戶有效:/etc/bashrccode
修改方式和上面同樣orm
撤銷別名使用 unalias命令cdn
用法:
unalias: unalias [-a] name [name ...]
Options:
-a remove all alias definitions.
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
Ctrl+l:清屏操做,至關於clear命令
Ctrl+a:跳轉至命令首部(開始處)
Ctrl+e:跳轉至命令結尾處
Ctrl+c:取消命令執行
Ctrl+u:刪除命令行首至光標所在處的全部內容
Ctrl+k:刪除光標所在處至命令行尾部的全部內容