8.3-命令補全和alias別名

按 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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章