Windows Subsystem for Linuxガイド 第40回 Bashのヒストリ機能 その2「設定編」
マイナビニュース / 2024年10月16日 17時56分
前回の続きで、bashのヒストリ関連の機能を解説する。今回は、ヒストリ機能関連のコマンドとbashのヒストリ機能設定に関してである。
ヒストリ関連コマンド
ヒストリ関連のコマンドとしては、「fc」および「history」の2つがある。なお、どちらもbashの組み込みコマンド(builtins)であり、実行ファイルは存在しない。基本的な使い方はbuiltins manページ(あるいは、man fcやman history)で調べることができる。
historyはその名前の通り履歴リストの表示や制御を行うためのコマンド(表01)。ヒストリのリスト表示やファイルへの保存、履歴項目の追加や削除といった作業を行うことができる。とりあえず、履歴リストを見る、検索するなどは、historyコマンドで対応できる。
「-p」オプションは、履歴展開の結果を調べたい場合に使う。このオプションを付けたとき、単に履歴展開されたコマンドが表示されるだけで、このコマンド自体、履歴リストに入らない。ただし、コマンドラインはすべて実行前に履歴展開が行われるため、引数はシングルクオートでくくる必要がある。履歴展開の"p"修飾子と同じものだ。なお、スペースで区切った引数は出力時には、個別の行として出力される。
「-a」、「-c」、「-r」オプションは、履歴リストの保存、クリア、再読み込みを実行する。
fcコマンドは、Fixコマンドと呼ばれており、簡単にいうと、ヒストリエントリから複数のコマンドを連続実行するためのものだ(表02)。fcコマンドは、範囲指定した履歴リストをエディタに読み込む、編集後にエディタで保存して終了を選択すると、編集した履歴リストが実行される。
-lオプションは、履歴リストを表示するだけの場合に使い、-sオプションは単独のコマンドを履歴リストから選択(コマンド先頭文字列またはコマンド番号)して、実行するときに利用する。
ヒストリ機能を制御するためのシェル変数
ヒストリ機能に関しては、設定により動作を変更することができる。一部の設定では、シェル変数、あるいは環境変数を使う。表03は、ヒストリに関連のシェル変数、環境変数の一覧である。bashのシェル変数、Linuxの環境変数では、大文字小文字が区別されることに注意されたい。シェル変数を定義するには、
<変数名>=<値>
とする。
ヒストリ機能は、基本的にbashの機能なので、設定値としては、シェル変数でかまわない。ただし、環境変数として定義しても問題ない。ログインシェルで使っていると両者の間には、違いはない。子プロセスからさらにbashを起動するといった場合、環境変数であれば、子プロセスにも環境変数が継承されるが、シェル変数の場合、ログインシェルでの設定状態が継承されない場合がある。
この記事に関連するニュース
-
窓辺の小石 第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分
複数ページをまたぐ記事です
記事の最終ページでミッション達成してください