これら 7 つの Linux コマンド ライン オプションを覚えれば、あなたもプロになれます

in tech

Linux コマンドには、サポートするオプションの長いリストが含まれることが多く、その多くは 1 文字のニーモニックです。これらは学習して覚えるのが難しい場合がありますが、共通のオプションがさまざまなコマンドで共有されるという再利用性が利点です。

次のオプションは最も一般的で、複数のコマンドで広く使用できます。これらを学ぶと、さまざまなプログラムの使用方法をしっかりと理解し、一貫した結果が得られるようになります。

重要な情報の –help および –version

最新のコマンドも古いコマンドも同様に、ほぼすべてのコマンドがサポートするフラグの 1 つは、非対話型のヘルプ テキストの短い部分を表示する –help (-h または -? が使用できることが多い) です。これは通常「使用法」と呼ばれます。これは、コマンドの使用方法を示す概要行に加えて、そのオプションの詳細 (機能とその動作方法) が含まれるためです。

--help オプションを指定して実行すると、ls コマンドは使用方法の概要情報とサポートされているオプションの詳細を表示します。

上記の ls のような一部のヘルプ出力は、コマンドのマニュアル ページとほぼ同じくらい包括的です。

–help は、Ubuntu およびその他の最新の Linux システムで非常によくサポートされています。 Bat、rg (ripgrep)、ncd​​u などの最新のツールは、長い形式と短い形式の -h の両方をサポートしています。ほとんどの GNU ツールは –help もサポートしていますが、ls や cd などのコマンドは -h をサポートしていません。

ls は -h をヘルプに使用するのではなく、–human-readable の省略形として使用します。これにより、ファイル サイズが「1024」ではなく「1K」のように表示されます。

–version (-V) オプションは、プログラムについて調べるのに役立ち、通常は –help がある場所でサポートされるため、–help と連携して使用できます。従来、 –version オプションは、実行対象のプログラムのバージョンを出力します。例えば:

Linux man コマンドは --version および -V オプションを指定して実行され、それぞれのオプションでバージョンが出力されます。 "男2.12.0"

これにより、意図したバージョンを実行していることを確認でき、トラブルシューティングに役立ちます。 –version の唯一の問題は、ツールごとに出力がどの程度異なるかということです。 ncdu、top、jq などの多くのプログラムは、解析可能な形式で 1 ​​行を出力します。

いくつかの Linux コマンドは --version オプションを使用して実行され、それぞれのプログラム名とバージョン番号が表示されます。

一方、find、mkdir、sed などの GNU プログラムでは、出力の数行にわたって詳細なライセンスとクレジットがソフトウェア バージョンとともに表示されます。記録はおそらく Vim に送られ、特定の機能がリストされ、それらが特定のバージョンに含まれているかどうかが示され、プロセスで大量の出力が生成されます。

--version オプションを指定して実行した vi コマンドからの非常に詳細な出力には、パッチの詳細とさまざまな機能の組み込みステータスが含まれています。

–help と –version は、コマンド、特に古いコマンドやシェル組み込みのコマンドで常にサポートされているわけではありません。一部のコマンドは –help をサポートしますが、-h はサポートしません。ただし、macOS では、多くのコア コマンドがどちらもサポートしていません。このような場合、男性が最良の代替手段です。

–all すべての結果を表示します

–all (-a) オプションは、コマンドがファイルを操作する場合に使用できることが多いですが、デフォルトでは一部のファイルが無視されます。最も一般的な例はおそらく ls –all で、通常のファイルに加えて隠しファイルも表示されます。 du コマンドはデフォルトでディレクトリについてレポートしますが、–all を指定すると通常のファイルについてもレポートします。

what プログラムは、少し異なる意味を持つ -a オプションもサポートしています。デフォルトでは、このコマンドは、PATH 変数内で発生する特定のコマンドの最初のパスを報告します。

オプションを指定しない where コマンドは単一のパスを出力します。

ただし、-a オプションを使用すると、一致するすべてのプログラムが報告されます。

-a オプションを指定した where コマンドは、2 つの異なるパスを出力します。

一部のコマンドは、補完的なオプションを使用して、この概念をさらに一歩進めています。たとえば、 ls は、特殊なファイルを除くすべての隠しファイルを表示する –almost-all (-A) オプションもサポートしています。と .. エントリ。

–破壊的な行為を強制的に許可する

潜在的に破壊的なアクションを実行するコマンドの多くは、特定の状況では注意を払います。たとえば、rm を使用して書き込み保護されたファイルを削除すると、コマンドによって確認を求めるプロンプトが表示されます。

書き込み保護されたファイルを削除しようとすると、rm コマンドは確認プロンプトを表示します。

ただし、–force (-f) オプションを使用して強制的に削除できます。

--force オプションを使用すると、rm コマンドはフィードバックやエラーなしで書き込み保護されたファイルを削除します。

現在、コマンドは確認を求めるプロンプトを表示せず、ファイルが書き込み保護されていることを示すことさえありません。黙って削除するだけです。 cp や mv など、既存のファイルを上書きする可能性がある他のファイル関連コマンドは、同じ動作を提供する –force (-f) オプションをサポートしています。

