按 tab 鍵可以幫我們補全一個命令、一個路徑或者一個文件名。連續按兩次 tab 鍵,系統則會把所有的命令或者文件名都列出來
命令補全
輸入ls後按兩下 tab,會把 ls 開頭的都列出來
[root@evan-01 ~]# ls
ls lsattr lsblk lscpu lsinitrd lsipc lslocks lslogins lsmod lsns lspci lsscsi
[root@evan-01 ~]# ls
輸入lsn後按一下 tab,會把 lsns 補全
[root@evan-01 ~]# ls
ls lsattr lsblk lscpu lsinitrd lsipc lslocks lslogins lsmod lsns lspci lsscsi
[root@evan-01 ~]# lsn
[root@evan-01 ~]# ls
ls lsattr lsblk lscpu lsinitrd lsipc lslocks lslogins lsmod lsns lspci lsscsi
[root@evan-01 ~]# lsns
參數補全
之前我們接觸過,輸入 systemctl … 這些的時候,按 tab 並不能自動補全,想要這個功能的話,需要安裝 bash-completion
沒安裝之前按tab鍵就沒用
[root@evan-01 ~]# systemctl restart net
安裝bash-completion
[root@evan-01 ~]# yum install -y bash-completion
重啓下設備
[root@evan-01 ~]# init 6
再試下,輸入 systemctl re 按兩下 tab
[root@evan-01 ~]# systemctl re
reboot reload reload-or-try-restart reset-failed
reenable reload-or-restart rescue restart
[root@evan-01 ~]#
按一下 tab,可以自動補全
[root@evan-01 ~]# systemctl rest
[root@evan-01 ~]# systemctl restart
alias別名
前面用過 alias,它是 bash 所特有的功能之一。我們可以通過 alias 把一個常用的並且很長的命令另取一個簡單易記的命令。如果不想用了,還可以使用 unalias 命令解除別名功能。直接執行 alias 命令,會看到目前系統預設的別名
查看 alias
[root@evan-01 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
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'
[root@evan-01 ~]#
設置 alias
[root@evan-01 ~]# alias restartnet='systemctl restart network.service'
[root@evan-01 ~]# restartnet
[root@evan-01 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias restartnet='systemctl restart network.service'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@evan-01 ~]#
取消 alias
[root@evan-01 ~]# unalias restartnet
[root@evan-01 ~]# restartnet
-bash: restartnet: command not found
[root@evan-01 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
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'
[root@evan-01 ~]#
alias 都是在這些腳本里定義的
[root@evan-01 ~]# vi .bashrc