多くの Linux ユーザーは次のような基本コマンドを知っています。 ls و cd و mkdirしかし、プロフェッショナルが他と異なるのは、時間を節約し、効率を高める、あまり一般的ではない一連のコマンドに関する知識です。

これらのコマンドを使用すると、システムをより細かく制御でき、複雑なタスクを 1 行で実行できるようになります。
大きなファイルの処理からデータの分析、プロセスの管理まで、これらのコマンドを習得すると、Linux の新しい使い方が開かれ、日々の作業がより生産的になります。
この記事では、実際の業務環境で実証されている実用的なコマンドを学習します。これらのコマンドの使い方を理解することで、システムをマスターするための一歩を踏み出すことができます。
Linuxコマンドには、サポートされているオプションの長いリストが含まれることが多く、その多くは1文字の言語略語です。これらのオプションを学習して覚えるのは難しい場合がありますが、その最大の特徴は再利用性です。つまり、共通のオプションは複数のコマンド間で共有されます。
以下のオプションは最も一般的で、多くのコマンドで広く利用可能です。これらのオプションを習得すれば、様々なプログラムの使い方をしっかりと理解し、一貫した結果を得ることができます。
重要な情報については、–help と –version を参照してください。
ほぼすべてのコマンド(最新コマンドも旧コマンドも含む)でサポートされているフラグの一つに、短い非対話型ヘルプテキストを表示する -help (多くの場合 -h または -?)があります。これは、コマンドの使い方を簡潔に説明する行と、オプションの詳細(その機能と動作)が含まれるため、一般的に「使用方法」と呼ばれます。
上記の ls コマンドからの出力など、一部のヘルプ出力は、コマンドのマニュアル ページとほぼ同じくらい包括的なものになります。
–help コマンドは、Ubuntu やその他の最近の Linux システムで広くサポートされています。bat、rg (ripgrep)、ncdu などの最近のツールは、長い -h コマンドと短い -h コマンドの両方をサポートしています。ほとんどの GNU ツールも –help コマンドをサポートしていますが、ls や cd などのコマンドは -h コマンドをサポートしていません。
警告
lsコマンドはヘルプを表示するために-hコマンドを使用するのではなく、--human-readableのショートカットとして機能します。これにより、ファイルサイズは「1024」ではなく「1K」のように表示されます。
–version (-V) オプションは –help と連携して動作し、プログラムに関する情報を確認するのに役立ちます。通常、–help が指定されている場合にのみサポートされます。–version オプションは通常、実行中のプログラムのバージョンを表示します。例:
これにより、必要なバージョンが実行されていることを確認でき、トラブルシューティングに役立ちます。–version の唯一の問題は、ツールによって結果が異なることです。ncdu、top、jq などの多くのプログラムは、解析可能な形式で1行を出力します。
一方、find、mkdir、sedなどのGNUプログラムは、ライセンス情報や詳細情報、そしてプログラムのバージョンを複数行にわたって出力します。ログは多くの場合Vimに戻り、特定の機能がリストされ、そのバージョンに含まれているかどうかが示されます。その過程で、次のような大量の出力が生成されます。
警告
–help と –version は、特に古いコマンドやシェルに組み込まれているコマンドでは、必ずしもサポートされません。一部のコマンドは –help をサポートしますが、-h はサポートしません。ただし、macOS では多くの基本コマンドがどちらもサポートしていないため、このような場合は man を使用するのが最善の選択です。
–all ですべての結果を表示
コマンドがファイルを扱う場合、--all (-a) オプションが利用できることが多いですが、デフォルトでは一部のファイルを無視します。最も一般的な例は ls -all で、これは通常のファイルに加えて隠しファイルも表示します。du コマンドはデフォルトでディレクトリを報告しますが、--all は通常のファイルについてもディレクトリを表示します。
which プログラムも -a オプションをサポートしていますが、意味が若干異なります。デフォルトでは、このコマンドは PATH 変数に現れる指定コマンドの最初のパスを報告します。
ただし、-a オプションを使用すると、一致するすべてのプログラムが報告されます。
一部のコマンドでは、この概念をさらに発展させ、補完的なオプションを提供しています。例えば、lsコマンドは--almost-all (-A) オプションもサポートしており、特別なエントリを除くすべての隠しファイルを表示します。
–破壊的な行動を認可する力
破壊的なアクションを実行するコマンドの多くは、特定の状況では慎重に動作します。例えば、書き込み保護されたファイルをrmコマンドで削除する場合、コマンドは確認を求めます。
ただし、–force (-f) オプションを使用して強制的に削除することができます。
これで、コマンドは確認を求めず、ファイルが書き込み保護されていることを示すメッセージも表示せず、自動的にファイルを削除します。cpやmvなど、既存のファイルを上書きする可能性のある他のファイル関連コマンドは、--force (-f) オプションをサポートしており、同じ結果になります。
force コマンドは実際には「このアクションを実行するためにできる限りのことを行う」という意味ではなく、「普段よりも慎重に行う」という意味であることに注意することが重要です。例えば、cp -f コマンドは、cp コマンドが既存のファイルに対して実行した可能性のあるチェックをすべて上書きしますが、読み取り不可能なファイルをコピーすることはありません。
–recursive でサブフォルダまで移動
再帰は興味深いトピックですが、理解するのが難しい場合もあります。しかし、Linuxコマンドの文脈ではもう少し単純で、通常はコマンドがディレクトリまでスクロールダウンするかどうかを指します。例えば、デフォルトではlsコマンドはディレクトリ内のファイルを一覧表示しますが、サブディレクトリは表示しません。
–recursive (-R) オプションを使用すると、ls コマンドは遭遇したサブディレクトリの内容も表示します。
多数のファイルに適用することで潜在的に有用なプログラムは、多くの場合 –recursive オプションをサポートしています。rm コマンドは rm -rf という一般的な形式を使用しますが、これは非常に危険です。すべてのファイル(ディレクトリを含む)を再帰的に強制的に削除してしまうからです。grep –recursive オプションは、任意のファイルグループに対してテキスト検索を実行できるため、非常に便利です。このコマンドは、ショートカットとして -r および -R オプションもサポートしています。
この設定は「すべてかゼロか」であることにご注意ください。例えば、-R を指定すると、ls コマンドはサブディレクトリを探索し、それ以上何も見つからないまで探索を続けます。つまり、最終的なリストは非再帰的なリストよりもはるかに長くなる可能性があります。一部のコマンドではこの再帰の深さを制限する方法が用意されていますが、rm、grep、ls では通常そのような機能は備えていません。
助言
ファイルを繰り返し操作する際に、この再帰の深さを制限する最適な方法は、findコマンドを使用することです。findコマンドはデフォルトで再帰的であり、--maxdepthオプションをサポートしています。このオプションを使用すると、ディレクトリの走査を一定数の階層に制限できます。
–output 代替ファイル名を指定する
一部のコマンドは、標準出力に書き込む代わりにファイルを作成します。これらのコマンドは通常、指定されたファイル名を変更する必要があることを認識するため、ファイル名を指定できる--output (-o) オプションをサポートしています。この典型的な例としては、gcc(C言語用)などのアセンブラが挙げられます。
gcc -o myprog program.c
このコマンドはソースコードをprogram.cファイルにコンパイルし、myprogという名前の実行可能バイナリファイルを作成します。デフォルトでは、gccコンパイラは出力ファイルにa.outという名前を付けます。これは簡単なプログラムやローカル開発には便利ですが、より複雑なプログラムの場合は、別の名前を指定するのが自然です。
警告
ファイル システムのスペース使用量を報告する df コマンドは、出力形式を変更するという別の目的で –output コマンドを使用します。
–quiet は出力を少なくし、–verbose は出力を多くします
多くのプログラムは、様々な形式で出力を生成できます。これを簡単に実現する方法の一つは、出力音量を制御することです。--quiet (-q) および --verbose (-v) オプションはまさにこれを実現し、スクリプト作成やデバッグに非常に役立ちます。
grep は –quiet コマンド(およびその同義語である –silent コマンド)を使用してすべての出力を抑制します。この場合、grep は終了ステータスまでの正規表現の一致チェックのみを実行します。–quiet をサポートする他のツールには、sed、diff、パッケージマネージャーの brew などがあります。
--verbose オプションはアセンブラでよく使用されます。gcc は --verbose を指定して実行すると、多くの診断情報を生成します。
curl コマンドは通常、URL から応答データを抽出しますが、--verbose オプションを使用すると接続の詳細と、応答ヘッダーと要求ヘッダーの両方が追加され、トランザクションをより簡単に確認できるようになります。
警告
-v オプションは、--verbose ではなく -version のショートカットとしてよく使用されるため、コマンドがサポートするものを確認してください。
-ignore-case は小文字と大文字を同じように扱います
grepやdiffなど、パターンマッチングを含むプログラムには、小文字と大文字の扱いに関するデフォルトのポリシーがあります。これは通常、大文字と小文字の区別が非常に重要であるため、「exit_status」と「EXIT_STATUS」が2つの異なる単語として扱われるためです。
大文字と小文字を区別しない場合は、 --ignore-case オプションを使用します。
--ignore-case オプションをサポートする他の一般的なコマンドには、sort、uniq、locate などがあります。多くの find オプションには、-iname や -ipath など、大文字と小文字を区別しないバージョンがあります。
Linux を専門的に使用するには、何百ものコマンドを暗記することではなく、作業をより簡単にし、完了を早める強力なツールを理解することが必要です。
今日学習したコマンドは、単にターミナルに入力するテキストではなく、システムを完全に制御するためのキーです。
徐々に実験を開始し、Linux とのやり取りが日常的な使用から柔軟で高速なプロフェッショナルな体験に変化する様子に気付いてください。
時間と練習を重ねるごとに、新しいコマンドが真の習熟に向けたさらなるステップであることが分かるでしょう。















