この記事に書いてあることは、全部、bashのmanページに、より詳しく書かれている。manページを全部読んだ人には、全く読む価値のない記事だ。
けれど私は、10年以上Linuxを使っているにも関わらず、読み飛ばしていた。
もちろんいくつかは知っていたが、知らなかったものも結構あり、bash人生を損してきた気がしたので、記事にする。
あまりに長いと読んでもらえないので、似たようなのがいくつもある場合は、よさそうなのだけを選んだ。
「なぜ削った!」ってのがあったら、コメント欄で指摘いただけるとありがたい。
#記法の読み方
Emacsではおなじみの形式で、キーバインドは書かれている。
C-
は、Ctrlを押しながら、つまりC-a
は、よく見かける記法で書くとCtrl+A
だ。
M-
は、多くの環境では、Altキーを押しながら。(もともとはMetaキーってのがあったらしい)または、Escキーを一旦押して離してから(Altを使う場合は同時押しだが、Escの場合は一旦押して離してから、なので注意)。Macの人は、何か設定すればCommandキーか何かが使えるらしい。「mac metaキー」などでぐぐってほしい。
例:
M-C-y
は、Alt+Ctrl+y
(指がつりそう!) もしくは、Escを押して離してから、Ctrl+y
C-x e
は、Ctrl+x
を押したあとで、e
#移動系コマンド
カーソルを動かす系のコマンドです。
コマンド | 効果 |
---|---|
C-a | 行頭に移動 |
C-e | 行末に移動 |
C-b | 1文字戻る(左矢印と同じ) |
M-b | 1単語戻る |
C-f | 1文字進む(右矢印と同じ) |
M-f | 1単語進む |
C-l | 現在の行が一番上の行になるよう、画面をクリアまたはスクロール |
#履歴操作系コマンド
コマンド | 効果 |
---|---|
C-p | 履歴を戻る(上矢印と同じ) |
C-n | 履歴を進む(下矢印と同じ) |
M-< | 一番最初の履歴に移動 |
M-> | 一番最後の履歴に移動 |
C-r | 履歴を古い方に向かってインクリメンタル検索 |
C-f | 履歴を新しい方に向かってインクリメンタル検索 |
#1つ前の履歴を利用するコマンド
コマンド | 効果 |
---|---|
M-C-y | 1つ前の履歴の、最初の引数(echo foo bar だと、foo )を挿入する |
M-. | 1つ前の履歴の、最後の引数を挿入する |
M-数字 M-C-y | 1つ前の履歴の[数字]番目の引数を挿入する |
C-o | 現在の行を実行した後、次の行に現在の行を挿入する |
M-数字 M-C-y
は、例えばM-2
に続けてM-C-y
を入力すると、2番目の引数が挿入される。
C-o
の説明は難しいが「Enterを押して行を実行し、次の行が出たら上矢印を押す」のと同じようなことを、1回のキー操作でやってくれる。
#補完
コマンド | 効果 |
---|---|
M-/ | ファイル名の補完を試みる |
C-x / | ファイル名の補完候補を列挙する |
M-! | コマンド名の補完を試みる |
C-x ! | コマンド名の補完候補を列挙する |
M-{ | ファイル名の補完候補を、シェルに読める形で全部挿入する(すごいものが見られるので、ファイルの多いディレクトリで一度やってみてください) |
#キルとヤンク
「キル」とは、削除と似たようなものだが「キルリング」という、bash専用クリップボードみたいなところに入って「ヤンク」操作(C-y)で、貼り付けることができる。しかも、キルリングには複数のテキストを保持できる。
コマンド | 効果 |
---|---|
C-k | カーソル位置から行末までをキル |
C-u | カーソル位置から行頭までをキル |
M-d | カーソル位置から単語の終わりまでをキル |
M-BackSpace | カーソル位置から単語の始まりまでをキル |
C-y | 一番最後にキルしたテキストを挿入する |
M-y | (C-yまたはM-yの後で使うと)ひとつ前のキルに遡って挿入する |
#キーボードマクロ
C-x (
で、キーボードマクロの記録が始まる。C-x )
を押して、キーボードマクロの記録を終了したら、C-x e
でキーボードマクロを再実行できる。つまりC-x (
からC-x )
までの間のキー入力を再度繰り返すことができる。
コマンド | 効果 |
---|---|
C-x ( | キーボードマクロの記録を開始する |
C-x ) | キーボードマクロの記録を終了する |
C-x e | キーボードマクロを再実行する |
#その他
コマンド | 効果 |
---|---|
M-数字 | この直後に行った文字挿入またはコマンド入力を数字の回数分、繰り返す |
M-C-e | エイリアスや履歴の展開など、シェルの行うすべての単語展開をその場で行う |
C-x C-e | エディタを起動して現在のコマンドラインの内容を開き、編集結果をシェルのコマンドとして実行する。 |
M-数字
の例を紹介する。M-3 a
はaaa
と入力するのと同じ。M-4 M-b
は4単語戻る。また、コマンドによっては、単なる繰り返しではなく、特殊な動きをするものがある。その一例が、既に紹介したM-数字 M-C-y
だ。
C-x C-e
コマンドを使用した際、エディタは$VISUAL
, $EDITOR
, emacs
の順で起動を試みるので、お気に入りのエディタを.bashrcなどにEDITOR=vim
のように登録しておけばいい。
#参考
manページ
http://linuxjm.osdn.jp/html/GNU_bash/man1/bash.1.html