読者です 読者をやめる 読者になる 読者になる

tumblr

tumblr(タンブラー)は、メディアミックスブログサービス。ブログとミニブログ、そしてソーシャルブックマークを統合したマイクロブログサービスである。アメリカのDavidville.inc(現: Tumblr, Inc.)により2007年3月1日にサービスが開始された。

.bash_profileとか.bashrcとか.bash_logoutとか色々あってよくわかんないよボケが

サーバ技術

なんか色々あってよく分からんので覚書。

ドットファイルとは

そもそも何でファイル名の前にドットがついてんのか喧嘩売ってんのかって感じなんだけど、このファイル名の前にドットがついているものは「ドットファイル」という。windowsで言う隠しファイルみたいなもの。windowsでもlinuxでも、なんか超重要なファイルは普通は見せないようにしておきたいらしい。
もちろん隠しファイルという位置づけなので、lsをしたところでこのドットファイルは表示されない。ので -a オプションをつける。
隠しファイルと言っても結局はファイルなので、いじるときもパーミッションが適切に設定されていれば普通のファイルと同じように編集ができる。でもファイル名のドットを消すと、ドットファイルとして認識されなくなるので注意。

ログインシェルの設定ファイルたち

で、題名のbashという名前のついたドットファイルたちなのだが、こいつらは環境変数などの初期化ファイルたち。bash関連以外も含めて以下のようなファイルがある。

/etc/profile

ログインシェル関係ないけど、どのユーザーでログインしてもログイン時に読まれるファイル。システムの環境変数なんかが書かれている。全てのユーザーに共通に設定したい環境変数があればここでexportする。java系の環境変数はよく見る。

/etc/profile.d/*

RH系固有のディレクトリ。/etc/profileの中でインクルードされてる。このディレクトリ内には各プログラム固有の環境変数設定の書かれたファイルたちが置かれている。僕の環境(CentOS5.6)だと、ディレクトリ内に以下のようなファイルたちがあった。

colorls.csh cvs.sh glib2.sh krb5-devel.sh krb5-workstation.sh lang.sh less.sh vim.sh
colorls.sh glib2.csh krb5-devel.csh krb5-workstation.csh lang.csh less.csh vim.csh which-2.sh

vimを見てみたら alias vi=vim みたいな設定が書かれていた。

~/.bash_profile

/etc/profileは全ユーザー共通のものだったが、ここからは/home/hogeとか各ユーザーhomeディレクトリ以下にある設定ファイルとなる。この.bash_profileは各ユーザーがログインしたときに1度だけ読み込まれるファイル。ここに各ユーザーごとの環境変数が設定される。/binとかのパスもここで通してある。

~/.bash_login

.bash_profileが存在しなかったときに読み込まれるファイル。内容としては同じようなものだと思うけど、自分の環境下では未確認。

~/.profile

.bash_profileも.bash_loginも存在しなかったときに読み込まれるファイル。内容としては云々以下略。

~/.bash_history

historyコマンド叩いたときに出てくる奴。最近実行したコマンドがこの中に記録される。

~/.bash_logout

ログアウト時に読み込まれる。デフォルトだとclearコマンドが書かれているだけ。ちなみにclearコマンドは表示されてる文字列をクリアしてプロンプトを一番上にもってくる。

~/.bashrc

bashコマンドなどでログイン時以外でbashを起動したときに読み込まれるファイル。

読み込む順番

homeディレクトリ内にある、.bash_profile, .bash_login, .profileは、この順番で検索して最初に見つかったものが読み込まれる。

/etc/skel とは

ユーザー作成時に/home以下にそのユーザーのホームディレクトリも作成され、その中にデフォルトの.bash_profile, .bash_logout, .bashrcが放り込まれる。で、こいつらの元となるファイルは/etc/skel内にある。ls -a /etc/skel とかやるとわかる。もちろんどれもドットファイルなので-aオプションはつける。
なので、最初っからこの設定をさせておきたいんだけど、いちいちユーザー作成時に~/.bash_profileいじるの面倒!とかって時にはこの元となるファイルに書き込んでおけばOK。