のらブログ

sadanoraが思ったことを書きます

【Linux】シェル変数

  • シェル変数とはbash内部で使用される変数
  • 数値や文字列を保存して様々な値を設定することができる

変数の設定

書式

<変数名>=<>
  • 値にスペースを含む場合は'または"で囲む
  • コマンド見做されエラーとなるため=の前後にスペースを入れない。

シェル変数var1に値を設定する例

$ var1='test variable'
  • 設定した変数は<$変数名>で参照できる シェル変数var1を参照する例
$ echo $var1
test variable

PS1 プロンプトの設定

シェル変数を利用してプロンプトを変えてみる

$ ps1='bash> '
bash

意味が定義されている記号をPS1に設定するとそれぞれの値に置き換わって表示される

プロンプトで利用できる記号一覧

記号 内容
\d 「曜日 月 日」という形式の日付
\h ホスト名のうち、最初の.までの部分
\H ホスト名
\n 改行
\t HH:MM:SS形式の現在時刻
\u ユーザー名
\w カレントディレクト
\W カレントディレクトリの末尾のディレクトリ名
\$ ルートユーザーは# それ以外のユーザーは$
\ \

PATH コマンド検索パス

  • よく扱うPATHも当然シェル変数

シェル変数PATHの内容

$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin

LANG ロケール

  • 言語や日付などはロケールを基準に切り替えられる

日本語のUTF-8環境の場合

$ echo $LANG
ja_JP.UTF-8

localeコマンドに-aオプションをつけると利用可能なロケール一覧を表示できる

$ locale -a
C
POSIX
aa_DJ
・
・
・

ロケールの変更 アメリカ英語環境への切替例

$ LANG=en_US.UTF-8

その他のシェル変数

コマンド履歴に関するシェル変数

シェル変数名 内容
HISTFILE コマンドライン履歴を保存するファイル名。デフォルト値は/.bash_history
HISTFILESIZE 履歴ファイルに保存するコマンドライン履歴の最大行数
HISTSIZE コマンドライン履歴を保存する最大行数

シェルの現在の状態を知るための変数

シェル変数名 内容
HOME ホームディレクト
SHELL ログインシェルのパス
PWD カレントディレクト