4.bash初期化スクリプト
今までにご紹介したbashのエイリアス機能や関数は、一度設定さえすれば、命令の実行作業が楽になり便利です。ただ、いったんログアウトしてしまうと、せっかく設定したエイリアスや関数が、再ログイン時には使用できなくなり、もう一度ログイン後設定しなおさないといけなくなります。
こういう時、bashの初期化スクリプトと呼ばれる実行ファイル(テキスト形式)に、事前にエイリアスや関数を設定しさえすれば、再度ログインしなおす時も問題なく、エイリアスや関数を使用できます。
以下に、ログインシェルであるbashが起動時、どのような流れで初期化を行っているのかについて説明したいと思います。
- ユーザがログイン画面からユーザ名・パスワードを入力してログインに成功すると、通常Linuxのデフォルトのログインシェルである”bash”が起動します。
- ログインシェルである”bash”は、まず”/etc/profile”のシェルスクリプトを読み込んで実行します。この初期化スクリプトは全てのユーザに影響与えるグローバルなbashの初期設定が記述されています。
- 次に、”/etc/profile”スクリプトによって、”/etc/profile.d/”ディレクトリ以下にある全てのシェルスクリプトが実行されます。
- 次に、ログインユーザのホームディレクトリ直下の”~/.bash_profile”スクリプトが実行されます。このスクリプトはログインシェルにしか読み込まれません。そのため、ログイン時に各ユーザのシェル環境のカスタマイズを行いたい場合、このファイルに処理(コマンド)を記述します。
- 次に、”~/.bash_profile”スクリプトによって、”~/.bashrc”スクリプトが読み込まれ実行されます。このスクリプトは、ログインシェルのみならず、非ログインシェルの起動時にも読み込まれるファイルになります。このファイルもまた、ユーザのシェル環境のカスタマイズを行う際、よく利用されます。(非ログインシェルにも必ず反映させたい処理を記述する場合、このファイルを利用します。)
- 最後に、”~/.bashrc”スクリプトによって、”/etc/bashrc”スクリプトが読み込まれ実行されます。このファイルは”/etc/profile”と同様、ユーザ全体に影響をあたえるグローバルな設定をするものになります。
少し、細かい説明が続きましたが、ここで特に押さえていただきたい点は、各ユーザが使用するログインシェル(ここではbashのみ対象)の環境をカスタマイズさせたければ、”~/.bash_profile”もしくは”~/.bashrc”に記述すれば良いという事です。その他に関しては、参考程度で記憶に留めておいていただくだけで十分です。
では、実際に、以前設定したエイリアスと関数を再ログイン時にも使用できるように、bashの初期化スクリプト(今回は”~/.bash_profile”)に記述します。以下のコマンドを実行して下さい。
以下の内容を”~/.bash_profile”の最終行に追記して保存終了して下さい。
alias lsd=’ls -ld’
lsfloppy ()
{
mount /mnt/floppy
ls -l /mnt/floppy/*
umount /mnt/floppy
} |
この設定をするだけで、毎回ログイン時に”lsd”エイリアスと”lsfloppy”関数をコマンドのように使用することができます。
ちなみに、自分が使用するコマンドが実際は何にあたるのかを確認する”type”コマンドというものがあります。
以下を実行してみて下さい。
すると、以下のような出力が得られます。
lsfloppy is a function
lsfloppy ()
{
mount /mnt/floppy;
ls --color=tty -l /mnt/floppy/*;
umount /mnt/floppy
} |
この出力結果から、”lsfloppy”というコマンドは、実際にはbash上で設定されている関数を呼び出して実行している事が分かります。
次回からは、bashが持つもう一つの側面、シェルスクリプトについてご紹介したいと思います。
|