typeコマンドとは?Linuxでコマンドの種類や実体を確認する方法

Linux

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

返される値には、aliasbuiltinfunctionfileなどがあります。

-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を確認」という流れを覚えておくと、トラブルシューティングや環境調査を効率良く行えるようになります。

コメント

タイトルとURLをコピーしました