
第9回 bashの便利な機能を使いこなそう
関野史朗
2002/3/12
bashのカスタマイズ
bashは、組み込みの「シェル変数」を使ってその動作をある程度変更できます。シェル変数の設定方法は、
$ HISTSIZE=100 |
のように、変数名に数値あるいは文字列を代入する形になります。
組み込み変数にどんなものがあるか、ざっと見てみましょう。
■ヒストリ関係
・HISTCMD
現在のコマンドのヒストリ番号。
・HISTCONTROL
ignorespace:スペースやタブで始まる行をヒストリに記録しない
ignoredups:入力が最後のヒストリと一致する場合に記録しない
ignoreboth:ignorespaceとignoredups両方を指定
指定なし:すべての入力をヒストリに記録する
・HISTFILE
ヒストリファイル名。
例:HISTFILE=/home/username/.bash_history
・HISTFILESIZE
ヒストリファイルに格納するヒストリの最大数。
・HISTSIZE
ヒストリとして記録されるコマンドの最大数。HISTSIZEの値を小さくした場合、過去のヒストリは切り捨てられる。例えば、値を100から50に変更すると、残るのは最近の50行までとなる。
■メール関係
・MAIL
メールの到着を確認する対象となるべきファイルの名前。
例:MAIL="/var/spool/mail/$USER"
・MAILCHECK
メールをチェックする間隔。単位は秒。
・MAILPATH
メールの到着を確認する対象となるべきファイルの名前。複数のファイル名を「:」(コロン)で区切って指定できる。
例:MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_
has mail!"'
■プロンプト関係
・PS1
通常のプロンプト。いくつかの特殊文字が使える。
|
特殊文字
|
意味
|
|
| \d | 日付 | |
| \h | ホスト名 | |
| \n | 改行 | |
| \s | シェルの名前 | |
| \t | 時間 | |
| \u | ユーザー名 | |
| \w | ワークディレクトリ | |
| \W | ワークディレクトリのベース名 | |
| \# | コマンド番号 | |
| \! | ヒストリ番号 | |
| \$ | 有効なUIDが0なら「#」、それ以外なら「$」 | |
| \nnn | 8進数での文字コード | |
| \\ | バックスラッシュそのもの | |
| \[ | 非表示文字の開始 | |
| \] | 非表示文字の終了 |
例:以下、「PS1=xxx」が入力部分。
$ PS1="\d " |
・PS2
継続行に表示されるプロンプト(セカンダリプロンプト)。forコマンドでdo〜doneの部分を入力するときなどに使われる。
■パス関係
・PATH
コマンド検索パス。「:」で区切った複数のパス名を記述する。
・CDPATH
cdコマンドに対する候補を「:」で区切って複数記述する。
■そのほか参照用
・HOME
ホームディレクトリ。
・SECONDS
シェルが呼び出されてからの秒数。
・BASH
起動しているシェルの実行可能ファイルへのパス名。
・BASH_VERSION
起動しているbashのバージョン番号。
・PWD
カレントディレクトリ。
・OLDPATH
cdコマンド実行前のディレクトリ。
■bashの設定ファイル
これらのシェル変数をいちいちタイプして設定するのは面倒です。そこで、普通は~/.bashrcや~/.bash_profileといったファイルに書き込んでおきます(編注)。
| 編注:以下に見るように、/etc/profileが最初に読み込まれるファイルだが、このファイルの内容は全ユーザーに適用されるため、一般ユーザーが変更することはできない。ユーザーごとの設定は、ホームディレクトリのドットファイルを使用する。 |
![]() |
| ログイン時に読み込まれる設定ファイル |
bashの関連ファイルには、次のようなものがあります。
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
- ~/.bashrc
- ~/.bash_logout
ユーザーがログインすると、まず/etc/profileを読み込み、次に~/.bash_profileを読み込みます。~/.bash_profileが存在しない場合は、~/.bash_loginを読み込みます。~/.bash_loginもない場合は~/.profileを読み込みます。~/.bash_logoutは、ログアウト時に読み込まれるファイルです。
.bashrcは、プロセスとしてbashを起動したときに読み込まれます。つまり、いったんログインした後でも、
$ bash |
などとして新しくbashを起動するたびに読み込まれるというわけです。
どれも単なるテキストファイルですから、エディタで簡単に編集できます。しかし、編集しただけでは変更が反映されません。いったんログアウトしてもう1度ログインし直すか、sourceコマンドを使って、
$ source .bash_profile |
や
$ source .bashrc |
とする必要があります。
.bash_profileと.bashrcの使い分けですが、ログイン時に一度設定すればいいものは前者に、bashを起動するたびに設定する必要のあるものは後者にするのが原則です。もっとも、私の場合はどちらも同じなので、.bash_profileの内容は
source .bashrc |
という1行しかありません。
|
2/2
|
|
| Index | |
| Windowsユーザーに教えるLinuxの常識 | |
| コマンドに別の名前を付けて使いやすく ファイル名補完でタイプの手間とミスを減らす ワイルドカードで複数ファイルを一括指定 過去に入力したコマンドを実行する |
|
| bashのカスタマイズ bashの設定ファイル |
|
| 連載 Windowsユーザーに教える Linuxの常識 |
| Linux Squareフォーラム Linux/システム学習関連記事 |
| 連載:Windowsユーザーに教えるLinuxの常識(全12回) Windowsのセオリーが通用しないLinux。Linux初心者向けに、LinuxというOSの考え方/常識をゼロから伝授! |
|
| 連載:LFSで作って学ぶLinuxの仕組み(全4回) 管理者(root)は、何をしなければならないのか? 管理に際して検討すべきことは? 管理のための技術とは? など、駆け出し管理者のための考え方や方法論を検討する |
|
| 連載:Linux管理者への道(全8回) 「Linux From Scratch」というシンプルなLinuxをインストール&環境構築する作業を通して、LinuxがOSとして機能するための仕組みや設定を見直そう |
|
| Linux Squareフォーラム全記事インデックス |
|
TechTargetジャパン
- エラーメッセージをどう扱うか? (2012/2/2)
今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します - ファイルのアップロードを制限する (2012/1/30)
HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です - OSに付属するシェルスクリプトを読んで技術を盗む (2012/1/27)
シェルスクリプトマスターに近づくには、他人から技術を盗まなければならない。OS付属のスクリプトから技術を盗もう - iOSで使えるVimが登場! その姿に迫る (2012/1/25)
2012年を迎えてすぐ、iOS向けのVimが登場しました。PC向けのVimとはどのように違い、どういう特徴があるのでしょうか
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

