Linuxコマンドの実行方法入門|オプション・引数と複数コマンドの連結(; && ||)

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > Linuxコマンドの実行方法入門|オプション・引数と複数コマンドの連結(; && ||)
「コマンドを打ってみたけど、オプションと引数の違いがよく分からない」
「ネットの記事に出てくる && や || って、いったい何をしているの」
Linuxを触り始めたばかりの頃、誰もが一度はつまずくポイントです。

コマンドの「書き方の型」さえ分かってしまえば、初めて見るコマンドでも構造を読み解けるようになります。

この記事では、Linuxコマンドの基本書式(コマンド・オプション・引数)から、複数のコマンドをまとめて実行する連結記号(; と && と ||)の使い分けまで、初心者の方が最初に押さえておきたい内容を順番に解説します。
動作確認は RHEL 9.4 / Ubuntu 24.04 LTS のbashで行っています。

この記事のポイント

・ コマンドは「コマンド名 オプション 引数」の3要素で構成される
・ オプションは短い「-l」と長い「--all」の2種類がある
・ ; は逐次、&& は成功時のみ、|| は失敗時のみ次を実行する
・ rm などの危険な操作ほど && の前提条件で守ると安全になる


Linuxコマンドの実行方法入門|オプション・引数と複数コマンドの連結(; && ||)

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

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コマンド入門で解説しています。

Linuxコマンドの実行方法入門|オプション・引数と複数コマンドの連結(; && ||) - 解説1

引数とは|コマンドが処理する対象を指定する

引数は、コマンドが「何に対して処理を行うか」を指定する部分です。多くの場合、ファイル名・ディレクトリ名・文字列などを渡します。

# cp は「コピー元」「コピー先」の2つの引数をとる cp note.txt backup.txt # 引数を複数並べることもできる(複数ファイルをまとめて削除) rm old1.txt old2.txt old3.txt

引数にスペースを含むファイル名を渡したいときは、ダブルクォートで囲みます。囲まないと、スペースの位置で別々の引数として解釈され、思った通りに動きません。

# スペースを含むファイル名は " " で囲む cat "my report.txt"

ここまでが、1つのコマンドを実行するときの基本です。次は、複数のコマンドをまとめて流す方法を見ていきます。

複数コマンドの連結|; と && と || の使い分け

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 "バックアップ失敗"

このパターンは、シェルスクリプトの中でも頻繁に登場します。本格的な条件分岐を学びたい方は、bashのif文とtest条件式の使い方へ進むと理解が深まります。

「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コマンドの実行方法入門|オプション・引数と複数コマンドの連結(; && ||) - まとめ

本記事のまとめ

Linuxコマンドの「書き方の型」と「連結の使い分け」を押さえておけば、初めて見るコマンドでも落ち着いて読み解けるようになります。

やりたいこと 書き方
動作を細かく指定する(短い形式) ls -l
動作を細かく指定する(長い形式) ls --all
結果に関係なく順番に実行する cd /tmp ; ls
成功したときだけ次を実行する mkdir work && cd work
失敗したときだけ次を実行する cd /opt || echo "失敗"
私のセミナーでも、最初にこの「書式の型」を共有すると、その後のコマンド習得が一気にスムーズになる受講生が多くいます。実務の現場でも、まずは lscd のような身近なコマンドで、オプションと引数を変えながら手を動かすのが上達の近道です。書式に慣れてくると、コマンドを覚える負担がぐっと軽くなります。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、20年以上の運用経験を持つ現役エンジニアが基礎から教えます。
Linux無料マニュアルを受け取る >>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。