這裡介紹如何在 Linux 系統上繞過 bash 的 alias 設定,直接執行原始的系統指令。
在 Linux 的 bash shell 中通常都會有一些 alias 設定,這些設定可以讓我們在終端機中使用指令操作時更為方便,減少打字的時間。
我們可以使用
alias
指令查看目前的 alias 設定:
alias
alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto'
ls
的 alias 是系統上最常見的、而且也是最常用的,大部分的 Linux 系統就算自己沒有設定,也會有這個 alias,他的作用就是自動讓使用者執行 ls
的時候,加上顏色輸出的參數,讓終端機的文字更容易閱讀。
但是如果我們真的想要讓 ls
的輸出不要有顏色的話,這個 alias 設定就會是一個困擾了,以下介紹幾種可以繞過 alias 設定的方法。
反斜線
在指令之前加上一個反斜線,就可以繞過 alias 的設定,直接執行該指令,例如:
ls
這樣 ls
就會輸出就沒有顏色了:
引號
使用雙引號把指令包起來也可以繞過 alias 的設定:
"ls"
或是用單引號也可以:
'ls'
路徑
加上指令的路徑,也可以繞過 alias 的設定:
/bin/ls
若要查詢指令所在的路徑,可以使用 which
:
which ls
/bin/ls
所以我們也可以用 which
查出路徑之後,直接執行它:
`which ls`
以 command
呼叫
command
是 bash 內建的指令,可用來執行指定的指令,透過 command
來執行指令的話,亦可繞過 alias:
command ls
移除 alias
如覺得某些 alias 沒有太多的用處,當然也可以用 unalias
把它們移除。舉例來說,若要移除 ls
這個 alias 則執行:
unalias ls
若要移除所有的 alias 則加上 -a
參數:
unalias -a
以上使用 unalias
移除 alias 的指令,只會影響目前正在使用的 shell,永久的 alias 的設定通常都寫在 ~/.bashrc
或 ~/.bash_aliases
這類的設定檔中。
參考資料:nixCraft