Windows Subsystem for Linuxガイド 第40回 Bashのヒストリ機能 その2「設定編」
マイナビニュース / 2024年10月16日 17時56分
子プロセスで実行するシェルでもログインシェルと同様のヒストリ機能を使いたい場合、環境変数として定義し、ログイン時に一回だけ実行される「~/.profile」、「~/.bashprofile」、「~/.bashlogin」のどれかを使う。Linuxディストリビューションにより違いがある。
「~/.bashrc」は、bashが起動するときに毎回読み込まれるため、ここで設定すると、親プロセスの状態に関わりなく、毎回同じ設定値が維持されてしまう。
環境変数を使うなら、ログイン時に1回だけ実行される「~/.profile」などに記述する。このようにすることで、たとえば親プロセスで手動で環境変数を変更した場合、それが子プロセスにも継承される。
環境変数として定義する場合、exportコマンドを使い
export <変数名>=<値>
とし、環境変数、シェル変数を消去する場合には、
unset <変数名>
とする。
ヒストリ機能のシェル変数である「HISTTIMEFORMAT」を設定すると、履歴リストファイルに日時が記録されるようになる。設定には「%F %T 」の様な日時の書式パターンを指定する。このとき、履歴リストファイルはコマンドと日時が2行で記録されるため、HISTFILESIZEで指定された行数の半分のイベントしか記録できなくなる。
シェルオプションによるヒストリ機能の設定
シェルオプションは、shoptコマンドを使い、以下の構文で有効化する。
shopt -s <シェルオプション名>
解除するには、
shopt -u <シェルオプション名>
とする。
シェルオプションは、デフォルトでは、すべて解除(無効)に設定されている。(表04)にヒストリ機能関連のシェルオプションを示す。
このうち、ヒストリ機能の動作に大きく関係するのが「histreedit」と「histverify」だ。前者は、ヒストリ置換が失敗した場合にコマンドラインを編集状態にする。たとえば、「!xyz」としてxyzで始まるコマンドを使ったイベントを参照しようとして、履歴リストに該当するものがなかったとき、コマンドラインは再度編集状態となる。
これに対して「histverify」は、ヒストリ置換の結果を即座に実行せず、置換したコマンドラインを一回、編集状態にする。コマンドラインを編集したあとEnterキーで実行できる。
どちらも結果を見てから実行できるため、ヒストリ置換に慣れない段階では設定しておくと実行前に確認できるので安心感がある。
この記事に関連するニュース
-
窓辺の小石 第187回 Secure Shell Encounter
マイナビニュース / 2024年10月11日 15時1分
-
窓辺の小石 第186回 Secure Shell Explorers
マイナビニュース / 2024年10月4日 13時36分
-
新しいWindowsサンドボックスではコマンドラインからの制御が可能に
ASCII.jp / 2024年9月29日 10時0分
-
Windows Subsystem for Linuxガイド 第39回 Bashのヒストリ機能 その1「利用編」
マイナビニュース / 2024年9月24日 12時24分
-
ゼロからはじめるGo言語 第21回 正規表現でExcelのセルを検索するツールを作ろう
マイナビニュース / 2024年9月18日 12時59分
ランキング
-
1新型iPad mini、性能上がり6000円値下げ 「お買い得」「以前の価格に戻った」などの声
iza(イザ!) / 2024年10月16日 13時8分
-
2麻酔の「娯楽やいたずら」目的での使用に日本麻酔科学会が声明 「誤った使用を強く非難」
ねとらぼ / 2024年10月16日 18時10分
-
3グーグル「Android 15」正式リリース、Pixelで利用可能に 盗難防止機能を強化
ASCII.jp / 2024年10月16日 7時0分
-
410月の「Google Pixel」新機能、音声消しゴムマジック強化/水中撮影の向上など
マイナビニュース / 2024年10月16日 22時41分
-
5突然のApple新製品、前日に“ポチって”しまった型落ち製品は返品できる?
ITmedia Mobile / 2024年10月16日 20時0分
複数ページをまたぐ記事です
記事の最終ページでミッション達成してください