Linuxコマンドは、誰かが必要に迫って作ったものの積み重ねだった

Linuxのコマンドを2年ほど触っています。最初はただの呪文でした。ファイルを見る、移動する、探す。意味が分からないまま丸暗記していました。

使うのは lscdgrep といった短い綴りばかりです。

あるとき、ふと気になったんです。

ls って、なんの略なんだろう。

調べてみたら list でした。そのまますぎて拍子抜けしました。

でも、そこから他のコマンドも気になって、片っ端から調べていきました。そうしたら、全然違うものが見えてきたんです。

Linuxコマンドは堆積だった

全部ただの英単語だった

まず語源から。並べてみると、笑ってしまうくらい素直です。

コマンド 元の言葉 意味
ls list 一覧にする
cd change directory ディレクトリを変える
mv move 動かす
cp copy 複製する
rm remove 取り除く
cat catenate つなげる
chmod change mode 権限を変える
sed stream editor 流れてくる文字を編集する
tar tape archive テープに保存する

cat はちょっと意外でした。猫ではありません。「catenate(つなげる)」の略です。ファイルの中身を表示するコマンドとして使うことが多いですが、本来は複数のファイルをつなげるためのものでした。

tar に至っては「テープ」です。磁気テープにデータを保存していた時代の名前が、そのまま今も使われています。

なぜこんなに短いのか

ここが面白かったところです。

当時のコンピュータは、記憶容量がとても小さかった。だから長い名前をつける余裕がなかったんです。

タイプする手間の問題だけではありません。文字数そのものが贅沢品だった時代の産物です。

つまり ls が2文字なのは、センスでも美学でもなく、制約の結果でした。

「一夜で作られた」の真相

コマンドの成り立ちを調べていて、一番面白かったのが grep です。

grep は文字を検索するコマンドです。名前の由来は g/re/p という、当時のエディタで使われていた命令の綴りそのままです。

有名なエピソードがあります。

同僚のダグ・マキルロイが、ケン・トンプソンに「こういう検索プログラムが欲しい」と頼んだ。トンプソンは「一晩考えてみる」と答えた。翌日、彼はちゃんと動くプログラムを持ってきた。

一夜にして作られた伝説のコマンド。

そう語り継がれています。でも実際は、少し違いました。

トンプソンは既に s(search の略)という自分専用の検索ツールを持っていたんです。頼まれた翌日までにやったのは、そのバグを直して手を入れた、1時間ほどの作業でした。

私はこの話がとても好きです。

天才が一晩でゼロから作ったのではない。自分が困って、自分のために作っていたものが、たまたま人の役に立った。それだけの話だったんです。

体系ではなく、堆積だった

ここまで調べて、ようやく腑に落ちました。

私はずっと、Linuxのコマンド群を「よくできた体系」だと思っていました。誰か賢い人が全体を設計して、整然と並べたものだと。

違いました。

最初のUnixが世に出たとき、コマンドは60個ほどでした。そこから必要になるたびに、誰かが一つずつ足していった。

  • 検索したい人がいたから grep ができた
  • 置換したい人がいたから sed ができた
  • テープに保存したい人がいたから tar ができた

設計されたのではなく、積み上がったんです。

体系ではなく堆積。地層みたいなものでした。

それでも40年以上、生き残っている

ここが本題です。

lscdgrep も、1970年代に作られたものです。50年以上前です。

その間に、コンピュータの世界は何度もひっくり返りました。

  • パソコンが家庭に入り
  • Windowsが出て
  • インターネットが広がり
  • スマホが当たり前になり
  • そして今、AIが来ている

道具は何度も入れ替わりました。それでも ls は、今日も私のターミナルで動いています。今朝も打ちました。

なぜ残ったのか。

やっていることが本質的だからだと思います。

「一覧する」「移動する」「探す」。これは技術の流行とは関係のない、人がコンピュータを触るときに必ず必要になる動作です。だから道具が変わっても、needが消えない。

道具は死ぬ、構造は残る

私は職業訓練校で3年以上、Webを教えていました。

その間に、教えていたツールはほとんど入れ替わりました。当時「これを覚えれば食べていける」と言われていたものが、今は使われていません。

そこで学んだことがあります。

道具は死ぬ。構造は残る。

Linuxコマンドの話は、まさにこれの実例でした。50年前の道具が生き残っているのは、それが「構造」の側にあるからです。

AIも、たぶん同じです

今、AIの使い方を教える仕事をしています。

生徒さんからよく聞かれます。「どのAIを覚えればいいですか」と。

正直なところ、分かりません。今主流のものが3年後にあるかどうか、誰にも分からない。

でも、これは言えます。

「AIに何をやらせたいのか」を言葉にする力は、道具が変わっても残ります。

これは grep の話と同じです。トンプソンは「検索したい」という困りごとがあって、そのために道具を作った。道具が先ではありませんでした。

AIも同じで、「困っていること」が先です。ツールの名前を覚えることではありません。

まとめ

コマンドの語源を調べただけのつもりが、思わぬところに着地しました。

  • コマンド名が短いのは、容量が足りなかったから
  • 体系ではなく、必要に応じて積み上がった堆積だった
  • 天才の一夜漬けではなく、自分が困って作ったものだった
  • それでも50年、生き残っている

覚えるべきは道具の名前ではなく、その裏にある「なぜそれが必要だったのか」のほうです。

そこを掴んでおくと、次に新しい道具が来ても、たぶん怖くありません。

メモ
コマンドが覚えられないという方は、語源から入るのをおすすめします。
ls は list、mv は move。意味が分かると、丸暗記ではなくなります。
私はこれで、だいぶ楽になりました。


参考

ブログ

BLOG

PAGE TOP