1.Bash は Linuxのシェルの中でも最も標準的なシェル
Bashという名前はBourne-again shellの頭字語であり、Bashの置換対象であるBourne Shell[11]と、現代アメリカのキリスト教において精神的な再生を意味する “born again”(新生)に引っ掛けた駄洒落である
https://ja.wikipedia.org/wiki/Bash
2.Bash の設定
Bashは、ログイン時や、シェル起動時に様々な環境構成ファイルを実行し自分を設定していく。
(1)共通の設定
ファイル名 | 内容 |
/etc/profile | ログイン時に1回だけ実行。シェルに必要とされる基本的な設定が記述されている。 |
/etc/bashrc | Bashを起動するたびに実行され、Bashの基本的な設定が記述されている。(redhat系) |
/etc/bash.bashrc | 〃(Debian系、ArchLinuxもこっち) |
(2)ユーザごとの設定
ユーザが作成されるごとに /etc/skel に保存されている「スケルトンファイル(骨格となるファイル)」がそのユーザのホームディレクトリにコピーされる。
ファイル名 | 内容 |
~/.bash_profile | ログイン時に1回だけ実行。ユーザごとの環境に関する設定を記述されている |
~/.bash_logout | ログアウト時に実行される |
~/.bashrc | Bashを起動するたびに実行される。通常、シェルごとの設定を記述する。 |
ディストリビューションによっては、~/.bash_profileがない場合には~/.bash_login これも存在しない場合は~/.profile というファイルを実行することになっている。
(3)読み込む順序
ログイン | 端末起動時(注) | ログアウト時 | ||
/etc/profile ⇒ | ~/.bash_profile | /etc/bash.bashrc ⇒ | ~/.bashrc | ~/.bash_logout |
注;端末イコールBashではないが、インタラクティブシェルとして端末イコールBashの起動と理解するのがわかりやすいと思う。
(4)代表的な記載例
使用環境は全体のことだからログインしたときに実行させる。したがってこれらのことは ~/.bash_profileに記載する。
これに対し、Bash(コマンド)のことは、端末起動したときだけだから ~/.bashrcに記載する、って覚えれば良いかな!?
□ 例1(PATH編)
$ cat ~/.bash_profile
PATH="$PATH":/home/user/script
環境変数の PATH に ユーザ独自のディレクトリを追加した例で、既に存在する “$PATH”に :(区切り文字)新たに加えたディレクトリ
の書式で記載する。
$ env ← 設定されたPATHの表示
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/user/script
□ 例2(エイリアス編)
$ cat ~/.bashrc
alias ls='ls -al --color=auto'
ls コマンドのオプション -al をつけないで実行できるように aliasコマンドで置き換えた例。
$ ls の実行だけで表示が変更されている。
drwx------ 40 user user 4096 Sep 28 14:51 .
drwxr-xr-x 4 root root 4096 Oct 26 2017 ..
-rw-r--r-- 1 user user 210081 Feb 1 2018 2018020116:55:05.jpg
-rw-r--r-- 1 user user 771502 Feb 1 2018 2018020116:55:18.jpg
drwxr-xr-x 7 user user 4096 May 12 20:47 app
(以下略)
書式は、alias alias名=呼び出すコマンド
でもこれでは、本来の ls コマンドと alias としての ls コマンドの区別がつかなくなるが、
$ type ls
ls is aliased to `ls -al --color=auto'
alias を解除するときは、unalias エイリアス名 を実行すればよい。
コメント