こんにちは。よっしーです(^^)
今日は、bashにおける書き方についてご紹介します。
背景
bashにおける書き方について調査する機会がありましたので、その備忘として残しています。
.inputrcについて
inputrc
は、GNU Readlineライブラリが使用する設定ファイルです。このライブラリは、さまざまなUnixやUnix系システムのプログラムで、コマンドライン編集や履歴の管理などの機能を提供します。
inputrc
ファイルは、ユーザーがReadlineの動作をカスタマイズするために使用されます。このファイルには、キーバインディング、コマンドの割り当て、補完の動作などの設定が含まれます。
inputrc
ファイルは、ユーザーのホームディレクトリに置かれることが一般的です。~/.inputrc
という名前で作成されます。
以下は、inputrc
ファイルの例です。
# シェルの起動時に自動的に履歴ファイルを読み込む
$include ~/.bash_history
# Tabキーを押したときにファイル名の補完を行う
Tab: complete
# ヒストリーを表示
"\e[A": history-search-backward
"\e[B": history-search-forward
# ベル音を無効化
set bell-style none
この例では、$include
ディレクティブでユーザーのbashの履歴ファイルを読み込む設定が行われています。また、Tabキーを押すとファイル名の補完を行う設定や、矢印キーで履歴を遡る設定、ベル音を無効化する設定が含まれています。
inputrc
ファイルを編集することで、Readlineの動作をカスタマイズし、自分の好みや作業の効率に合わせてシェルを使うことができます。
GNU Readline について
GNU Readlineは、コマンドラインの編集や履歴の管理などの機能を提供するライブラリです。このライブラリは、さまざまなUnixやUnix系システムで広く使用されています。
GNU Readlineの主な機能には、以下のようなものがあります:
- コマンドラインの編集: Readlineは、ユーザーがコマンドラインを編集するための機能を提供します。カーソルの移動、文字の挿入・削除、行の編集などが可能です。
- 履歴の管理: ユーザーが以前に入力したコマンドの履歴を管理します。これにより、以前に使用したコマンドを再利用したり、過去のコマンドに戻ったりすることができます。
- 補完機能: ファイル名、ディレクトリ名、コマンドなどの補完機能が提供されます。入力中にTabキーを押すことで、候補が表示され、補完されます。
- マクロのサポート: Readlineは、マクロの記録と再生をサポートしており、複数のコマンドをまとめて再生することができます。
- 様々なカスタマイズオプション: ユーザーは、
~/.inputrc
ファイルを編集することで、Readlineの動作をカスタマイズすることができます。これにより、キーバインディングの変更、補完の動作のカスタマイズ、履歴の保存設定などが可能になります。
GNU Readlineは、シェルや多くのプログラム(例えばBashやPythonの対話型プロンプトなど)で使用されており、コマンドラインの操作をより柔軟で効率的にするのに役立ちます。
具体例
# /etc/inputrc
"\C-p":history-search-backward
"\C-n":history-search-forward
set colored-stats On
set completion-ignore-case On
set completion-prefix-display-length 3
set mark-symlinked-directories On
set show-all-if-ambiguous On
set show-all-if-unmodified On
set visible-stats On
上記の設定内容は、/etc/inputrc
ファイルに記述されたGNU Readlineの設定です。これはシステム全体のデフォルト設定であり、すべてのユーザーに適用されます。各行の設定内容を解説します。
"\C-p":history-search-backward
- Ctrl + p キーが押されたときに、履歴を逆方向に検索します。つまり、以前に入力したコマンドのうち、直近のものから順に遡ります。
"\C-n":history-search-forward
- Ctrl + n キーが押されたときに、履歴を順方向に検索します。つまり、逆順に遡っているときに進む方向になります。
set colored-stats On
- ファイルの情報を表示する際に、色付きのステータスを使用します。たとえば、lsコマンドの出力などで役立ちます。
set completion-ignore-case On
- 補完操作の際に大文字と小文字を区別せずに補完を行います。
set completion-prefix-display-length 3
- 補完候補を表示する際のプレフィックスの最小長を3文字に設定します。
set mark-symlinked-directories On
- シンボリックリンクされたディレクトリをマークします。ディレクトリ名の末尾に
/
を付けて表示します。
set show-all-if-ambiguous On
- 補完候補が曖昧な場合に、補完候補を表示するようにします。
set show-all-if-unmodified On
- ユーザーが何も入力せずにTabキーを押した場合に、補完候補を表示します。
set visible-stats On
- ファイルの詳細情報を表示します。たとえば、ファイルのパーミッションや所有者などの情報を表示します。
これらの設定は、Readlineが提供するさまざまな機能の動作を変更し、ユーザーがより効率的にコマンドラインを操作できるようにします。
おわりに
今日は、bashにおける書き方についてご紹介しました。
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント