typeコマンドはbashの組み込みコマンドで、コマンドの解釈を確認できるコマンドになります。typeコマンドで確認できるコマンドの種類には、alias、function、builtin、file、keywordがあります。
目次
typeコマンドの利用例
コマンドの解釈を確認
typeコマンドの引数にコマンドの名前を入力することで、コマンドがどのように解釈されるかを確認できます。
コマンドの種類にはalias(別名)、function(関数)、builtin(組み込みコマンド)、file(実行ファイル)、keyword(シェルの予約語)があります。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$type ls ls is aliased to `ls --color=auto' $type testfunc testfunc is a function testfunc () { echo 'test' } $type help help is a shell builtin $type git git is /usr/bin/git $type while while is a shell keyword |
コマンドの種類のみを表示
(-tオプション)
-tオプションを用いると単純にコマンドの種類のみを表示します。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 |
$type -t ls alias $type -t testfunc function $type -t help builtin $type -t git file $type -t while keyword |
コマンドがファイルの場合にファイルパスを表示
(-pオプション)
-pオプションを用いたとき、コマンドの種類が'file'の場合はファイルパスを表示します。
コマンドの種類がfile以外の場合は何も表示しません。
コマンド例と実行結果
1 2 3 4 5 |
$type -p git /usr/bin/git $ $type -p ls $ |
コマンドに別名が設定されている場合は、-pオプションでは何も表示されません。その場合は-Pオプションを用いるとコマンドの種類が'file'でなくても、環境変数PATHからファイルパスの検索を行って表示します。
同様に、コマンドのファイルパスを確認するコマンドとして、whichコマンドがあります。whichコマンドも環境変数のPATHからファイルパスを検索して表示しますが、ファイルに実行権限がない場合はそのファイルを表示しません。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 |
$type -P ls /usr/local/bin/ls $which ls /usr/local/bin/ls $ $sudo chmod a-x /usr/local/bin/ls $type -P ls /usr/local/bin/ls $which ls /bin/ls |
コマンドがファイル以外でもPATHを検索してファイルパスを表示
(-Pオプション)
-Pオプションを用いると、-pオプションとは違い、コマンドの種類が'file'以外の場合でもファイルパスを表示します。
ファイルパスは環境変数PATHにあるファイルから検索されて表示されます。aliasコマンドでコマンドの名前自身に別名を設定している場合に利用できます。
コマンド例と実行結果
1 2 3 4 |
$type ls ls is aliased to `ls --color=auto' $type -P ls /usr/local/bin/ls |
コマンドのすべての解釈を表示
(-aオプション)
-aオプションを用いるとコマンドのすべての解釈を表示します。
コマンド例と実行結果
1 2 3 4 |
$type -a ls ls is aliased to `ls --color=auto' ls is /usr/local/bin/ls ls is /bin/ls |
また、-pオプションまたは-Pオプションを指定した場合は、すべてのファイルパスを表示します。
コマンド例と実行結果
1 2 3 4 5 6 7 |
$type -a -p ls /usr/local/bin/ls /bin/ls $ $type -a -P ls /usr/local/bin/ls /bin/ls |
関数として解釈の結果は除く
(-fオプション)
-fオプションを用いると、関数からの検索を行いません。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$type -a echo echo is a function echo () { echo 'echo' } echo is a shell builtin echo is /usr/local/bin/echo echo is /bin/echo $ $type -a -f echo echo is a shell builtin echo is /usr/local/bin/echo echo is /bin/echo |