CHAPTER 10 · 6 LESSONS · 78 問
シェルの環境
打った文字が、コマンドに届く前に何をされているか。
ここまで、打った文字はそのままコマンドに渡っていると思っていたよね。実は違うんだ。
あなたと Linux のあいだにはシェルという通訳がいて、⏎ を押した瞬間に文字を書き換えている。*.txt をファイル名の一覧に広げているのも、$HOME を実際の場所に置きかえているのも、コマンドではなくシェルの仕事だよ。
- 環境変数 …
echo $HOMEexportenv PATH… コマンドが見つかる仕組みそのもの- クォートとエスケープ …
'と"と\の違い - 展開の順番 …
*?~$がいつ広がるか - エイリアスと履歴 …
aliashistory .profile… 起動するたびに読まれる設定
この章がいちばん「なるほど」が多いところだよ。ls と打って ls が動く理由(PATH)、ファイル名に空白があると壊れる理由(展開)、引用符を使い分ける理由($ を広げるか広げないか)が、全部つながって見えてくる。
ここが分かると、エラーメッセージの読み方も変わる。「コマンドが悪い」のか「シェルが違うものを渡した」のかを、切り分けられるようになるからだよ。
この章のレッスン
変数と PATH
クォートと展開
自分の道具に仕立てる