Bash ライン操作

導入

Bash には Readline ライブラリが組み込まれており、コマンドの自動補完など、このライブラリが提供する多くの「行操作」機能を備えており、操作を大幅に高速化できます。

このライブラリはデフォルトで Emacs ショートカット キーを使用しますが、Vi ショートカット キーに変更することもできます。

$ set -o vi

次のコマンドは、Emacs ショートカット キーを元に戻すことができます。

$ set -o emacs

編集モード (Emacs/Vi) を永続的に変更したい場合は、Readline の設定ファイルである ~/.inputrc ファイルにコマンドを記述することができます。

編集モードを設定する vi

この章で紹介するショートカット キーはすべて Emacs モードに属します。 Vi モードのショートカット キーについては、Vi エディターのチュートリアルを参照してください。

Bash はこのライブラリをデフォルトでオンにしますが、オフにすることもできます。

$ bash --編集なし

上記コマンドでは --noediting パラメータにより Readline ライブラリがオフになっており、起動した Bash には行操作機能がありません。

カーソルの移動

Readline には、カーソルをすばやく移動するためのショートカット キーが用意されています。

  • Ctrl + a: 行の先頭に移動します。
  • Ctrl + b: 左矢印と同様に、行の先頭に 1 文字移動します。
  • Ctrl + e: 行末に移動します。
  • Ctrl + f: 右矢印と同様に、行末に 1 文字移動します。
  • Alt + f: 現在の単語の末尾に移動します。
  • Alt + b: 現在の単語の先頭に移動します。

上記ショートカットキーのAltキーはESCキーでも代用できます。

画面をクリア

Ctrl + l ショートカット キーは画面をクリアできます。つまり、現在の行を画面の最初の行に移動します。これは clear コマンドと同じ効果があります。

編集操作

次のショートカット キーを使用して、コマンド ラインの内容を編集できます。

  • Ctrl + d: カーソル位置の文字を削除します(delete)。
  • Ctrl + w: カーソルの前の単語を削除します。
  • Ctrl + t: カーソル位置の文字とその 1 文字前の文字を入れ替えます。
  • Alt + t: カーソル位置の単語とその 1 つ前の単語を入れ替えます。
  • Alt + l: カーソル位置を単語の末尾まで小文字(小文字)に変換します。
  • Alt + u: 単語の末尾までのカーソル位置を大文字に変換します。

Ctrl + d を使用する場合、現在の行に文字が存在しない場合、現在のシェルが終了してしまうので注意してください。

カット&ペーストのショートカットキーは以下の通りです。

  • Ctrl + k: カーソル位置から行末までのテキストを切り取ります。
  • Ctrl + u: カーソル位置から行頭までのテキストを切り取ります。
  • Alt + d: カーソル位置から単語の末尾までのテキストを切り取ります。
  • Alt + Backspace: カーソル位置から単語の先頭までのテキストを切り取ります。
  • Ctrl + y: カーソル位置にテキストを貼り付けます。

同様に、Alt キーは Esc キーに置き換えることができます。

オートコンプリート

コマンドの入力途中で Tab キーを押すと、Readline がコマンドまたはパスを自動的に補完します。たとえば、「cle」と入力して Tab キーを押すと、Bash はコマンドを自動的に「clear」として完成させます。

複数の修飾されたコマンドまたはパスがある場合は、Tab キーを 2 回続けて押す必要があります。Bash は、すべての修飾されたコマンドまたはパスの入力を求めるプロンプトを表示します。

コマンドやパスに加えて、Tab で他の値を入力することもできます。値が「$」で始まる場合は、Tab キーを押すと変数が完成します。値が「~」で始まる場合は、ユーザー名が完成します。「@」で始まる場合は、ホスト名 (ホスト名) が完成します。 hostname /etc/hosts ファイルにリストされているホストが優先されます。

オートコンプリートに関するショートカットキーは以下のとおりです。

  • タブ: オートコンプリートを完了します。
  • Alt + ?: Tab キーをダブルクリックするのと同じように、可能な補完をリストします。
  • Alt + /: ファイルパスの補完を試みます。
  • Ctrl + x /: 最初に Ctrl + x を押し、次に / を押します。これは Alt + ? に相当し、可能なファイル パスの補完をリストします。
  • Alt + !: コマンドの補完。
  • Ctrl + x !: 最初に Ctrl + x を押し、次に ! を押します。これは、コマンド補完の Alt + ! に相当します。
  • Alt + ~: ユーザー名の補完。
  • Ctrl + x ~: 最初に Ctrl + x を押し、次に ~ を押します。これは、ユーザー名補完の Alt + ~ に相当します。
  • Alt + $: 変数名の補完。
  • Ctrl + x $: 最初に Ctrl + x を押し、次に $ を押します。これは、変数名補完の Alt + $ に相当します。
  • Alt + @: ホスト名の補完。
  • Ctrl + x @: 最初に Ctrl + x を押し、次に @ を押します。これは、ホスト名補完の Alt + @ に相当します。
  • Alt + *: コマンドラインに可能なすべての補完を一度に挿入します。
  • Alt + Tab: 補完のために .bash_history 内で以前に実行したコマンドを使用してみてください。

上記の「Alt」キーは、ESC キーで置き換えることもできます。

その他のショートカット キー

  • Ctrl + j: Enter キー (改行) に相当します。
  • Ctrl + m: キャリッジリターンと同等です。
  • Ctrl + o: Enter キーに相当し、操作履歴の次のコマンドを表示します。​
  • Ctrl + v: 次に入力された特殊文字をリテラルに変換します。たとえば、キャリッジ リターンは ^M になります。
  • Ctrl + [: ESC と同等です。​
  • Alt + .: 前のコマンドの最後の単語を挿入します。
  • Alt + _: Alt + .と同等です。

上記の「Alt + .」ショートカットは、非常に長いファイル パスの場合に非常に便利です。 Unix コマンドの最後の引数は通常、ファイル パスであるためです。

$ mkdir foo_bar
$ cd #Alt + を押します。

上の例では、cd コマンドの後に Alt + . を押すと、自動的に foo_bar が挿入されます。


作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0