bashの基礎
- シェルとはなにか
ユーザーのコマンドラインをOSの命令に変換するためのもの
- bashの使用法
- ユーザーインターフェイスとしての使用
- プログラミング環境としての使用
- ユーザーインターフェイスとしての使用
-
bash
GNUプロジェクトで使用するために作成されたもの
システムにbashが含まれているか確認する方法
$ echo $SHELL
/bin/bashが返ってくる.
bashを起動させるには
$ bash
bash-3.1$
をすればよい.
bashがどのディレクトリにインストールされているか調べる方法
$ grep bash /etc/passwd | awk -F: '{print $7}' | sort -u
を入力すると/bin/bashが返ってくる.
bashをログインシェルとして設定する方法
$ chsh bash-name(grepコマンドで表示された名前を指定)
-
対話形式でのシェルの使用
対話形式で使用するにはログインセッションを張ればよい.ログインセッション
ログインしたときにはられる.
exit or logout or Ctrl+Dで切断
ログインセッションが張られている間はコマンドラインを入力することになる. -
ファイル
- 通常ファイル
- 実行可能ファイル(プログラムとも呼ばれ、コマンドとして呼び出される)
- ワイルドカード
- 通常ファイル
ワイルドカード | 一致対象 |
---|---|
? | 任意の1文字 |
* | 任意の文字列 |
[set] | setに含まれる文字 |
[!set] | setに含まれない文字 |
- 標準入出力
ユーティリティ | 目的 |
---|---|
cat | 入力を出力にコピー |
grep | 文字列を検索 |
sort | 行を並べ替える |
cut | 列を取り出す |
sed | 編集操作を実行する |
tr | 文字を他の文字に置換 |
バックグラウンドジョブ
シェルでは1つのログインセッションで同時に複数のコマンドを走らせることができる
バックグラウンドで複数のコマンドを走らせるとき、優先度を考える必要がある
nice コマンド名
を使うと優先度を下げることができるコントロールキー
コントロールキー | stty名 | 機能 |
---|---|---|
Ctrl+C | intr | コマンドを中止する |
Ctrl+D | eof | 入力を終了 |
Ctrl+\ | quit | コマンドを中止する |
Ctrl+S | stop | 画面への出力を停止 |
Ctrl+Q | 画面への出力を開始 | |
Ctrl+? | erase | 最後の文字を削除 |
Ctrl+U | kill | コマンドライン全体を削除 |
Ctrl+Z | susp | コマンドを一時停止 |
コマンドライン編集
- emacsモード
- viモード
編集モードを切り替える方法
$ set -o emacs
または
$ set -o vi
環境のカスタマイズ
.bash_profile / .bash_logout / .bashrc
.bash_prolile
bashはシステムにログインするたびにこのファイルを読み込み、定義されているコマンドを自校する
エイリアス
.bash_profileにalias ''=''
と指定することができる
長いPASSを短く指定することもできる
historyコマンドを利用したときに日時を追加する
bash-3.2$ HISTTIMEFORMAT="%y/%m/%d %T "
bash-3.2$ history
...
501 18/10/24 23:06:20 HISTTIMEFORMAT="%y/%m/%d %T "
502 18/10/24 23:06:23 history
シェルスクリプト
シェルスクリプトの実行
$ source script-name
関数を定義する形式
function <関数>{
<シェルコマンド>
}
または
<関数>(){
<シェルコマンド>
}
関数定義の削除
$ unset -f <関数>
コマンドの優先順位
- エイリアス
- function
- 関数
- 組み込みシェル
- スクリプト、実行可能ファイル
[参考]入門bash3