強制とは実際には「この行動を実行するためにあらゆることを行う」という意味ではないことに注意することが重要です。それは、「普段より少し注意を緩める」ようなものです。たとえば、 cp -f は cp が既存のファイルに対して行うチェックを無効にしますが、読み取り不可能なファイルはまったくコピーしません。

–recursive でサブディレクトリに降りる

再帰は魅力的なテーマですが、理解するのが非常に難しいテーマでもあります。しかし、Linux コマンドのコンテキストでは、これはもう少し単純で、通常はコマンドがディレクトリに降下するかどうかを指します。たとえば、デフォルトでは、ls はディレクトリ内のファイルをリストしますが、サブディレクトリはリストしません。

ls コマンドは、現在のディレクトリ内のファイルのリストを表示します。

–recursive (-R) オプションを使用すると、ls は検出したサブディレクトリの内容も表示します。

-R オプションを使用した ls コマンドは、サブディレクトリを再帰的に実行し、現在の階層内のすべてのファイルを一覧表示します。

多くのファイルに適用すると便利なプログラムは、多くの場合 –recursive オプションをサポートします。 rm コマンドの一般的に認識されている形式は rm -rf ですが、これは非常に危険です。すべてのファイル (ディレクトリを含む) を再帰的に強制的に削除します。 grep の –recursive オプションは、任意のファイル セットに対してテキスト検索を実行できるため、非常に便利です。このコマンドは、同等の短縮表現として -r と -R の両方もサポートしています。

この設定は「全か無か」であることに注意することが重要です。たとえば、-R を指定すると、ls はサブディレクトリが見つからなくなるまで下降を続けます。これは、最終的なリストが非再帰リストよりもはるかに長くなる可能性があることを意味します。一部のコマンドは、この再帰の深さを制限する方法を提供する場合がありますが、rm、grep、および ls には通常はありません。

ファイルを再帰的に操作するときに深さを制限する最良の方法は、find コマンドを使用することです。 find はデフォルトで再帰的であり、下降を固定数のディレクトリ レベルに制限する –max Depth オプションをサポートしています。

–output で代替ファイル名を指定します

一部の種類のコマンドは、標準出力に書き込むのではなく、ファイルを生成します。これらのコマンドは通常、選択したファイル名を変更する必要があることを認識するため、ファイル名を指定できる –output (-o) オプションをサポートしています。典型的な例は、gcc (C 言語用) のようなコンパイラーです。

gcc -o myprog program.c

このコマンドは、program.c 内のソース コードをコンパイルし、myprog という名前の実行可能バイナリを生成します。デフォルトでは、gcc コンパイラは出力ファイルに a.out という名前を付けます。これは、迅速なプログラムやローカル開発では問題ありませんが、より複雑なプログラムの場合は、代替を指定するのが通常です。

出力が少ない場合は –quiet、出力が多い場合は –verbose

多くのプログラムは、さまざまな方法でフォーマットできる出力を生成します。そのための簡単な方法の 1 つは、出力量を制御することです。 –quiet (-q) および –verbose (-v) オプションはまさにこれを行うもので、スクリプト作成やデバッグに非常に役立ちます。

grep は –quiet (および同義語 –silent) を使用してすべての出力を抑制します。この場合、終了ステータスを介して正規表現の一致に対する Yes/No チェックとして純粋に機能します。 –quiet をサポートする他のツールには、sed、diff、およびパッケージ マネージャーの brew などがあります。

–verbose オプションはコンパイラによってよく使用されます。 gcc を –verbose で実行すると、多くの診断情報が生成されます。

gcc プログラムからの詳細な出力には、環境に関する多くの診断が含まれています。

通常、curl は URL から応答データを出力しますが、 –verbose オプションは接続の詳細と、応答と要求の両方のヘッダーを追加して、トランザクションを下位レベルで確認できるようにします。

-v は、–verbose の代わりに –version の短縮形としてよく使用されるため、コマンドがどのコマンドをサポートしているかを必ず確認してください。

–ignore-case をハンドラーの小文字と大文字に同じにする

grep や diff などのパターン マッチングを伴うプログラムには、小文字と大文字の処理方法に関するデフォルト ポリシーがあります。これは通常、大文字と小文字を重要視するためで、「exit_status」と「EXIT_STATUS」は 2 つの異なる単語として扱われます。

2 つのソース コード ファイルに対して diff コマンドを実行すると、同じテキストが含まれる 2 行間の相違点が大文字と小文字の違いで表示されます。

大文字と小文字を気にしない場合は、 –ignore-case オプションを使用してください。

--ignore-case オプションを使用して 2 つのソース コード ファイルに対して diff コマンドを実行すると、出力が表示されません。

–ignore-case オプションをサポートするその他の一般的なコマンドには、sort、uniq、locate などがあります。 find プログラムの多くのオプションには、-iname や -ipath など、大文字と小文字を区別しないバージョンがあります。

このテーマについてさらに詳しく知りたい方は以下をご覧ください

公式情報はこちら

関連記事

前の投稿
Bose の新しい Dolby Atmos サウンドバーが 10 月のプライムデー直前セールで 255 ドルオフ
次の投稿
Bose SoundLink Max Bluetooth Speaker は、10 月のプライムデー直前セールでまだ 30% オフです

関連記事