LoginSignup
9
14

More than 5 years have passed since last update.

bashのコマンドラインでのあれこれ(カーソル移動や履歴利用など)

Posted at

どんな仕事をするにせよ、速度というものは大切です。
例えそれが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号に順に同じ処理するときとか。

9
14
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
14