はじめに
こんにちは!今回はtypeコマンドについて解説します。
typeは、コマンドがどんな種類なのか(組み込みコマンドなのか、外部コマンドなのか、エイリアスなのか)を調べられるコマンドです。「このコマンド、何者?」って思った時に使います。
typeコマンドとは
typeは、指定したコマンドの種類や実体を表示するコマンドです。
例えば、cdは組み込みコマンドだけど、lsは外部コマンド。そういうのを一発で確認できます。デバッグやシステムの理解に超便利です。
基本構文
|
|
主なオプション
| オプション | 説明 |
|---|---|
-t |
コマンドの種類を1単語で表示 |
-p |
外部コマンドの場合、そのパスを表示 |
-a |
すべての実行可能な候補を表示 |
-P |
強制的にPATHから検索してパスを表示 |
使用例
例1: 組み込みコマンドを調べる
|
|
実行結果:
|
|
cdは組み込みコマンドだってわかります。
例2: 外部コマンドを調べる
|
|
実行結果:
|
|
lsは外部コマンドで、どこにあるかも表示されます。
例3: エイリアスを調べる
|
|
実行結果:
|
|
エイリアスの場合、何のエイリアスなのかも表示されます。
例4: 複数のコマンドを一度に調べる
|
|
実行結果:
|
|
複数指定すると、まとめて確認できます。
例5: -tオプションで種類だけ表示
|
|
実行結果:
|
|
builtin: 組み込みコマンドfile: 外部コマンド(ファイル)alias: エイリアス
シンプルに種類だけ知りたい時に便利です。
例6: -aオプションですべての候補を表示
|
|
実行結果:
|
|
echoは組み込みコマンドと外部コマンドの両方が存在することがわかります。
例7: -pオプションでパスだけ表示
|
|
実行結果:
|
|
外部コマンドの場合、そのパスだけを取得できます。組み込みコマンドの場合は何も表示されません。
例8: 存在しないコマンドを調べる
|
|
実行結果:
|
|
存在しないコマンドの場合、エラーメッセージが表示されます。
コマンドの種類
typeコマンドが識別できるコマンドの種類:
-
組み込みコマンド (builtin): シェルに組み込まれているコマンド
- 例:
cd,echo,pwd,export,alias
- 例:
-
外部コマンド (file): 独立した実行ファイル
- 例:
ls,grep,find,cat
- 例:
-
エイリアス (alias): 別名として定義されたコマンド
- 例:
ll='ls -la'
- 例:
-
関数 (function): シェルで定義された関数
- 例: 自分で定義した関数
-
キーワード (keyword): シェルの制御構文
- 例:
if,for,while
- 例:
Tips・注意点
-
組み込みコマンドと外部コマンドの違い: 組み込みコマンドの方が速い
1type echo # 組み込みコマンドが優先される -
実行されるコマンドを確認: エイリアスが設定されてると、思ってたのと違うコマンドが実行されることも
1 2alias ls='ls --color=auto' type ls # エイリアスになってることがわかる -
PATHの確認にも使える: 外部コマンドのパスを調べられる
1type -p python3 # /usr/bin/python3 -
シェルスクリプトで活用: コマンドの存在チェックに使える
1 2 3 4 5if type git > /dev/null 2>&1; then echo "Gitがインストールされています" else echo "Gitがインストールされていません" fi
実践的な使い方
コマンドが本当に存在するか確認
|
|
Docker使おうと思ったけど、そもそもインストールされてる?って時に確認できます。
エイリアスの内容を忘れた時
|
|
「あれ、llって何のエイリアスだっけ?」って時に便利。
同じ名前のコマンドが複数ある時
|
|
組み込みコマンドと外部コマンドで同じ名前のがある時、どっちが実行されるか確認できます。基本的には組み込みコマンドが優先されます。
スクリプトでコマンドの存在チェック
|
|
スクリプトの冒頭で必要なコマンドがあるか確認するのに使えます。
whichコマンドとの違い
|
|
whichよりtypeの方が情報が多いので、基本的にはtype使った方が便利です。
まとめ
今回はtypeコマンドについて解説しました。
ポイント:
typeでコマンドの種類や実体を確認できる- 組み込みコマンド、外部コマンド、エイリアスなどを識別可能
-tオプションで種類だけ簡潔に表示-aオプションですべての候補を表示- シェルスクリプトでコマンドの存在チェックに使える
「このコマンド、何?」って思った時はtypeコマンドを使ってみてください。思ってたのと違うものが実行されてた、なんてこともわかります。
次回もLinuxコマンドの学習を続けていきましょう!