シェル・コマンドラインとは?OSに文字でコマンドを送る窓口

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

シェル・コマンドラインとは(全体像)

シェルは、OSに「これをやって」と文字で命令するための窓口のこと。打ち込んだ命令(コマンド)をOSに伝えて実行させる。

身近にたとえると、レストランでの注文のしかただ。GUI(マウス操作)は「ウェイターに頼む」ようなもの、シェル(コマンドライン)は「自分で厨房に入って直接作る」ようなもの。慣れると速く、自動化もしやすい。

押さえるのは、シェルにはいくつか種類があり、OSごとに標準が違うということ。


詳しく:主要シェルとパイプ・リダイレクトだけ覚えれば戦える

ここが記事の心臓部。まず主要なシェルを見ましょう。

主要なシェル

OS標準のシェルひとこと
LinuxBash標準で互換性が高い
macOSZsh2019年以降の標準(補完が強い)
WindowsPowerShell.NETと統合・cmdより新しい

ここで一番のひっかけが「macOSのシェルは今もBash」という誤解。2019年以降のmacOSは、標準のシェルがZshに変わっています。

次に、シェルでよく使う2つの記号、パイプ「|」リダイレクト「>」

パイプとリダイレクト

記号はたらき
パイプ「|」前のコマンドの出力を、次のコマンドの入力につなぐ`ls | grep .log`
リダイレクト「>」コマンドの出力をファイルへ書き出す`echo hello > out.txt`

パイプ「|」は、前のコマンドの結果を次のコマンドに渡すしくみです。たとえば「ファイル一覧を出す→そこから.logだけ取り出す」を1行でつなげます。ここで2つめのひっかけが「|はORの意味」という誤解。シェルの「|」はパイプで、論理ORは「||」と2つ重ねます。

リダイレクト「>」は、画面に出るはずの結果をファイルへ書き出すしくみです。これらを組み合わせたものをシェルスクリプトとしてファイルに並べれば、作業を自動化できます。

わかりやすく言い換えると

要するに、厨房のたとえで覚えるとラクです。

シェルの種類 … Bash(Linux)、Zsh(macOSは今これ)、PowerShell(Windows)

パイプ「|」 … 前の料理を次の工程に渡す(ORではない・ORは「||」)

リダイレクト「>」 … 出来た料理を皿(ファイル)に盛る

つまり、「macOSは今はZsh」「|はパイプ(ORではない)」、この2点が試験の急所です。


試験のツボ

🔴 一番出る:主要なシェル

①Bash(Linux標準)/Zsh(macOSの標準・2019年以降)

②PowerShell(Windows・.NET統合)

🔴 次に出る:パイプ「|」

①パイプは前のコマンドの出力を次のコマンドの入力につなぐ

②「|」はパイプであり、論理ORは「||」(2つ重ねる)

🟡 押さえると安定:リダイレクトとシェルスクリプト

①リダイレクト「>」は出力をファイルへ書き出す(「<」は入力をファイルから)

②コマンドを並べたシェルスクリプトで作業を自動化できる


よくある間違い

「macOSのシェルは今もBashである」→ ✗  2019年以降のmacOSは標準のシェルがZsh。Bashも残るが既定が変わった。

「パイプ『|』は論理ORの意味である」→ ✗  シェルの「|」はパイプ(前の出力を次の入力へ渡す)。論理ORは「||」と2つ重ねる。

「リダイレクト『>』は入力をファイルから読み込む記号である」→ ✗  「>」は出力をファイルへ書き出す。入力をファイルから読むのは「<」。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(主要なシェル)

📝 オリジナル問題 1 主要なシェル

シェルに関する次の記述のうち、正しいものはどれか。

  1. シェルは紙に印刷する装置のことで、OSへの命令とは無関係なものだとされているものだ
  2. シェルは1種類しかなく、OSによって標準が変わることはないものだとされているものだ
  3. LinuxはBash、macOSは今はZsh、WindowsはPowerShellが代表だ
  4. macOSの標準シェルは今もBashで、Zshに変わったことはないものだとされているものだ
テクマスター
テクマスター 解答・解説

解答は 3 ですよ。

Linuxの標準はBash、macOSの標準は今はZsh、WindowsはPowerShellが代表ですね。2019年以降のmacOSはZshが標準です。

選択肢1の「印刷する装置」、選択肢2の「1種類しかない」、選択肢4の「macOSは今もBash」はどれも誤りですよ。

選択肢判定理由
1印刷する装置ではない
2OSごとに標準が違う
3Bash・Zsh・PowerShellの対応が正しい
4macOSは今はZsh

オリジナル問題2(パイプ)

📝 オリジナル問題 2 パイプ「|」のはたらき

シェルのパイプ「|」に関する次の記述のうち、正しいものはどれか。

  1. パイプ「|」は論理ORの意味で、2つの条件のどちらかを満たすかを調べる記号である
  2. パイプ「|」は紙に印刷する手順のことで、コマンドの連結とは無関係なものだとされている
  3. パイプ「|」はコマンドを必ず1つに減らす記号で、出力を渡すことはないものだとされている
  4. パイプ「|」は前のコマンドの出力を次のコマンドの入力につなぐ記号で、ORは「||」だ
テクマスター
テクマスター 解答・解説

解答は 4 ですよ。

パイプ「|」は前のコマンドの出力を次のコマンドの入力につなぐ記号で、論理ORは「||」と2つ重ねますね。料理を次の工程へ渡すイメージです。

選択肢1の「論理OR」、選択肢2の「印刷する手順」、選択肢3の「1つに減らす」はどれも誤りですよ。

選択肢判定理由
1論理ORは「||」
2印刷する手順ではない
3出力を次へ渡す
4パイプは出力を次の入力へ渡す

オリジナル問題3(リダイレクト)

📝 オリジナル問題 3 リダイレクト「>」

シェルのリダイレクト「>」に関する次の記述のうち、正しいものはどれか。

  1. リダイレクト「>」は出力をファイルへ書き出す記号で、入力を読むのは「<」のほうである
  2. リダイレクト「>」は入力をファイルから読み込む記号で、出力には使えないものだとされている
  3. リダイレクト「>」は紙に印刷する装置のことで、ファイルとは無関係なものだとされている
  4. リダイレクト「>」はコマンドを必ず止める記号で、ファイルの操作はできないものだとされる
テクマスター
テクマスター 解答・解説

解答は 1 ですよ。

リダイレクト「>」は出力をファイルへ書き出す記号で、入力を読むのは「<」ですね。出来た料理を皿(ファイル)に盛るイメージです。

選択肢2の「入力を読み込む」、選択肢3の「印刷する装置」、選択肢4の「コマンドを止める」はどれも誤りですよ。

選択肢判定理由
1「>」は出力をファイルへ・「<」は入力
2入力を読むのは「<」
3印刷する装置ではない
4コマンドを止める記号ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る