●エイリアス
コマンド | 説明 | 書式 | 主なオプション 補足 |
alias | コマンドの別名を定義 コマンドによく使うオプションをあわせて定義 複数のコマンドを組み合わせる などが可能 |
alias [エイリアス=コマンド] | 引数を指定しないと 現在登録されているエイリアスの一覧を表示 登録されているエイリアスを削除するには エイリアスの前に\(バックスラッシュ)を付けると |
●シェル関数
コマンド | 説明 | 書式 | 主なオプション 補足 |
function | 新しいコマンド(シェル関数)を定義 | function 関数名( ) { コマンド; } { の後ろと、 |
(例) function lsdir( ) { ls -l $1 | grep '^d' ; } とシェル関数 lsdir を定義すると lsdir /etc で、/etc以下のサブディレクトリが表示される ($1はlsdirコマンドに与えられる1番目の引数という意味) |
declare -f | 定義されているシェル関数を表示 | declare -f | setコマンドでは、 定義されている変数リストと 定義されているシェル関数を表示できる |
unset | 定義されているシェル関数を削除 | unset 関数名 | 変数の定義の削除と同様 |
●エイリアスとシェル関数の自動定義
エイリアスやシェル関数の定義が有効なのは、それを設定したシェル内のみ
新たなbashシェルを起動してからもそれらの定義を有効にしたい場合は、
下記のbashの各種設定ファイルによく使われるエイリアスやシェル関数、環境変数PATHをあらかじめ記述しておく
bash設定ファイル
/etc/bashrc | bash起動時(対話型シェル)に実行 全ユーザに適用される |
/etc/profile | ログイン時(ログインシェル)に実行 全ユーザに適用される |
~/.bashrc | bash起動時に実行 ユーザ毎に適用される |
~/.bash_profile | ログイン時に実行 ユーザ毎に適用される |
~/.bash_login | ~/.bash_profileが存在しない場合に実行 ユーザ毎に適用される |
~/.profile | ~/.bash_profileも~/.bash_loginも存在しない場合に実行 ユーザ毎に適用される |
~/.bash_logout | ログアウト時に実行 ユーザ毎に適用される |
ユーザがログイン時に実行されるシェルは一般的にログインシェルと呼ばれる
またbashコマンドからやX Window System上で端末エミュレータを起動した場合は、対話型シェルと呼ばれる
●環境変数とシェル変数
環境変数:
シェル自身とそのシェルから起動される全てのプロセス(コマンドや別のシェル)で有効になる変数
代表的な環境変数としては、
コマンドを検索するディレクトリリストを格納するPATH、
ユーザのホームディレクトリのフルパスを表すHOMEなど
シェル変数:
他のシェルやプログラムでは有効とならず、そのシェル内でのみ有効な変数
シェル変数をexportコマンドでエクスポートすることで環境変数とすることが出来る
bashシェルに備わっているスクリプト言語による簡単なプログラミング機能
●最も単純なシェルスクリプトとシェルスクリプトの実行
シェルスクリプトはテキストファイル中にコマンドを記述する形で作成する
-------サンプルのシェルスクリプト----------
#! /bin/bash ←インタープリタを指定
echo "sample script" ←この2行目以降がこのシェルスクリプトで実行されるコマンド
date
-----------------------------------------
一般的にシェルスクリプトは .sh という拡張子が付けられる
作成したシェルスクリプトを実行するには以下の方法がある
sourceコマンドを使用 (スクリプトファイルの読み取り権と スクリプトファイルが存在するディレクトリの実行権が必要) もしスクリプトファイルの実行権があれば、 |
source スクリプトファイル名 もしくは . スクリプトファイル名 |
新たにシェルを起動して実行 | bash スクリプトファイル名 |
実行アクセス権を設定してコマンドと同じように実行 | chmod u+x シェルスクリプト名 |
●引数と戻り値
シェルスクリプトでは引数や戻り値という機能も利用できる
引数:
シェルスクリプト内に「$1」「$2」「$3」・・・のように記述すると、
そのシェルスクリプトを実行するときに指定した引数と置き換えられる
戻り値:
コマンドやシェルスクリプトは処理の最後にシェルに対して戻り値を返し、変数「$?」に格納される
正常に終了した場合には0、正常に終了しなかった場合は0以外の数字が格納される
●条件分岐
条件分岐に使われるコマンドと制御文
コマンド・制御文 | 説明 | 書式 | 主なオプション 補足 |
test | ファイルの存在確認 | test 条件式 もしくは [ 条件式 ] |
(主なファイル条件) -d ディレクトリ: -e ファイル: -f ファイル: -r ファイル: -w ファイル: -x ファイル: (主な文字列条件) -n 文字列: 文字列1=文字列2: |
if/then/else | 基本的な条件分岐 | if 条件式 then コマンド1 [else コマンド2] fi |
条件式によくtestコマンドが使われる |
case/in/esac | 3つ以上の条件分岐 | case 変数 in パターン1) コマンド1 ;; パターン2) コマンド2 ;; (以下任意の数だけパターンを記述) esac |
●繰り返し
コマンド・制御文 | 説明 | 書式 | 主なオプション 補足 |
while/do/done | 条件による繰り返し | while 条件式 do コマンド done |
|
for/do/done | 要素による繰り返し | for 変数 [in 変数に代入する値のリスト] do コマンド done |
変数の前に$は付けない |