はじめに

これまでの実験では、ターミナルを閉じると設定が消えていました。ホテルの部屋のように、初期状態へ戻ってしまうためです。

変更を保持するには、特定の設定ファイルに内容を書き込みます。

これは、重要な操作上の習慣です。一時的な変更は試行錯誤に適していますが、長期的に使うシェルの動作は通常、セッション開始時にシェルが読み込むスタートアップファイルに設定します。

シェルごとに使用するファイルが異なります。

  • Zsh(LabEx のデフォルト): ~/.zshrc
  • Bash: ~/.bashrc

この違いは重要です。「シェル」は、すべての環境で共通する単一のプログラムではありません。シェルごとに規則、起動時の動作、設定ファイルが異なります。

この実験では、次の操作を行います。

  • Zsh の設定を変更する。
  • Bash に切り替える。
  • Bash の設定を変更する。

Zsh の設定を編集する(.zshrc)

LabEx のデフォルトのシェルは Zsh です。Zsh の設定ファイルは ~/.zshrc です。

  1. ~/.zshrc を開きます。
nano ~/.zshrc
  1. ファイルの末尾まで移動し、次の行を追加します。
alias hellozsh='echo Hello from Zsh'
  1. 保存して終了します(Ctrl + O → Enter → Ctrl + X)。

設定ファイルには書き込みましたが、シェルはまだその内容を読み込んでいません。

設定ファイルを編集するとディスク上のファイルは変更されますが、実行中のシェルの動作がすぐに変わるわけではありません。新しい設定を有効にするには、シェルがそのファイルをもう一度読み込む必要があります。

設定を再読み込みする(source)

source を使って、シェルに設定ファイルを再読み込みさせます。

source コマンドは、ファイル内のコマンドを現在のシェルで読み込んで実行するよう指示します。新しい子プロセスで実行するのではなく、現在のセッションに設定を適用できます。

  1. 設定を再読み込みします。
source ~/.zshrc
  1. 新しいエイリアスをテストします。
hellozsh

出力:

Hello from Zsh

これで、このエイリアスは Zsh で永続的に利用できるようになりました。

Bash に切り替える

ここでは、シェルごとに設定が分離されていることを確認します。

  1. Bash に切り替えます。
bash
  1. Zsh のエイリアスを実行してみます。
hellozsh

出力:command not found

失敗するのは、Bash が ~/.bashrc だけを参照するためです。

この結果から、シェルのカスタマイズはシェル固有になることが多いと分かります。あるシェルで作成した設定が、別のシェルでも自動的に共通設定になるわけではありません。

Bash の設定を編集する(.bashrc)

Bash を設定します。

  1. .bashrc を開きます。
nano ~/.bashrc
  1. ファイルの末尾に、次のエイリアスを追加します。
alias hellobash='echo Hello from Bash'
  1. 保存して終了します。

  2. Bash の設定を再読み込みします。

source ~/.bashrc
  1. エイリアスをテストします。
hellobash

出力:Hello from Bash

  1. Bash を終了して Zsh に戻ります。
exit

まとめ

この実験では、Linux 環境を永続的にカスタマイズする方法を学びました。

  • シェル固有の設定: シェル(Zsh、Bash)ごとに異なる設定ファイル(.zshrc、.bashrc)を使用します。
  • 永続化: ターミナルセッション中に行った変更は、これらのファイルに保存しない限り一時的なものです。
  • Source: source を使うと、ターミナルを再起動せずに変更をすぐ適用できます。

これで、使用しているシェルに関係なく、環境をカスタマイズできるようになりました。