シェル環境のカスタマイズ方法
シェルのオプションを変更
オプション |
説明 |
emacs/vi |
シェルのキーバインドを emacs/vi 風に変更 |
nociobber |
既存ファイルへの上書きリダイレクトを無効 |
noglob |
ワイルドカードでのファイルの指定を無効 |
ignoreeof |
Ctr+Dキーに夜ログアウトを無効 |
setコマンド
- set(-o または +o)[シェルのオプション]
オプション |
説明 |
-o |
指定したシェルのオプションを有効化 |
+o |
指定したシェルのオプションを無効化 |
エイリアス
- コマンドの別名
- デフォルトで定義されているエイリアスもある
- 同名のコマンドがある時、エイリアスが優先
- エイリアスを無効して元のコマンドを使う時は、『(コマンド名)』
aliasコマンド
- エイリアスの定義や定義されたエイリアスを確認できる
- aliasエイリアス名='実行内容'
- 引数なしで実行すると、定義されたエイリアスを表示
シェルの設定ファイル
読み込むタイミング |
全てのユーザーが参照 |
ユーザーごとに参照 |
ログイン |
/etc/profile |
①~/.bash_profile ②~/.bash_login ③~/.profile |
Bashの起動 |
/etc/bash.bashrc (/etc/bashrc) |
~/.bashrc |
ログアウト |
|
~/.bash_logout |
コマンドの連続実行
構文 |
説明 |
コマンド1 ; コマンド2 |
コマンド1の実行後、コマンド2を実行 |
コマンド1 && コマンド2 |
コマンド1の実行が成功した後、コマンド2を実行 |
コマンド1‖コマンド2 |
コマンド1の実行が失敗した後、コマンド2を実行 |
シェルスクリプトの実行方法
シェルスクリプトとは?
- シェルが解釈できるコマンドが記述されているファイル
- シェルスクリプトを実行するとシェルスクリプト内に記述されたコマンドが実行される
実行コマンド |
必要な権限 |
実行環境 |
bashスクリプトファイル名 |
読み取り |
bashシェル |
source スクリプトファイル名 |
読み取り |
現在のシェル |
.スクリプトファイル名 |
読み取り |
現在のシェル |
./スクリプトファイル名 |
読み取り |
現在のシェル |
※PATHに登録されているディレクトリにスクリプトファイルがある場合、ファイル名だけで実行できる
shebang(シバン)
- スクリプトを解釈するシェルを指定できる
- 『#!』の後に、シェルを指定する
#!/bin/bash
echo 'Hello paiza'
echo{1..5}
シェルスクリプトで利用できる組み込み変数
組み込み変数 |
説明 |
$0 |
スクリプトファイル名 |
$n |
n番目の引数($1は1つ目の引数、$2は2つ目の引数・・・) |
$@ |
引数のスペース区切り |
$# |
引数の数 |
$? |
直前の処理の成否(成功は0, 失敗は0以外) |
$$ |
シェルのプロセスID |
exprコマンド
- 整数の四則演算等の計算結果を出力
- expr 数値1 演算子 数値2
条件式
- 変数やファイル、ディクトリなどが特定の条件を満たすかどうかを調べることができる
- [条件式]
- test 条件式
式 |
意味 |
-fファイル名 |
ファイルが存在 |
-dディクトリ名 |
ディクトリが存在 |
-eファイル/ディレクトリ名 |
ファイル・ディクトリが存在 |
-fファイル/ディレクトリ名 |
ファイル・ディクトリが読み取り可能 |
if文
if [ 条件式 ]
then
処理1
elif [ 条件式 ]
then
処理2
else
処理3
fi
case文
case 変数名 in
値1) 値1だった場合の処理;;
値2) 値2だった場合の処理;;
…
*) どの値にも合致しなかった場合の処理
esac
for文
for 変数名 in 値1 値2 … (値リスト)
do
繰り返す処理
done
while文
関数
- 引数に対しておこなう一連の処理をひとまとめにしたもの
- 引数のない関数も定義できる
trapコマンド
- 指定したシグナルが送られたときに、指定した処理をおこなう
シェルスクリプトのデバッグ
シェルスクリプトのデバッグ
- bash -v スクリプト名
- bash -x スクリプト名
シバンの後ろにオプションを指定
- #! /bin/bash/ -v
- #! /bin/bash/ -x
スクリプト内に set コマンドを設定する
- set -x (あるいは set -v) : デバッグ開始
- set +x (あるいは set +v) : デバッグ終了
オプション |
説明 |
-v |
実行するコマンドを出力 |
-x |
変数への代入など、処理の内容を出力 |
参考サイト
新・Linux入門編8(LinuC対策版): シェルおよびスクリプト