皆さん、CUIアレルギーにかかってませんか!?
自分のようなおじさんエンジニアは、GUIは直感的ですが、効率化という意味では悪!なんて思っている人が幾ばくかいるのではないでしょうか?
さて、では黒い画面に白い文字で悪戦苦闘しなければいけなくなった人向けに、これを知っていれば効率的に作業できるよ、という初心者向けのショートカット(キーバインド) for bash を紹介したいと思います。
bashにはモードの概念がある
何気なく普段使っているbashですが、実はモードの概念が存在します。特に設定などをいじらなければ、emacsモードでの動作になりますので、今回はemacsモード前提で話を進めます。
tab補完、使ってますか?
bashには、tab補完の機能があり、パスやコマンドを全て手入力せずとも、たとえば、ema まで入力した後にtab入力すれば、emacsと補完される機能があります。パスなどは非常に長いものになることもよくある話なので、このtab補完を直感的に使えるようになるまで習熟する事が、作業の効率化の鍵になります。
余談ですが、昔のMS-DOS(DOSプロンプト)はこの機能がなくてイライラしたのを覚えています。(確か、Windows2000ぐらいからtab補完が実装された記憶があります)
コマンドのカーソル移動
コマンドを入力してみたら誤字があって修正、なんていう事は日常茶飯事です。そんな時、1つ前のコマンドを呼び出して…となりますが、カーソルキーに指を移動させていませんか?それを売るなんてとんでもない。ホームポジションから指を離すなんてとんでもない。
まず、過去のコマンドの呼び出しですが、Ctrl+pで遡れます。逆に行き過ぎた場合はCtrl+nで1つずつ手前のコマンドに戻る事ができます。
Ctrl+pでお目当てのコマンドを見つけて編集!となります。カーソルキーに指を移動させていませんか?それを売るなんてとんでもない。ホームポジションから指を離すなんてとんでもない。
コマンドの先頭へはCtrl+a、最末尾にはCtrl+eで移動できます。また、カーソルを1つずつ先に移動するにはCtrl+f、逆に1つずつカーソルを戻すにはCtrl+bで行えます。
また、編集するという事で、文字を削除したいケースもあると思いますが、カーソルのある文字の削除はCtrl+dで行えます。
履歴を活用しようず
先ほど、Ctrl+p、Ctrl+nで過去のコマンドを再利用出来る事を紹介しましたが、過去のコマンドを振り返るコマンドとしてhistoryコマンドというそのものずばりのコマンドがあります。
473 sudo purge
474 ps
475 ps aux
476 top
477 man top
478 top -o cpu
historyコマンドの出力結果を抜粋したものです。コマンド毎になにやら数字が付与されています。Ctrl+pを何度も入力して戻ってコマンドを入力しなくても、historyコマンドで過去のコマンド一覧を表示して、付与されている数字を確認すれば、1発でそのコマンドを再入力する仕組みがbashには用意されています。
今回の場合だと、ps aux
を再入力したい場合は!475
と入力すれば、コマンドが再入力されます。便利ですね。
さて、たったこれだけ知っているだけでも、かなりホームポジションから指を離す機会が減るのではないでしょうか?効率化の道はまだまだ続きますが、今回はこれぐらいで。