「実行」と「表示」は別物だった|catコマンドとbashの違いを実体験で理解した

この記事でわかること

  • catは「見る」、bashは「実行する」
  • シェルスクリプトとは何か
  • まとめ
  • 関連記事

ターミナルでこんなミスをした。

cat bash ~/obsidian-to-wp/wp_maintenance_flow.sh

bash という名前のファイルを開こうとして「そんなファイルない」と怒られ、その後ろのファイルの中身だけが表示された。やりたかったのはスクリプトの中身を「見る」ことだったので、結果的には見れたのだが、コマンドの意味は全然違った。

catは「見る」、bashは「実行する」

ターミナルでファイルに対してできることは大きく2つある。

中身を見る

cat ~/obsidian-to-wp/wp_maintenance_flow.sh

実行する

bash ~/obsidian-to-wp/wp_maintenance_flow.sh

cat はファイルの中身をそのまま画面に出力するだけ。bash はシェルスクリプトとして実行する。同じファイルに対する操作でも、コマンドが違えば動作は全く別物。

シェルスクリプトとは何か

シェルスクリプトは、コマンドをまとめて書いたテキストファイルのこと。拡張子は .sh

#!/bin/bash
# 1行目のこれが「bashで実行してください」という宣言

python3 wp_maintenance.py
python3 wp_to_obsidian.py

1行目の #!/bin/bash(シバンと呼ぶ)があることで、これがシェルスクリプトだとわかる。あとはコマンドが上から順に並んでいるだけ。

毎回手で打つコマンドの組み合わせをファイルに保存しておいて、次から1コマンドで呼び出せるようにしたもの、と思えばいい。

まとめ

やりたいこと コマンド
中身を見る cat ファイル名
実行する bash ファイル名

シンプルだけど、最初は混乱しやすいポイント。実際にやってみて間違えてみると、一番よく理解できる。

シェルスクリプトやターミナルの仕組みを理解していると、他の端末に今までのフローを引っ越しするときも指示がしやすい。「このファイルをこのパスに置いて、この環境変数を設定して」と的確に動かせる。

逆に、それが分かっていないと資産が消えてしまうかもしれない。ローカルにフローが残るとかそういう仕組みを使わずに、ただAIを「使っているだけ」の人は、実はかなり危うい状態にあると思う。何かトラブルがあったとき、何がどこにあるのかすら分からないし、引っ越しも再現もできない。

AIを使いこなしている人とそうでない人の差は、AIの使い方そのものより、裏側の仕組みをどれだけ理解しているかにあるのかもしれない。

関連記事

ブログ

BLOG

PAGE TOP