どんな仕事をするにせよ、速度というものは大切です。
例えそれが1秒の違いでも、28800回繰り返せば、1人日の差になります。
そんなわけで、bashのコマンドラインでの作業速度を上げるためのあれこれです。
かなり色々あるのですが、今回は普段私が使う(使いたい…)ものをピックアップしました。
尚、TeraTermの場合は、「設定」→「キーボード」でMetaキーをonにしておくと、
以降の「Esc」キーを押す部分が「Alt」キーで代用できます。
カーソル移動
動作 | キー | 覚え方 |
---|---|---|
行頭に行く | Ctrl + a | alpha |
行末に行く | Ctrl + e | end |
次の単語の最後に行く | Esc + f | forward |
現在 or 直前の単語の先頭に行く | Esc + b | backward |
挿入
動作 | キー |
---|---|
前のコマンドの最初の引数を挿入 | Ctrl + Esc + y |
前のコマンドの2番目の引数を挿入 | Esc + 2 後 Ctrl + Esc + y |
コマンドラインでタブ文字挿入 | Ctrl + v 後 TAB |
削除
動作 | キー |
---|---|
カーソル位置の文字を削除 | Ctrl + d |
カーソル位置から行末まで削除 | Ctrl + k |
カーソル位置の前の単語を削除 | Ctrl + w |
カーソル位置の後の単語を削除 | Esc + d |
コマンド履歴の利用
動作 | キー |
---|---|
直前のコマンドの再利用 | !! |
stringで始まる最新のコマンド履歴を利用 | !string |
直前のコマンドの最初のstring1をstring2に置換して実行 | ^string1^string2 |
直前のコマンドの全てのstring1をstring2に置換して実行 | !!:gs/string1/string2 |
^hoge^fuga
だと最初にマッチした部分しか置換されないので、やらかし注意。
全部置換する場合は、!!:gs/hoge/fuga
を使いましょう。
$ echo "hogehoge"
hogehoge
$ ^hoge^fuga
echo "fugahoge"
fugahoge
$ !-2:gs/hoge/fuga
echo "fugafuga"
fugafuga
【おまけ】やばい、端末が固まった!という時
かなり高確率で「Ctrl + s」を押してしまっていて、画面の更新が止まっています。
電プチする前に、冷静に「Ctrl + q」を押しましょう。
多分、焦って打った文字たちが出現します。
あとがき
カーソル移動や削除は、作業効率が結構変わるので、覚えておいて損はないです。(特に描画の遅いターミナルなら尚更)
ヤンクは使ったことないのですっ飛ばしました。効率良くなるんだろうか。
引数挿入は…やったことありません。TABの挿入は何かと便利かも。
履歴の置換もなかなか便利です。サーバー1-9号に順に同じ処理するときとか。