Linuxで「このコマンドは本当に実行ファイルなの?」「エイリアスになっていない?」と思ったことはありませんか?
そんなときに便利なのがtypeコマンドです。
typeコマンドを使うと、指定したコマンドがビルトインコマンド・エイリアス・シェル関数・実行ファイルのどれなのかを確認できます。
特にaliasを設定したあとや、同じ名前のコマンドが複数存在する環境では非常に役立つコマンドです。
この記事では、typeコマンドの基本的な使い方から、whichコマンドとの違い、PATHとの関係、便利なオプションまで初心者向けに分かりやすく解説します。
typeコマンドとは
typeは、指定したコマンドの種類や実体を表示するシェル組み込みコマンドです。
コマンドがエイリアスなのか、シェル関数なのか、ビルトインコマンドなのか、実行ファイルなのかを判別できます。
typeコマンドの基本構文
type コマンド名
例えば、lsの種類を確認する場合は次のように実行します。
type ls
基本的な実行例
$ type ls
ls is aliased to `ls --color=auto`
この例では、lsはエイリアスとして登録されていることが分かります。
ビルトインコマンドを確認する
例えば、cdを確認すると次のように表示されます。
type cd
cd is a shell builtin
このように、外部コマンドではなくシェル組み込みコマンドであることが確認できます。
実行ファイルを確認する
type cp
実行例
cp is /usr/bin/cp
PATHから検索された実行ファイルの場所が表示されます。
複数のコマンドをまとめて確認する
type ls cd grep
複数指定すると、それぞれの種類をまとめて表示できます。
-aオプション
-aオプションを指定すると、PATH上で見つかったすべての候補を表示できます。
type -a python
複数のPythonがインストールされている環境では特に便利です。
whichコマンドとの違い
| コマンド | 確認できる内容 |
|---|---|
type |
エイリアス・関数・ビルトイン・実行ファイルを確認 |
which |
主に実行ファイルの場所を確認 |
コマンドの正体まで確認したい場合は、typeコマンドの方が適しています。
-tオプション
-tオプションを指定すると、コマンドの種類だけを簡潔に表示できます。
type -t cd
実行例
builtin
返される値には、alias、builtin、function、fileなどがあります。
-pオプション
-pオプションを指定すると、実行ファイルのパスだけを表示します。
type -p grep
実行例
/usr/bin/grep
エイリアスやビルトインではなく、実際の実行ファイルを確認したい場合に便利です。
エイリアスを確認する
aliasコマンドで登録したエイリアスも確認できます。
alias ll='ls -la'
type ll
実行例
ll is aliased to `ls -la`
どのコマンドへ置き換えられるのか一目で確認できます。
シェル関数を確認する
シェル関数もtypeコマンドで確認できます。
myfunc() {
echo "Hello"
}
type myfunc
実行例
myfunc is a function
関数が定義されていることを確認できます。
typeとcommandの違い
| コマンド | 役割 |
|---|---|
type |
コマンドの種類・実体を表示する |
command |
エイリアスを無視してコマンドを実行・確認する |
コマンドの正体を調べるならtype、エイリアスを回避して実行したい場合はcommandを利用します。
PATHとの関係
実行ファイルの場合、typeコマンドはPATH環境変数を参照して検索します。
echo $PATH
PATHの順番によって、実際に実行されるコマンドが変わることがあります。
複数バージョンのソフトウェアがインストールされている環境では、type -aで確認すると分かりやすくなります。
よくあるエラー・注意点
type: ○○: not found と表示される
指定したコマンドが見つからない可能性があります。
コマンド名のスペルやPATH設定を確認してください。
whichと結果が違う
正常な動作です。
whichは主に実行ファイルを対象としますが、typeはエイリアスやシェル関数、ビルトインコマンドも判別できます。
複数の実行ファイルがある
PATH上に複数存在する可能性があります。
すべて確認するには、type -aを利用しましょう。
type -a python
typeは外部コマンドですか?
いいえ。
typeはBashなどに組み込まれているシェル組み込みコマンド(ビルトインコマンド)です。
よくある質問
typeコマンドは何をするコマンドですか?
コマンドがエイリアス・シェル関数・ビルトイン・実行ファイルのどれなのかを確認するコマンドです。
whichとの違いは何ですか?
whichは主に実行ファイルの場所を表示します。
typeはコマンドの種類まで判別できます。
実行ファイルだけ確認できますか?
はい。
type -pを利用すると実行ファイルのパスだけ表示できます。
複数の候補を表示できますか?
はい。
type -aを利用すると、PATH上のすべての候補を表示できます。
typeはビルトインコマンドですか?
はい。
Bashなどのシェルに組み込まれているコマンドです。
まとめ
typeコマンドは、Linuxでコマンドの種類や実体を確認するための便利なシェル組み込みコマンドです。
特に次のコマンドは覚えておくと便利です。
| コマンド | 用途 |
|---|---|
type ls |
コマンドの種類を確認する |
type -a python |
すべての候補を表示する |
type -t cd |
種類だけ表示する |
type -p grep |
実行ファイルのパスだけ表示する |
type ll |
エイリアスを確認する |
Linuxでコマンドの動作に迷ったら、「typeで種類を確認 → type -aで候補を調査 → 必要に応じてPATHやaliasを確認」という流れを覚えておくと、トラブルシューティングや環境調査を効率良く行えるようになります。




コメント