「ネットの記事に出てくる && や || って、いったい何をしているの」
Linuxを触り始めたばかりの頃、誰もが一度はつまずくポイントです。
コマンドの「書き方の型」さえ分かってしまえば、初めて見るコマンドでも構造を読み解けるようになります。
この記事では、Linuxコマンドの基本書式(コマンド・オプション・引数)から、複数のコマンドをまとめて実行する連結記号(; と && と ||)の使い分けまで、初心者の方が最初に押さえておきたい内容を順番に解説します。
動作確認は RHEL 9.4 / Ubuntu 24.04 LTS のbashで行っています。
この記事のポイント
・ コマンドは「コマンド名 オプション 引数」の3要素で構成される
・ オプションは短い「-l」と長い「--all」の2種類がある
・ ; は逐次、&& は成功時のみ、|| は失敗時のみ次を実行する
・ rm などの危険な操作ほど && の前提条件で守ると安全になる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Linuxコマンドの基本書式|コマンド・オプション・引数の3要素
Linuxのコマンドは、ほとんどが次の形をしています。# 基本書式 コマンド名 [オプション] [引数] # 具体例:lsコマンドで /etc の中身を詳細表示する ls -l /etc
ls -l /etc を3つの要素に分解すると、次のようになります。| 要素 | この例での値 | 役割 |
|---|---|---|
| コマンド名 | ls | 実行する処理の名前(何をするか) |
| オプション | -l | 動作の細かい指定(どう動かすか) |
| 引数 | /etc | 処理の対象(何に対してするか) |
それぞれの要素は半角スペースで区切ります。日本語の文章のように「主語・述語・目的語」を並べる感覚に近く、慣れてしまえば自然に読めるようになります。
オプションとは|ショートオプションとロングオプション
オプションは、コマンドの動作を細かく指定するための「スイッチ」です。同じコマンドでも、オプションを変えると出力や挙動が変わります。オプションには、ハイフン1つの「ショートオプション」と、ハイフン2つの「ロングオプション」の2種類があります。
1. ショートオプション(-l)
ハイフン1つに英字1文字を続ける形式です。短く打てるので、対話的に操作するときによく使います。[admin@server01 ~]$ ls -l 合計 8 drwxr-xr-x 2 admin admin 4096 May 31 09:00 docs -rw-r--r-- 1 admin admin 120 May 31 09:00 note.txt
-l(詳細表示)と -a(隠しファイルも表示)は、ls -la のように1つにまとめられます。# 下の2行は同じ意味になる ls -l -a ls -la
2. ロングオプション(--all)
ハイフン2つに、意味の分かる単語を続ける形式です。打つ文字数は増えますが、後から読み返したときに何を指定しているのか一目で分かります。シェルスクリプトに書くときは、こちらの方が読みやすくなります。# -a と --all は同じ意味(隠しファイルも表示) ls --all # 値を渡すロングオプションは = でつなぐ書き方もできる ls --color=auto
--help オプションか man コマンドを使います。詳しい読み方はLinuxのman・helpコマンド入門で解説しています。
引数とは|コマンドが処理する対象を指定する
引数は、コマンドが「何に対して処理を行うか」を指定する部分です。多くの場合、ファイル名・ディレクトリ名・文字列などを渡します。# cp は「コピー元」「コピー先」の2つの引数をとる cp note.txt backup.txt # 引数を複数並べることもできる(複数ファイルをまとめて削除) rm old1.txt old2.txt old3.txt
# スペースを含むファイル名は " " で囲む cat "my report.txt"
複数コマンドの連結|; と && と || の使い分け
1行で複数のコマンドを続けて実行したいときは、コマンドの間に区切り記号を置きます。記号によって「次のコマンドを実行する条件」が変わるのが重要なポイントです。1. セミコロン(;)|結果に関係なく順番に実行する
; でつなぐと、前のコマンドが成功しても失敗しても、左から順番に必ず実行されます。「とにかく上から順に流したい」ときに使います。[admin@server01 ~]$ cd /var/log ; ls ; pwd boot.log messages secure /var/log
2. アンパサンド2つ(&&)|前が成功したときだけ次を実行する
&& でつなぐと、前のコマンドが成功(終了ステータス0)したときだけ、次のコマンドが実行されます。前の処理がうまくいって初めて意味を持つ作業に向いています。代表例が、パッケージ更新です。リポジトリ情報の更新が失敗したのに、続けてアップグレードしてしまうのは危険なので、
&& でつなぎます。# update が成功したときだけ upgrade を実行する(Ubuntu) sudo apt update && sudo apt upgrade # ディレクトリの作成に成功したときだけ、その中へ移動する mkdir project && cd project
mkdir project がエラーになれば、後ろの cd project は実行されません。存在しないディレクトリへ移動して別のミスを重ねる、という事故を防げます。3. パイプライン2つ(||)|前が失敗したときだけ次を実行する
|| でつなぐと、前のコマンドが失敗したときだけ、次のコマンドが実行されます。「うまくいかなかった場合のフォロー」を書くのに便利です。# ディレクトリへ移動できなかったら、エラーメッセージを表示する cd /opt/app || echo "ディレクトリが見つかりません" # ファイルがなければ作成する(あれば何もしない) test -f config.ini || touch config.ini
4. && と || を組み合わせる
&& と || は組み合わせて使えます。「成功したらA、失敗したらB」という分岐を1行で書けます。# バックアップに成功したら完了、失敗したら警告を出す cp -a /etc/nginx /backup/nginx && echo "バックアップ完了" || echo "バックアップ失敗"
「command not found」が出た時の対処法
コマンドを実行したときにcommand not found と表示されたら、次の3点を順に確認します。[admin@server01 ~]$ htop bash: htop: command not found
・未インストール:そのコマンドがまだ入っていない場合があります。
sudo dnf install htop(RHEL系)や sudo apt install htop(Ubuntu系)でインストールします。・PATHの問題:コマンドの実体はあるのに見つからない場合、置き場所がPATHに含まれていない可能性があります。
type コマンド名 で実体の場所を確認できます。コマンドの種類(シェル組み込みか外部コマンドか)を見分ける方法は、typeコマンドでシェル組み込みと外部コマンドを区別する方法で詳しく扱っています。
本記事のまとめ
Linuxコマンドの「書き方の型」と「連結の使い分け」を押さえておけば、初めて見るコマンドでも落ち着いて読み解けるようになります。| やりたいこと | 書き方 |
|---|---|
| 動作を細かく指定する(短い形式) | ls -l |
| 動作を細かく指定する(長い形式) | ls --all |
| 結果に関係なく順番に実行する | cd /tmp ; ls |
| 成功したときだけ次を実行する | mkdir work && cd work |
| 失敗したときだけ次を実行する | cd /opt || echo "失敗" |
ls や cd のような身近なコマンドで、オプションと引数を変えながら手を動かすのが上達の近道です。書式に慣れてくると、コマンドを覚える負担がぐっと軽くなります。
Linux無料マニュアルを受け取る >>
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Linuxのセキュリティ基本設定入門|初心者が最初に知るべきroot・パーミッション・ファイアウォールの3つの壁
- 前のページへ:Linuxのターミナルショートカット入門・コピペから補完まで初心者が最初に覚えるべきキーボード操作
- この記事の属するカテゴリ:【Linux入門】初心者のための基礎知識・講座へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます