Linux 學習之Shell 基礎——Bash基本功能——別名與快捷鍵
1、命令別名
[[email protected] ~]# alias 別名='原命令’
#設定命令別名
[[email protected] ~]# alias
# 查詢命令別名
詳細介紹:
1)別名就是給系統中的某個命令起個新名稱,方便使用者根據自己的習慣進行輸入
2)但使用別名需要注意以下問題:
命令的執行順序:
a、第一順位執行用絕對路徑或相對路徑執行的命令;
b、第二順位執行別名;
c、第三順位執行Bash的內部命令;
d、第四順位執行按照$PATH環境變數定義的目錄查詢順序找到的第一個命令。
什麼意思呢?
示例:
1)先查詢當前系統中定義了哪些別名呢?
[[email protected] ~]# 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'
[[email protected] ~]#
也就是說,我當前在執行cp命令時,實際執行的是“cp -i "命令,cp就是原命令“cp -i”的別名
--color 就是執行時,結果相應的顏色顯示,auto表示和系統預設一直
2)如何自行定義一個命令的別名呢?
》臨時生效的方式(重啟失效)
alias rm='rm -i'
》讓別名永久生效
[[email protected] ~]# vi /root/.bashrc
在該檔案中進行配置(具體格式可仿照原檔案格式)
[[email protected] ~]# vi /root/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi ~ ~
3)如何理解命令的執行順序呢?
我們先用whereis 命令查詢下cp 所在的絕對路徑
然後根據cp所在的絕對路徑進行呼叫,該呼叫會呼叫實際命令為“cp” 這個命令;
如果當前直接呼叫(執行)cp命令,則系統執行時,cp會被當做別名優先執行於原命令“cp”的方式而呼叫“cp -i ”;
或者如下理解:
如果隨意輸入字串,系統優先判斷是否是某命令的絕對路徑,如果不是,再判斷是否是某個命令的別名,如果不是,再判斷是否是Bash中定義的某個命令,如果還不是,會從環境變數配置檔案中確認是否是此處定義的某個命令,如果還不是,則提示錯誤,表示命令找不到。
4)注意Bash內部命令是看不到檔案的。
5)一般不建議隨意設定別名,除非你能保證系統中沒有以欲定義的別名為名稱的命令,
否則根據命令執行順序,該別名直接使用時會把原命令的功能給覆蓋。
6)#刪除別名
[[email protected] ~]# unalias 別名
2、Bash常用快捷鍵
快捷鍵 | 作用 |
Ctrl +A | 把游標移動到命令列開頭。如果我們輸入的命令過長,想要把游標移動到命令列開頭時使用 |
Ctrl +E | 把游標移動到命令列結尾 |
Ctrl +C | 強制終止當前的命令 |
Ctrl +L | 清屏,相當於clear命令 |
Ctrl +U | 刪除或剪下游標之前的命令。我輸入了一行很長的命令,不用使用退格鍵一個一個字元的刪除,使用這個快捷鍵更加方便 |
Ctrl +K | 刪除或 剪下游標之後的內容 |
Ctrl +Y | 貼上Ctrl+U 或ctrl +K 剪下的內容 |
Ctrl +R | 在歷史命令中搜索,按下Ctrl+R會出現搜尋介面,只要輸入搜尋內容,就會從歷史命令中搜索出來 |
Ctrl +D | 退出當前終端 |
Ctrl +Z | 暫停,並放入後臺。這個快捷鍵牽扯工作管理的內容,我們在系統管理章節詳細介紹 |
Ctrl +S | 暫停螢幕輸出(注意建議少使用該命令,因為命令並沒有被殺死,多了會減慢系統執行) |
Ctrl +Q | 恢復螢幕輸出 |
快捷鍵規律:
都是某個字母鍵和Ctrl的組合