web-dev-qa-db-ja.com

bashエイリアスにアタッチされたコマンドを表示する方法は?

Bashシェルにエイリアスがあるとします。エイリアスが実行するコマンドを出力する簡単なコマンドはありますか?

319
Casebash

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が引数リストに含まれるほか、自分で追加したものも含まれることを示します。

425
geirha

シェルプロンプトでaliasと入力するだけです。現在アクティブなすべてのエイリアスのリストを出力する必要があります。

または、alias [command]と入力して特定のエイリアスのエイリアスを確認できます。たとえば、lsエイリアスのエイリアスを確認する場合は、alias lsを実行できます。 。

158
Thomas Ward

本当に好き Ctrl+Alt+E この答え から学んだように。これは、現在入力されているコマンドラインを「展開」します。つまり、(特に)エイリアス展開を実行します。

どういう意味ですか?コマンドラインで現在記述されている可能性のあるエイリアスを、エイリアスの意味に変換します。

たとえば、次のように入力した場合:

$ ls

を押します Ctrl+Alt+Eになります

$ ls --time-style=locale --color=auto
53
Der Hochstapler

厳密に言えば、正解はBASH_ALIASES配列を使用することです。例:

$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
10
noonex

whichコマンドを使用できます。

lsのエイリアスをls -alとして設定し、which lsと入力すると、次のように表示されます。

ls: aliased to ls -al

2
user312471