(Linuxの基本3)Bashの基本

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/bashrcBashを起動するたびに実行され、Bashの基本的な設定が記述されている。(redhat系)
/etc/bash.bashrc〃(Debian系、ArchLinuxもこっち)

(2)ユーザごとの設定

ユーザが作成されるごとに /etc/skel に保存されている「スケルトンファイル(骨格となるファイル)」がそのユーザのホームディレクトリにコピーされる。

ファイル名内容
~/.bash_profileログイン時に1回だけ実行。ユーザごとの環境に関する設定を記述されている
~/.bash_logoutログアウト時に実行される
~/.bashrcBashを起動するたびに実行される。通常、シェルごとの設定を記述する。

ディストリビューションによっては、~/.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 エイリアス名 を実行すればよい。

第4回目に続きます

コメント

タイトルとURLをコピーしました