このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:シェル変数:その他のシェル変数

 シェル変数は、シェルの動作や環境を制御するために重要な役割を果たします。これまでに基本的なシェル変数について学びましたが、bashには他にも多くの特別な意味を持つシェル変数が存在します。

 ここでは、すべてのシェル変数を網羅することはできませんが、特によく使われるものをいくつか紹介します。これらの変数を理解し活用することで、シェル操作がより効率的かつ便利になります。

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

 コマンドライン履歴は、過去に入力したコマンドを再利用できる便利な機能です。以下のシェル変数を設定することで、履歴の保存方法や保存数を制御できます。

シェル変数一覧

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

ポイント

  • HISTFILESIZEHISTSIZE のデフォルト値はUbuntuの場合、 1000 ですが、より多くの履歴を保存したい場合は、これらの値を大きく設定することをおすすめします。
  • 例:HISTSIZE=10000 と設定すれば、最大で10000行のコマンド履歴を保持します。

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

 シェルの状態や環境に関する情報は、以下のシェル変数で取得できます。これらの変数は、シェルによって自動的に設定されており、ユーザーが値を変更することは通常ありません。

シェル変数一覧

シェル変数名内容
HOMEホームディレクトリのパス
SHELLログインシェルのパス
PWDカレントディレクトリ(現在のディレクトリ)のパス
シェルの現在の状態を知るためのシェル変数

活用例:

ホームディレクトリ内のディレクトリに移動する際、$HOME を使用してパスを指定できます。

user01@ubuntu:~$ cd $HOME/work
user01@ubuntu:~/work$ pwd
/home/user01/work

これは cd ~/work と同じ動作です。

その他のシェル変数

 ここで紹介した以外にも、bashには多数のシェル変数が存在します。例えば、以下のような変数があります。

その他のシェル変数一覧

シェル変数名内容
OLDPWD直前のカレントディレクトリのパス
UID現在のユーザーのユーザーID
HOSTNAMEホスト名(マシン名)
IFSフィールド区切り文字(Internal Field Separator)
PS1プライマリプロンプトの表示形式
その他のシェル変数一覧

活用例:

OLDPWD を使用して、直前のディレクトリに戻ることができます。

user01@ubuntu:~/work$ cd /var/log
user01@ubuntu:/var/log$ cd $OLDPWD
user01@ubuntu:~/work$

まとめ

  • bashには、シェルの動作や環境情報を提供する多くのシェル変数が存在します。
  • コマンド履歴に関する変数(HISTFILEHISTFILESIZEHISTSIZE)を設定することで、履歴管理をカスタマイズできます。
  • シェルの状態を知るための変数(HOMESHELLPWD)は、スクリプトやコマンドラインで活用できます。
  • これらのシェル変数を理解し適切に活用することで、シェル操作がより効率的になります。

 bashのシェル変数について詳しく知りたい場合は、bashのマニュアルの「Shell Variables(シェル変数)」セクションを参照してください。そこで多くのシェル変数が紹介されています。