MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/19 おすすめ情報に 『 【資格取得者速報】 Aさん 「 Microsoft Security, Compliance, and Identity Fundamentals」 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


【Linux】bashシェル
profile-img
投稿者: thoriさん
投稿日:2021/08/31 16:31
更新日:2021/08/31 17:51
like-img
分類
技術
テクノロジー
Unix系サーバ
キャリア
運用・保守
投稿内容

Linuxの資格試験でも重要なbashシェルについて紹介します。


#シェルの種類

人がコンピュータのOSとやり取りをする上で仲介役を担うのがシェルといわれるものです。


そのシェルはいくつかの種類に分けられています。

・sh

・bash

・ksh

・zsh

etc...


今回はその中のbashについて深堀して色々調べてみました。


#bashシェルとは

bashはLinuxの標準シェルとして採用されています。


viエディタなどでテキストにシェルスクリプトとして処理内容を記述して、その記述内容を読み込んで実行されます。


処理内容はコマンドの別名を定義するaliasや、条件分岐を行うifなどがあり、プログラミングのような処理を行うことができます。


- ログインシェルとインタラクティブシェル


bashはログインシェルかインタラクティブかによって読み込まれるファイルが変化します。


ログインシェルというのは/etc/passwdに記載、設定され、ユーザーがログインしたときに起動します。

インタラクティブシェルは対話型と言われ、ログインシェルからは別のプロセスで起動します。


ログインシェルの場合、以下の順にファイルが存在するか判別し、存在すれば実行されます。

/etc/profile → ~/.bash_profile → ~/.bash_login → ~/.profile


インタラクティブシェルの場合は、~/.bashrcを読み込みます。


ログインシェルの場合でも非インタラクティブの場合は環境変数でパスを通しているファイルが読み込まれます。


#bashシェルの記述とファイル読み込みの流れ


インタラクティブシェルの場合を例に出します。


.bashrcの中身

```

alias rm='rm -i'

```

エイリアスを設定していて、rmコマンドでrm -iと同義のコマンドが打てるようにしています。


~/.bashrcが読み込まれた後は/etc/bashrcの読み込む設定があるかどうかを判別します。


なのでインタラクティブシェルが起動された場合は、~/.bashrc経由で/etc/bashrcによる初期化が行われます。


ログインシェルの場合で読み込まれるのは/etc/profileを読み込んだ後に、~/.bash_profile→~/.bashrcで実行されます。

/etc/bashrcはインタラクティブシェルの場合にしか読み込まれないようになっています。(2重読み込みになるため)


このような感じでログインシェルかインタラクティブシェルかによって読み込まれるファイルが違ってきます。

備忘録としてまとめておきます。


- ログインシェルの場合

/etc/profile:最初に読まれる

~/.bash_profile:存在したら読まれる

~/.bash_login:存在したら読まれる

~/.profile:存在したら読まれる

~/.bashrc:読み込む設定があれば読まれる


- インタラクティブシェルの場合

~/.bashrc:bash起動時に読まれる

/etc/bashrc:.bashrcの読み取り後に実行、ログインシェル起動の場合は読み込まれない


■参考

http://itref.fc2web.com/unix/shell.html

https://blog1.mammb.com/entry/

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3