如何查看附加到 bash 別名的命令?

如何查看附加到 bash 別名的命令?

假設我在 bash shell 中有一個別名。是否有一個簡單的命令可以列印出別名將運行的命令?

答案1

內建type函數對此很有用。它不僅會告訴您有關別名的信息,還會告訴您函數、內建函數、關鍵字和外部命令。

$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep () 
{ 
    ps -ef | { 
        read -r;
        printf '%s\n' "$REPLY";
        grep --color=auto "$@"
    }
}

type -a cmd將按優先順序顯示該名稱的所有命令,這對於ls上面的別名很有用,其中別名本身調用ls.

$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls

這告訴您,當您執行 時ls,除了您自己新增的任何其他參數之外,/bin/ls還將使用 、 並將其包含在其參數清單中。--color=auto

答案2

alias只需在 Shell 提示字元下鍵入即可。它應該輸出所有目前活動別名的清單。

或者,您可以鍵入alias [command]以查看特定別名的別名,例如,如果您想找出別名ls的別名,您可以執行以下操作alias ls

答案3

我真的很喜歡Ctrl++ AltE因為我從中學到了這個答案。它“擴展”當前輸入的命令行,這意味著它執行別名擴展(除其他外)。

這意味著什麼?它將目前可能在命令列上編寫的任何別名轉換為別名所代表的內容。

例如,如果我輸入:

$ ls

然後按Ctrl++ AltE就變成了

$ ls --time-style=locale --color=auto

答案4

你可以使用which命令。

ls如果您為as設定別名ls -al然後輸入which ls,您將看到:

ls: aliased to ls -al

相關內容