ホーム >> | UNIX >> | bash |
シェルスクリプトを使って、フォルダ名に01~20の付いたフォルダを一気に作成するには、次のようなシェルスクリプトを使うと良い。
#!/bin/bash for i in `seq 1 20` do if [ $i -lt 10 ] ; then str="0"$i else str=$i fi echo "mkdir folder-"$str mkdir folder-$str done
あるコマンドcommand1が失敗したときにだけ,command2を実行するには||を用いる。
$ command1 || command2
例えば,ディレクトリhoge1,・・・,hoge9が存在するか調べ,存在すればそのディレクトリの中にfuga.txtを作成するスクリプトは次のように書ける。
for i in `seq 1 9` do cd hoge$i || continue touch fuga.txt cd ../ done
.bash_profile はbashがログインシェルとして起動されたときに一度だけ読み込まれるファイル。.bash_profileが存在せず、.bash_loginが存在すればこちらが読み込まれる。.bash_profileと.bash_loginがどちらも存在せず、.profileが存在すればこちらが読み込まれる。
.bash_profileには環境変数の設定などに用いると良い。例えばPATHの設定は.bash_profileに書いておくとよい。
一方で .bashrc はbashを起動するごとに読み込まれるファイル。aliasの設定や、シェル変数の設定に用いるとよい。ここにもしPATHの設定を書いてしまうと、
PATH=$PATH:/usr/local/bin export PATHのような設定が、bashを起動するたびに読み込まれて、同じ設定を繰り返してPATHがどんどん長くなってしまう。
ログインシェルにも.bashrcの内容を反映させたほうが良いので.bash_profileの最後には
source ~/.bashrcと書いておくとよい。
シェル変数はそのシェルでのみ使われる変数であり、環境変数はそのシェルから起動した他のプログラムでも利用可能な変数。設定ファイル .bashrc は bash が起動する度に読み込まれるので、bashで使う変数はこのファイルにシェル変数として書いておく。
環境変数を設定するには、まずシェル変数として値を設定し、
MYENV=fooそしてそれをexportする。
export MYENVまとめて
export MYENV=fooと書いても同じになる。
登録されている環境変数を確認するにはprintenvまたはenvを用いる。
環境変数を削除するにはオプション-nを付けてexportを実行する。
export -n MYENV
シェル変数を確認するには、
setコマンドを用いる。
シェル変数を削除するには
unset MYWORKとする。 シェルから起動したアプリケーションでも使うような変数は環境変数にし、シェルでしか使わないような変数は.bashrcにシェル変数として書いておけば良い。
$ cd -
スタックサイズなどの情報をみるには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
とする。
環境変数PS1を変更する。例えば、
[directory: hostname]$としたい場合は、
export PS1="[\W: \h]$ "とする。
Control + r
でインクリメンタルサーチに入る。あとは過去に打ったコマンドを頭から打っていけばよい。