ターミナル使いこなし! - シェルのショートカットコマンド

4月に新しい生活をスタートし、初めてのunixと格闘。それから三ヶ月、CUI操作に慣れてきた頃合いではないでしょうか。
そうすると、次にうずうず渦巻くのがもっと華麗に、美しく、操作したい!という欲望。
そんな欲望を満たしてくれる、そんな妖しい薬。それがこのエントリです。

シェルのコマンドライン操作を華麗に!

ターミナルでの作業。自分はBackSpaceを連打している中、横ではカッコいいお姉さま先輩は鮮やかな指裁きで無駄のない操作。次々と設定を済ませてゆきます。
ああ、あんな風に私もなりたい...。でもどうしたら?鉄ゲタ履いてランニング?いえいえ、そんなことをする必要はありません。貴方に必要なのは、シェルの移動系コマンドです!

移動系コマンド

以下の動作確認はtcsh 6.15.00、及びbash version 4.0.24にて確認したものです。zshも恐らく、使えると思います。

  • [CTRL+a] (Ctrlキーを押しながらAキー)
    • シェルで入力中に行頭に飛ぶ
  • [CTRL+e] (Ctrlキーを押しながらEキー)
    • シェルで入力中に行末に飛ぶ

前者は先頭=A(アルファベットも先頭)と、後者は終わり=Endと覚えれば良いでしょう。

他に、移動系コマンドとして以下の物があります。

  • [CTRL+F]
    • 行末に向かって進む("F"orward)
  • [CTRL+B]
    • 行頭に方向に戻る("B"ack)

以下のコマンドも有りますが、Altキーとの組み合わせですので多少使いづらいかも知れません。
私も余り使わないですね。。。指つる。。。

  • [ALT+F] (Altキーを押しながらFキー)
    • ワード単位で行末移動(コマンドに空白が入っていると、次の空白にカーソルが飛ぶ)
  • [ALT+B]
    • ワード単位で行頭移動
操作系コマンド

移動コマンド以外にも、ターミナルを操作するコマンドも有ります。
コマンドのヒストリー(履歴)を見るときに、矢印キーを使ってる人は多いと思いますが、これも以下のキーによって操作する事ができます。

  • [CTRL+p]
    • ヒストリーを遡る(より以前に打ったコマンドを見る)
  • [CTRL+n]
    • ヒストリーを下る(より最近打ったコマンドを見る)

また、ターミナルをクリアしたり、コマンドラインの消去だとかもショートカットがあります。尚、コマンドラインの消去は[CTRL+C]とかで代用していると、行儀悪いと怒られる事がありますので、以下のものを使うようにした方がいいでしょう。
また、ターミナルのクリアはどういうときに使うか、と思われるかもしれませんが、これは表示が何らかの原因で崩れてしまったりしたときに良く用います。
Mac のTerminalとか挙動が怪しくてよく表示が崩れるので、重宝しますよ!

  • [CTRL+u]
    • tcsh:コマンドライン全消去(キルバッファ入り)
    • bash:カーソルより行頭方向の文字列を消去(キルバッファ入り)
  • [CTRL+l]
    • ターミナルのクリア(リセット)

さて、これ以外にも以下の操作コマンドが有ったりします。余裕があったら覚えると便利かもしれません。
因に、私は覚えてません。。。

  • [CTRL+k]
    • カーソルより行末方向の文字列を削除(キルバッファ入り)
  • [Ctrl+w]
    • ワード単位でカーソルより行頭方向の文字列を削除(キルバッファ入り)
  • [ALT+d]
    • ワード単位でカーソルより行末方向の文字列を削除(キルバッファ入り)

さて、以上のコマンドで「キルバッファ入り」と書かれているものが幾つかありますが、これは削除した文字列が一時的にバッファに保存される事を意味しています。
これは、[CTRL+y]にてペーストを行う事ができます。
どうやって使うのかなーとか考えると、例えば長いコマンドを打ったところで「あ、configファイル書き忘れてた」だとかいう時に[CTRL+u]してconfigファイルを書いた後、[CTRL+y]すると嬉しい感じです。

と、言うわけで

痒いところに手が届くショートカットコマンドをご紹介しました。最初のうちは「ええっと。。。」と戸惑うかもしれませんが、しかし慣れてしまえば「無かったら不便すぐる!」と言いたくなることでしょう。
なお、以上に書いたもの以外にも色々便利・面白いものがあると思います。是非皆様それらを覚えて、華麗なる指さばきを体得して下さい。
え、私ですか?私は、華麗なる指さばきをしているgeeeeeeekな人たちを見ながら、しょぼしょぼと泥臭い操作をしています。そうじゃなかったら、こんなエントリ書かないよ!ウワアアアン!
次回screenコマンド紹介エントリ「戻らぬ、セッション」(予定)
この次も、/usr/local/etc/rc.d/service start /user/local/etc/rc.d/service start ぅ!

修正(2009/07/02/ 15:54)

  • 2009/07/02/ 15:54
  • 「前・後ろ」という表現から、「行頭・行末」という表現に変更
  • 2009/07/02/ 17:04
    • サブタイトルの修正
    • 細かい表現の修正