【bash】設定・組み込み変数
bash設定ファイル
bashにはログイン時やbashシェル実行時に読み込まれる設定ファイルが存在する。いくつか種類や読み込まれる順番があるのでここで見ていく。
ファイルパス | 概要 |
---|---|
/etc/profile | 全ユーザのログイン時に読み込むデフォルトの設定ファイル。 |
~/.bash_profile | ログイン時に一番最初に読み込まれるファイル。ログインシェルだけが読み込み、サブシェルは.bashrcから設定を読み込むためログインシェルとサブシェルでコマンドを分けることができる。 |
~/.bash_login | Cシェルの.loginに由来する。.bash_profileが存在しない場合に読み込まれる。 |
~/.profile | BourneシェルとKornシェルの.profileに由来する。.bash_profileも.bash_loginも存在しない場合に読み込まれる。 |
~/.bashrc | bashを実行する際に読み込まれる設定ファイル。 |
組み込み変数
一般的に知られるUNIXの組み込み変数のうち、気になったものをピックアップ。
変数名 | 概要 |
---|---|
HISTCMD | 現在のコマンドの履歴番号。 |
HISTFILE | コマンド履歴が保存される履歴ファイル。 |
HISTFILESIZE | 履歴リストに保存するコマンドラインの最大数。 |
HISTSIZE | コマンド履歴に保存するコマンドの最大数。 |
HISTTIMEFORMAT | historyコマンド実行時に表示されるタイムスタンプフォーマット指定。 |
FCEDIT | fcコマンドで使用するエディタのパス。 |
PS1 | プライマリプロンプト文と呼ばれるシェルプロンプト。プロンプトの表示名を変更できる。 |
CDPATH | cdコマンド実行時にサブディレクトリを検索するパス。 カレントディレクトリ以下に移動対象が存在しない場合、CDPATHに設定されたパス以下を探しにいく。 |
OLDPWD | 最後のcdコマンドが実行される前のディレクトリ。 |
IFS | 項目の区切り記号で、デフォルトは半角スペース。echo "$*" などで区切りを「,」にしたい場合、IFS=","にすれば変更可能。 |
PS1設定
使いそうなものだけピックアップ。
コマンド | 概要 |
---|---|
\A | 「HH:MM」表記(24時間表記)での現在時刻。 |
\T | 「HH:MM:SS」表記(12時間表記)での現在時刻。 |
\t | 「HH:MM:SS」表記(24時間表記)での現在時刻。 |
\@ | 「午前/午後」付の12時間表記での現在時刻。 |
\d | 「曜日、月、日」表記での日付。 |
\e | ASCIIエスケープ記号。 |
\H | ホスト名。 |
\h | 最初の.までのホスト名。 |
\n | 改行。 |
\s | シェル名。 |
\u | ユーザ名。 |
\w | 現在の作業ディレクトリ。 |
\W | 現在の作業ディレクトリのベース名。 |
# | 現在のコマンドのコマンド番号。 |
\$ | 実行ユーザIDが0であれば#、それ以外は$を表示。 |