Bash起動環境

セッション

ユーザーがシェルを使用するたびに、シェルとのセッション (会話) が開かれます。

セッションにはログイン セッションと非ログイン セッションの 2 種類があり、ログイン シェル、非ログイン シェルとも呼ばれます。

ログインセッション

ログイン セッションは、ユーザーがシステムにログインした後にシステムによって開かれる元のセッションです。通常、ユーザーはログインするためにユーザー名とパスワードを入力する必要があります。

セッションにログインすると、通常、システム環境全体が初期化され、開始される初期化スクリプトは次のとおりです。

  • /etc/profile: すべてのユーザーのためのグローバル設定スクリプト。
  • /etc/profile.d ディレクトリ内のすべての .sh ファイル
  • ~/.bash_profile: ユーザーの個人設定スクリプト。スクリプトが存在する場合、スクリプトは実行されても実行されません。
  • ~/.bash_login: ~/.bash_profile が見つからない場合は、このスクリプト (C シェル初期化スクリプト) を実行してみます。スクリプトが存在する場合、スクリプトは実行されても実行されません。
  • ~/.profile: ~/.bash_profile~/.bash_login も見つからない場合は、このスクリプト (Bourne シェルおよび Korn シェルの初期化スクリプト) を読み込んでみてください。

Linux ディストリビューションが更新されると、「/etc/profile」などの「/etc」内のファイルも更新されるため、このファイルを直接変更しないでください。すべてのユーザーのログイン環境を変更したい場合は、/etc/profile.d ディレクトリに新しい .sh スクリプトを作成します。

個人のログイン環境を変更したい場合は、通常、~/.bash_profile に記述します。以下は典型的な .bash_profile ファイルです。

# .bash_profile
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
PATH=$PATH:$HOME/bin

SHELL=/bin/bash
MANPATH=/usr/man:/usr/X11/man
EDITOR=/usr/bin/vi
PS1='\h:\w\$ '
PS2='> '

if [ -f ~/.bashrc ];
. ~/.bashrc
フィ

エクスポートパス
エクスポートエディター

ご覧のとおり、このスクリプトはいくつかの基本的な環境変数を定義してから、~/.bashrc を実行します。

「bash」コマンドの「--login」パラメータは、ログインセッションによって実行されるスクリプトの実行を強制します。

$ bash --ログイン

「bash」コマンドの「--noprofile」パラメータは、上記のプロファイル スクリプトをスキップします。

$ bash --noprofile

非ログインセッション

非ログインセッションは、ユーザーがシステムに入った後に手動で作成されるセッションです。この時点では、環境は初期化されません。たとえば、コマンドラインで「bash」コマンドを実行すると、新しい非ログインセッションが作成されます。

非ログインセッションの初期化スクリプトは次のとおりです。

  • /etc/bash.bashrc: すべてのユーザーに有効です。
  • ~/.bashrc: 現在のユーザーに対してのみ有効です。

ユーザーにとって、通常は ~/.bashrc が最も重要なスクリプトです。非ログインセッションはデフォルトでこれを実行しますが、ログインセッションは通常、それを呼び出すことによって実行します。新しい Bash ウィンドウを作成するたびに、新しい非ログイン セッションを作成するのと同じなので、毎回 ~/.bashrc が実行されます。スクリプトの実行は、新しい非対話型 Bash 環境を作成するのと同じですが、この場合、~/.bashrc は呼び出されないことに注意してください。

「bash」コマンドの「--norc」パラメータは、非ログインセッションでの「~/.bashrc」スクリプトの実行を禁止できます。

$ bash --norc

「bash」コマンドの「--rcfile」パラメータは、「.bashrc」の代わりに別のスクリプトを指定します。

$ bash --rcfile testrc

.bash_logout

~/.bash_logout スクリプトは、セッションが終了するたびに実行され、通常、一時ファイルの削除や、このセッションでユーザーが費やした時間を記録するなど、何らかのクリーニングと記録作業を行うために使用されます。

終了時に実行するコマンドがない場合、このファイルは存在する必要はありません。

起動オプション

デバッグを容易にするために、Bash の起動時に起動パラメーターを追加できる場合があります。

  • -n: スクリプトを実行せず、構文エラーのみをチェックします。
  • -v: ステートメントの各行の結果を出力する前に、ステートメントの行が最初に出力されます。
  • -x: 各コマンドを処理する前に、まずコマンドを出力してからコマンドを実行します。
$ bash -n スクリプト名
$ bash -v スクリプト名
$ bash -x スクリプト名

キーボード バインディング

Bash では、ユーザーが独自のショートカット キーを定義できます。グローバル キーボード バインディング ファイルのデフォルトは /etc/inputrc です。ホーム ディレクトリに独自のキーボード バインディング ファイル .inputrc ファイルを作成できます。このファイルが定義されている場合は、グローバル バインディングが失われないように、次の行をファイルに追加する必要があります。

$include /etc/inputrc

.inputrc ファイル内のショートカット キーは次のように定義できます。 "\C-t":"pwd\n" は、Ctrl + t をバインドして pwd コマンドを実行することを意味します。


作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0