こんにちは、フルスタックエンジニアのryuです。
今回の記事では、Linuxコマンドのオプションの覚え方を解説します。
Linuxを学び始めると、ls -lやcp -rのように、コマンドの後ろへ記号やアルファベットが付いていることに気づきます。
コマンド名だけでも覚えることが多いのに、オプションまで全部暗記するのは大変ですよね。
しかし、すべてのオプションを丸暗記する必要はありません。
よく使うものだけを実際に操作しながら覚え、わからないものはmanや--helpで調べるのが、もっとも現実的な方法です。
この記事では、短いオプションと長いオプションの違い、複数指定する方法、よくある勘違い、安全に試す方法まで解説します。
Linuxコマンドのオプションとは¶
オプションとは、コマンドの動作を変更するために追加する指定です。
たとえば、lsはファイルやディレクトリの名前を表示しますが、-lを付けると権限や所有者、サイズなどの詳細情報も表示します。
ls
ls -l
コマンドの基本的な形は、次のとおりです。
コマンド オプション 引数
ls -l /var/logで考えると、lsがコマンド、-lがオプション、/var/logが操作対象となる引数です。
| 要素 | 例 | 役割 |
|---|---|---|
| コマンド | ls |
実行する処理 |
| オプション | -l |
動作や表示方法を変更する |
| 引数 | /var/log |
操作する対象を指定する |
オプションを付けなければ、コマンドは標準の動作をします。
必要な場面だけオプションを追加すると考えると、理解しやすくなります。
Linuxコマンドのオプションの覚え方を解説¶
Linuxコマンドのオプションの覚え方は、次の3つです。
- よく使うオプションの傾向を知る
manや--helpで調べる- 実際の作業で繰り返し使う
最初から一覧表を暗記するのではなく、調べ方を覚えることが重要です。
共通のオプションを覚える¶
まず1つ目は、共通のオプションを覚えることです。
Linuxのコマンドには、似た意味で使われるオプションがあります。
| オプション例 | よくある意味 | 使用例 |
|---|---|---|
-a、--all |
すべて表示する | ls -a |
-l |
詳細形式で表示する | ls -l |
-r、-R |
再帰処理、逆順表示など | cp -r、sort -r |
-i |
実行前に確認する | rm -i |
-f |
強制実行、ファイル指定など | rm -f、awk -f |
-n |
数値表示、行数指定など | head -n 5 |
-v |
詳細表示、バージョン表示など | コマンドによって異なる |
-h |
ヘルプ、人が読みやすい単位など | df -h |
--help |
ヘルプを表示する | ls --help |
--version |
バージョンを表示する | grep --version |
ただし、同じ文字でも意味はコマンドによって変わります。
たとえば、-hはdfではサイズを読みやすい単位にするオプションですが、別のコマンドではヘルプを表示する場合があります。
df -h
-vも、詳細な処理を表示するverboseの場合と、バージョン表示の場合があります。
共通する傾向は覚えてもよいですが、意味を確認せず他のコマンドへ当てはめないようにしましょう。
manページやhelpオプションを使う¶
次にmanページやhelpオプションを使うことです。
manページとはマニュアルを表示するコマンドです。コマンドのオプションも載っています。
man ls
manページを開いたら、/を押して検索したい言葉を入力できます。
たとえば、recursiveを探す場合は次のように入力します。
/recursive
次の検索結果へ移動する場合はn、終了する場合はqを押します。
helpオプションもmanページ同様にコマンドの使い方やオプションを表示してくれます。
ls --help
長い説明を読みたい場合はman、利用可能なオプションをすぐ一覧したい場合は--helpが便利です。
manページの使い方はこちらの記事で詳しく解説しています。
【関連記事】Linuxのmanコマンドの使い方
コマンドを練習する¶
最後は、コマンドの練習です。
やはりオプションを覚えるためには、何回もコマンドを練習する必要あります。
ただし、同じコマンドを意味も考えずに入力するだけでは覚えにくいです。
オプションを付けない結果と、付けた後の結果を比較してみましょう。
ls
ls -l
ls -a
ls -la
表示結果のどこが変わったかを確認すると、-lや-aの役割を理解できます。
コマンドを練習するためには、InfraAcademyという学習サービスがおすすめです。
コマンドの解説から、シミュレーションを使ったコマンドの練習までできます。
↓InfraAcademyの講座の一部です
上記以外にも、DNSサーバーの構築方法や、Dockerの設定方法などさまざまな講座があります。
インフラエンジニアに必要な知識が学習できます。
【関連記事】インフラ学習におすすめのサイトInfraAcademy
短いオプションと長いオプションの違い¶
Linuxコマンドのオプションには、主に短い形式と長い形式があります。
両方が用意されているコマンドでは、用途に応じて使い分けられます。
短いオプション¶
短いオプションは、ハイフン1つと1文字で指定する形式です。
ls -l
入力が短く、日常的な操作に向いています。
ただし、-lだけを見ても意味がわかりにくいため、慣れていないコマンドではマニュアルを確認しましょう。
長いオプション¶
長いオプションは、ハイフン2つと単語で指定します。
ls --all
単語で意味を推測しやすいため、スクリプトや手順書では長い形式が読みやすい場合があります。
すべてのコマンドに長いオプションがあるわけではなく、UNIX由来のコマンドや環境によって対応状況が異なります。
値を必要とするオプション¶
オプションによっては、追加の値が必要です。
たとえば、headで先頭5行を表示する場合は、次のように指定します。
head -n 5 access.log
長い形式では、次のように書けます。
head --lines=5 access.log
-nだけでは、何行表示するのか決まりません。
ヘルプの-n NUMや--lines=NUMという記載を見たら、NUMの部分へ値を指定するという意味です。
複数のオプションを指定する方法¶
1つのコマンドへ複数のオプションを指定できます。
ただし、まとめて書けるのは、基本的に1文字の短いオプションです。
オプションを分けて書く¶
次のコマンドは、隠しファイルを含めて詳細表示します。
ls -a -l
オプションごとの意味が見やすいため、初心者は最初に分けて書いても問題ありません。
短いオプションをまとめる¶
-aと-lは、次のようにまとめられます。
ls -al
順番を入れ替えたls -laも、通常は同じ動作です。
しかし、すべてのコマンドで自由にまとめられるとは限りません。
値を取るオプションを含む場合は、どこまでがオプションで、どこからが値なのかに注意します。
head -n 5 file.txt
慣れていないうちは、ヘルプに書かれた形式へ合わせるのが安全です。
ハイフンが付かない引数との違い¶
初心者のうちは、オプションと引数を混同しやすいです。
次のコマンドでは、-lがオプション、/etcが引数です。
ls -l /etc
引数は、ファイル名、ディレクトリ名、検索文字列、ユーザー名など、コマンドが処理する対象を指定します。
grep -n "error" app.log
この例では、-nが行番号を表示するオプション、errorが検索文字列、app.logが検索対象です。
コマンドを読むときは、コマンド・オプション・引数へ分解して考える習慣をつけましょう。
ファイル名がハイフンから始まる場合¶
ファイル名が-test.txtのようにハイフンから始まると、コマンドがオプションだと解釈する場合があります。
このようなときは、--を使ってオプションの終わりを示します。
rm -- -test.txt
--より後ろは、オプションではなく引数として扱われます。
カレントディレクトリを明示して、次のように指定する方法もあります。
rm ./-test.txt
特にrmやmvでは、ファイル名を誤ってオプションとして処理しないよう注意してください。
helpコマンドと--helpの違い¶
helpと--helpは名前が似ていますが、使う対象が異なります。
Bashの組み込みコマンドを調べる場合は、helpを使います。
help cd
help export
cdはシェル自身が実行する組み込みコマンドのため、一般的な外部コマンドと動作が異なります。
コマンドの種類は、typeで確認できます。
type cd
type ls
次のように表示されます。
cd is a shell builtin
ls is aliased to 'ls --color=auto'
一方、lsやgrepなどの外部コマンドでは、コマンド --helpを使うのが一般的です。
grep --help
コマンドによっては-hしか対応していない場合や、ヘルプの表示方法が異なる場合もあります。
オプションの意味を調べる方法¶
わからないオプションが出てきたら、推測だけで実行しないようにします。
次の順番で調べると効率的です。
1.--helpで一覧を確認する¶
まずは、コマンド自身のヘルプを確認します。
cp --help
表示が長い場合は、lessへ渡すと読みやすくなります。
cp --help | less
/recursiveのように検索し、qで終了できます。
2.manページで詳しい説明を読む¶
概要だけではわからない場合は、manページを確認します。
man cp
危険な操作や、既存ファイルをどのように扱うかも説明されています。
3.typeで実体を確認する¶
同じ名前でも、エイリアス、シェル関数、組み込みコマンド、実行ファイルのいずれかである可能性があります。
type -a ls
エイリアスによって、自動的にオプションが追加されていることもあります。
実行結果が予想と違うときは、コマンドの実体を確認しましょう。
危険なオプションは暗記より確認を優先する¶
オプションによっては、確認を省略したり、ファイルを再帰的に削除したりします。
代表的な例がrm -rfです。
rm -rf directory
-rはディレクトリを再帰的に処理し、-fは確認や一部のエラー表示を省略して強制的に進めます。
学習中に意味を確認するだけなら、実際の重要なディレクトリへ実行しないでください。
練習用ディレクトリを作り、中身を確認してから試します。
mkdir -p ~/option-practice/test
ls -la ~/option-practice
rm -ri ~/option-practice/test
-iを使うと確認しながら削除できます。
私は10年以上エンジニアとしてLinuxを扱っていますが、慣れているコマンドほど実行前に対象を再確認します。
特に削除、上書き、権限変更では、オプションを知っていることより、対象が正しいことを確認する方が重要です。
オプションを覚えるための練習問題¶
ここまでの内容を、実際のコマンドで確認してみましょう。
専用の練習ディレクトリを作成します。
mkdir -p ~/option-practice
cd ~/option-practice
touch file1.txt file2.txt .hidden.txt
mkdir dir1
練習1.隠しファイルを確認する¶
まず、通常のlsを実行します。
ls
次に、-aを付けます。
ls -a
.hidden.txtだけでなく、.と..も表示されることを確認してください。
練習2.詳細情報を表示する¶
次の2つを比較します。
ls -a
ls -al
-lを追加すると、権限、リンク数、所有者、グループ、サイズ、更新日時が表示されます。
練習3.行数を指定する¶
/etc/passwdの先頭3行を表示します。
head -n 3 /etc/passwd
-nの後ろへ別の数字を指定し、表示行数が変わることを確認しましょう。
練習4.ヘルプから答えを探す¶
ls --helpを実行し、ファイルサイズを読みやすい単位で表示するオプションを探します。
見つけたら、次のように実行します。
ls -lh
答えを先に暗記するより、ヘルプから必要な情報を探せることが大切です。
Linuxコマンドのオプションを覚えるコツ¶
最後に、学習を続けるためのコツを整理します。
すべてのオプションを一覧表で覚えようとしないことが、結果的に近道です。
よく使う組み合わせを作業単位で覚える¶
-lだけを覚えるのではなく、どの作業で使うのかと一緒に覚えます。
| やりたいこと | コマンド例 |
|---|---|
| 隠しファイルを含めて詳細表示 | ls -la |
| ディレクトリをコピー | cp -r source destination |
| 行番号付きで検索 | grep -n "error" file |
| 先頭10行を表示 | head -n 10 file |
| 読みやすい単位で容量確認 | df -h |
作業とセットで覚えると、必要な場面で思い出しやすくなります。
自分用のコマンド履歴を残す¶
初めて使ったコマンドは、目的と結果を短くメモします。
ls -la 隠しファイルを含めて詳細表示
head -n 20 先頭20行を表示
grep -n error errorを検索して行番号も表示
ただし、パスワードや秘密鍵などの機密情報をメモへ残さないようにしてください。
覚えられないことを気にしない¶
実務のエンジニアでも、すべてのコマンドオプションを覚えているわけではありません。
頻繁に使うものは自然に覚え、利用頻度の低いものはその都度調べます。
調べずに曖昧な記憶で実行するより、数秒かけてヘルプを確認する方が安全です。
まとめ¶
今回の記事では、Linuxコマンドのオプションの覚え方を解説しました。
オプションは、コマンドの動作や表示方法を変更するために使います。
短いオプション、長いオプション、値を必要とするオプションがあり、同じ文字でもコマンドによって意味が異なります。
まずはls -la、head -n、grep -nなど、よく使う組み合わせから覚えましょう。
わからない場合は、次の方法で調べます。
コマンド --help
man コマンド
type コマンド
削除や上書きを伴うオプションは、練習環境で対象を確認してから実行してください。
オプション以外にもコマンド自体の覚え方を知りたい方は、次の記事も参考にしてください。
【関連記事】Linuxコマンドの覚え方を現役エンジニアが解説
Linuxコマンドをブラウザ上で練習したい方は、InfraAcademyのLinux入門講座をご覧ください。