bash上の作業を効率化するキー操作

はじめに

普段私が使っているbash上のキー操作について紹介します。
中には誰でも知っている基本的なものもありますが、
いずれも使えるようになると作業効率がアップすること間違いなしです。

なお今回紹介するものはemacsキーバインドが設定されていることを
前提としています。
(個人的にはviキーバインドが好きなんですが、かなりマイナーなので)

また紹介するコマンド中の”C”は”Control”キーを意味し、
“,”(カンマ)区切りのコマンドは左のコマンドのあとに入力します。

移動

  • C-f
    • カーソルを一文字右に進める
  • C-b
    • カーソルを一文字左に進める
  • C-a
    • カーソルを行頭に移動させる
  • C-e
    • カーソルを行末に移動させる
  • C-[, f
    • カーソルを一単語分右に移動させる
  • C-[, b
    • カーソルを一単語分左に移動させる

補完

  • Tab, Tab
    • 入力した文字列にマッチするコマンド、ファイル名で補完する
    • 候補が一つに絞れない場合は候補を標準出力に列挙する
  • C-x, !
    • 入力した文字列にマッチするコマンド名で補完する
    • 候補が一つに絞れない場合は候補を標準出力に列挙する
  • C-x, /
    • 入力した文字列にマッチする、カレントディレクトリ内の
      ディレクトリ名、もしくはファイル名で補完する
    • 候補が一つに絞れない場合は候補を標準出力に列挙する
  • C-x, @
    • 入力した文字列にマッチするホスト名で補完する
    • 補完対象となるホスト名は”/etc/hosts”に書いてあるもの
    • 候補が一つに絞れない場合は候補を標準出力に列挙する

削除

  • C-h
    • カーソルの左にある文字を一文字消す
  • C-w
    • カーソル位置から左にある最寄りのスペースまでの文字列を消す
    • 消した文字列はキルバッファに入る
    • 行を変えない限り、キルバッファにはスタック形式で
      文字列が追記される?
  • C-[, C-h
    • カーソル位置から左にある単語を一単語分消去する
    • 単語の区切りは”_”(アンダーバー)、”/”(スラッシュ)などの記号や
      スペースを使えるっぽい
    • 消した文字列はキルバッファに入る
    • 行を変えない限り、キルバッファにはスタック形式で
      文字列が追記される?
  • C-u
    • カーソル位置から左にある文字列を行頭まで全て消す
    • 消した文字列はキルバッファに入る
    • 実行する度にキルバッファの内容は入れ替えられるっぽい

コピペ

  • C-y
    • キルバッファに入っている文字列を貼り付ける
  • C-[, .(ドット)
    • 直前に実行したコマンドの引数のうち、一番最後のものを呼び出す
    • “cp”したあとに”ls”する、といった場合の作業効率がグンと上がります
  • マウスカーソルで文字列を選択, マウスの中央ボタンを押す
    • キー操作ではないですが、手っ取り早いコピペ手段として
      よく使います
    • 恐らくだいたいのターミナルソフトで使えると思います
    • 右クリックしてコピー、貼り付けとかしなくて良いので、
      地味に作業効率がアップします
    • ちなみにマウスで文字列選択する際は、ダブルクリックすると
      良い感じに自動で選択してくれます(改行には要注意です)
  • マウスカーソルで文字列を選択、Shift+Insert
    • 上記と同じです

履歴

※履歴関連のコマンドはターミナルログが汚くなるので
 使用の際は注意が必要です。

  • C-p
    • 以前実行したコマンドを呼び出す
    • 連続して押すことでコマンド履歴を一つずつ辿れます
  • C-n
    • “C-p”の逆の操作です
  • C-r, 検索文字列を入力
    • 以前実行したコマンドから、
      入力した文字列に対応するものを呼び出す
    • コマンド名だけでなくオプションやファイル名といった引数も
      検索対象です
    • “C-r”を連続して押すことで次の候補へ一つずつ辿れます
    • “C-q”を連続して押すことで”C-r”と逆の操作ができます
    • ちなみに”C-q”は別のコマンドが
      アサインされている可能性が大なので、
      以下のコマンドを事前に入力しておくと良いです
      “$ stty stop undef”

おわりに

以上、私が普段からbash上の作業で使っている
キー操作を紹介しました。
まだまだ便利なものがあると思いますので、
見つけ次第、随時更新したいと思います。

コメントを残す