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
コマンドの読み方を一文で説明してみよう
「一行に含まれる対象と複数の処理を分ける」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。

