typeコマンドは、指定されたコマンドのタイプを提供できる組み込みのbashシェルコマンドです。
「コマンドの種類」とはどういう意味ですか?これは、Linuxコマンドが組み込みのシェルコマンドであるかどうか、その実行可能ファイルがどこにあるか、他のコマンドにエイリアスされているかどうかなどの情報を取得できることを意味します。
あまり役に立たないように思えるかもしれませんが、コマンドが特定の方法で動作している理由を調査するときに役立つと思います。
Linuxでのtypeコマンドの使用
typeコマンドの構文は単純です:
type [options] name
開始するには、よく知られているechoコマンドのオプションを指定せずにtypeコマンドを使用しましょう。
[email protected]:~$ type echo
echo is a shell builtin
これは、echoがシェルの組み込みコマンドであることを示しています。これは、echoという名前がコマンドラインで解釈された場合に実行されるコマンドの種類です。
他のことを試してみましょう:
[email protected]:~$ type mkdir
mkdir is /usr/bin/mkdir
上記の場合、mkdirコマンドの実行可能ファイルを検索します。これはwhichコマンドに似ていますが、組み込みのシェルコマンドであるため、typeの方が高速です。
コマンドではないものと一緒に使用すると、notfoundエラーが発生します。
[email protected]:~$ type no_command
bash: type: no_command: not found
2。エイリアスコマンドのタイプ
Linuxのエイリアスについてはすでにご存知でしょう。すぐに思い出すと、これらはショートカットのように機能する疑似コマンドです。シェルプロファイルで設定できます。
エイリアスコマンドで使用すると、どのような種類の情報タイプのコマンドが検出されるかを見てみましょう。
[email protected]:~$ type ll
ll is aliased to `ls -alF'
ご覧のとおり、エイリアスされたコマンドの背後にある実際のコマンドが表示されます。
3。複数のコマンドの種類を取得する
複数のコマンドでtypeを使用して、結果をエコーバックすることもできます。
[email protected]:~$ type ls ll
ls is aliased to `ls --color=auto'
ll is aliased to `ls -alF'
Ubuntuやその他のディストリビューションでは、lsは、カラフルな出力を表示するためにエイリアス化されています。これは、シンボリックリンク、ハードリンク、ディレクトリ、実行可能ファイル、およびその他のさまざまな種類のファイルを区別するのに役立ちます。
4。タイプにコマンドのパスを返すように強制します
コマンドの実行可能ファイルを見つけて、組み込みのシェルやエイリアス情報などの出力を入力し続ける場合は、-Pオプションを使用してパスを強制的に取得できます。
[email protected]:~$ type -P ls
/usr/bin/ls
これにより、エイリアス、組み込み、または関数であっても、パス名が返されます。
5。コマンドのすべての情報を取得する
オプション-aを使用して最も完全な情報を取得できます。
[email protected]:~$ type -a ls
ls is aliased to `ls --color=auto'
ls is /usr/bin/ls
ls is /bin/ls
これにより、タイプ情報と、ファイルを含むシステムパス上のすべての場所の両方が表示されます。
6。パスではなく、コマンドのタイプのみを返します
入手できるさまざまなタイプは次のとおりです。
- エイリアス
- 構築
- ファイル
- 機能
- キーワード
-tオプションを指定したタイプのみの入力を求めることができます。次にいくつかの例を示します。
[email protected]:~$ type -t ls
alias
[email protected]:~$ type -t echo
builtin
[email protected]:~$ type -t sort
file
[email protected]:~$ type -t _mac_addresses
function
[email protected]:~$ type -t if
keyword
ボーナス:「コマンドがハッシュされている」と表示されるのはなぜですか?
コマンドのような出力が実行可能ファイルへのパスとともにハッシュされる場合があります:
[email protected]:~$ type man
man is hashed (/usr/bin/man)
実行可能ファイルのパスの検索に多くの時間を費やさないようにするために、シェルは過去に見つかったプログラムのリストを保持することがよくあります。このリストは「ハッシュ」と呼ばれます。
「commandishashed」のような出力が表示された場合は、typeコマンドがすでに実行された検索の結果を返していることを意味します。 hash -rを使用できます シェルを強制的に最初から検索します。
結論
Linuxでのtypeコマンドの導入により、今日、何か新しいことを学んだことを願っています。ファイルに関する情報を取得するために使用されるfileコマンドに似ていると思います。
このガイドが気に入ったら、ソーシャルメディアで共有してください。コメントや質問がある場合は、以下に残してください。取り上げてほしいトピックについての提案があれば、それらもお気軽に残してください。読んでくれてありがとう。