這裡介紹如何在 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