理工系研究者のための Mac OS X, Windows, Linux メモ
 
ホーム >> UNIX >> bash

bashメモ

  1. .bash_profile と .bashrc について
  2. シェル変数と環境変数
  3. 直前にいたディレクトリに移動
  4. スタックサイズの変更
  5. プロンプトの変更
  6. ヒストリーをインクリメンタルサーチ

.bash_profile と .bashrc について

作成日:2011/10/19

.bash_profile はbashがログインシェルとして起動されたときに一度だけ読み込まれるファイル。.bash_profileが存在せず、.bash_loginが存在すればこちらが読み込まれる。.bash_profileと.bash_loginがどちらも存在せず、.profileが存在すればこちらが読み込まれる。

.bask_profileは環境変数の設定などに用いると良い。例えばPATHの設定は.bash_profileに書いておくとよい。

一方で .bashrc はbashを起動するごとに読み込まれるファイル。aliasの設定や、シェル変数の設定に用いるとよい。ここにもしPATHの設定を書いてしまうと、

PATH=$PATH:/usr/local/bin
export PATH
のような設定が、bashを起動するたびに読み込まれて、同じ設定を繰り返してPATHがどんどん長くなってしまうので注意。

初めに起動するログインシェルにも.bashrcの内容を反映させたほうが良いので.bash_profileの最後には

source ~/.bashrc
と書いておく。

シェル変数と環境変数

作成日:2009.5.18

シェル変数はそのシェルでのみ使われる変数であり、環境変数はそのシェルから起動した他のプログラムでも利用可能な変数。設定ファイル .bashrc は bash が起動する度に読み込まれるので、bashで使う変数はこのファイルにシェル変数として書いておく。

環境変数を設定するには、まずシェル変数として値を設定し、

MYENV=foo
そしてそれをexportする。
export MYENV
まとめて
export MYENV=foo
と書いても同じになる。

登録されている環境変数を確認するにはprintenvまたはenvを用いる。

環境変数を削除するにはオプション-nを付けてexportを実行する。

export -n MYENV

シェル変数を確認するには、

set
コマンドを用いる。

シェル変数を削除するには

unset MYWORK
とする。

シェルから起動したアプリケーションでも使うような変数は環境変数にし、シェルでしか使わないような変数は.bashrcにシェル変数として書いておけば良い。

直前にいたディレクトリに移動

作成日:2004.1.15
$ cd -

スタックサイズの変更

作成日:2004.1.15

スタックサイズなどの情報をみるにはulimitを使います。

$ ulimit -a
core file size        (blocks, -c) 0
data seg size         (kbytes, -d) 6144
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) unlimited
max memory size       (kbytes, -m) unlimited
open files                    (-n) 256
pipe size          (512 bytes, -p) 1
stack size            (kbytes, -s) 8192
cpu time             (seconds, -t) unlimited
max user processes            (-u) 100
virtual memory        (kbytes, -v) 14336

スタックサイズ(stack size)が小さいと数値計算などで大きな配列を使うときなどに segmentation faults で落ちてしまうことがある。スタックサイズを変更するには、キロバイト単位で

$ ulimit -s 10000

とする。

プロンプトの変更

作成日:2004.1.15

環境変数PS1を変更する。例えば、

[directory: hostname]$ 
としたい場合は、
export PS1="[\W: \h]$ "
とする。

ヒストリーをインクリメンタルサーチ

作成日:2004.1.15
Control + r

でインクリメンタルサーチに入る。あとは過去に打ったコマンドを頭から打っていけばよい。