長いコマンドは、どこで分ける?名前とそのあとの指示を読む

30秒でわかる答え

長い一行は、何をする名前か、動き方の指定、使う場所に分けて読みます。そのあとに、別の指示をつなぐ記号や、ファイルへ保存する指定がないかを見ます。

AIに見せられた長い一行を、はじめから全部読もうとすると大変です。まず、何をする名前か。そのあとに、動き方と使う場所が書かれていないか。 この順で見てみましょう。

コマンドは、文字でPCに仕事をたのむ指示です。ここでは、Bashという指示を受け取るしくみでの読み方を使います。別のしくみでは書き方が変わることもあります。下の例は読むためのもので、自分のPCへ打つ必要はありません。

短い一行を、三つに分けてみる

写真や文書など、名前を付けて保存したものをファイル、それらを入れるものをフォルダといいます。ここではnotesというフォルダに入った名前を見る例です。

ls -a ./notes
見る部分この例での意味
lsファイルなどの名前をならべて見る
-aふだんは出さない、ドットで始まる名前も出す
./notes今いる場所の中の、notesというフォルダを見る

-aのように動き方を変える指定をオプションといいます。ただし、別のコマンドの-aまで同じ意味とは限りません。どの名前に付いているかも一緒に見ます。

./notesのように場所を表す書き方をパスといいます。名前を覚えるより先に、「どこを見ると言っているのか」が分かれば大丈夫です。

同じnotesでも、今いる場所で指す先が変わる

./notesの.は今いる場所です。..は一つ上のフォルダを表します。今いる場所から見た書き方を「相対パス」と呼びます。

たとえば、家の中で「この部屋にある箱」と言うと、いる部屋によって指す箱が変わります。./notesも、作業する場所が変われば別のnotesを指すことがあります。ただし、フォルダは実際の部屋ではなく、PCの中でファイルを分けるものです。

AIには「今いる場所と、そこからどのフォルダを見るのかを教えて」と聞けます。見る場所を変える図でも、このちがいを比べられます。

名前に空白があったら、どこまでが一つかを見る

フォルダの名前がMy Notesなら、途中に空白があります。そのまま書くと、空白で二つに分けて読まれることがあります。

"My Notes"のように囲むと、一つの名前として渡せます。この囲む記号を**引用符(いんようふ)**といいます。

囲んだ中なら、何も起きないの?

そうとは限りません。Bashでは、' 'で囲むと中は文字どおりに扱います。" "で囲むと、中の文字をほかの文字に置きかえる働きが残る場合があります。たとえば、下で説明する$(…)は中の指示を動かします。「囲んであるから動かない」とは決めつけません。

消したり移したりする指示なら、「この書き方で、一つのどのフォルダを指しますか?」と先に聞けます。

記号のあとにも、別の指示が続く

一行に、二つ以上の指示が入っていることがあります。

記号何をつなぐ?
``
&&左の指示がうまく終わったら、右へ進む
;左がうまく終わったかにかかわらず、右へ進む

pwd && lsなら、今いる場所を見せるpwdがうまく終わったあとに、lsで名前の一覧を見せます。

一行を許可したあと、途中でもう一度聞いてくれるかは、使うアプリによります。「ここで一度確かめたい」と思うなら、一行を分けて提案してもらえます。

保存や、文字の置きかえにも目を向ける

>は、出てきた文字をファイルへ保存する指定です。Bashのふつうの設定では、同じ名前のファイルがあると、先に中身を空にしてから書きます。>>なら最後に足します。読む指示に付いていても、保存先の中身は変わります。

次の記号は、書かれた文字が別の名前などに置きかわる部分です。

  • *:合うファイル名などがあれば、その名前に置きかわる。
  • $NAME:NAMEという名前で覚えておいた文字などを使う。
  • $(…):中の指示を動かし、出てきた文字を使う。

NAMEのように、文字などを入れておくものを変数といいます。$NAMEだけ見ても、中に入っている名前までは分かりません。囲む記号や設定でも扱いが変わります。

AIへは「最後にどのファイルを指すのか、まだ動かさずに説明して」と聞けます。説明のために、消したり送ったりする必要はありません。

この一行なら、何を聞きたい?

ls -a ./notes > names.txt

lsで名前を見る。-aで、ふだんは出ない名前も出す。見る場所は./notes。保存先はnames.txtです。

ここまで分かると、次のように聞けます。

今はどのフォルダにいますか。names.txtはもうありますか。残したい中身があるなら、別の名前で保存できますか。

全部の記号を覚えるより、見る場所と変わるものを分けるところからはじめられます。知らない名前が残ったら、コマンドの短い一覧で、その名前が何をするかを探せます。

コマンドの読み方の参考資料

内容の最終確認日:

この記事について

LAB WHITEBOARD

コマンドの読み方を一文で説明してみよう

「一行に含まれる対象と複数の処理を分ける」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。