ご利用ガイド 第6回:使いこなせ!黒い画面
目次
第6回:使いこなせ!黒い画面
前回はターミナルソフトから簡単なコマンドを打ち込んで、サーバーを操作する方法を学びました。でも、コマンド入力が初めての方はちょっと難儀したんじゃないでしょうか。コマンドを打ちこむのがたいへんじゃなかったですか?
たとえば、
[localadm@test ~]$ date
Mon Jun 9 18:27:33 JST 2014
[localadm@test ~]$ cal 1972
のように短いコマンドであればいいですが、
[localadm@test ~]$ cal 9 1972 | grep 13
10 11 12 13 14 15 16
[localadm@test ~]$ find ~/ -type f -exec echo {} ; | cat -n | tail -1
6 /home/localadm/.zshrc
なんて長いコマンドだったら、途中で打ち間違えたりするともう絶望的です。長いコマンドを何回も繰り返すことだってあるだろうし…。黒い画面って、ほんっとに不便! …はたしてそうなんでしょうか。
実はこの黒い画面には、コマンドの入力やさまざまな処理をしやすいよう、いろんな技が隠されています。たしかにはじめはとっつきにくいですけれど、一度でも覚えればまるで魔術で操っているかのように黒い画面を操作できるようになってしまうのです。そんなわけで、あなたも黒い画面の魔法をちょっとだけ覗いてみませんか?
まずは打ち間違い対策
まずはたとえばこんなケース。コマンドを入力しているときに「あっ!打ちまちがっている!」と気が付いたら?
[localadm@test ~]$ find ~/ -type f -exec echo {} ; | dog -n | tail -1■
最後まで入力しきって、よく見たら「cat」を「dog」と打ち間違っています。こんなときの対処はかんたん。ワープロソフトとおなじで、カーソルキーの「←」「→」でカーソルを打ちまちがったところまで持って行ってください。
[localadm@test ~]$ find ~/ -type f -exec echo {} ; | ■ -n | tail -1
そして「cat」と入力しなおして、「Enter」を押せば正しいコマンドを実行できます。ね。ちょっとした間違いなら「←」「→」と「Backspace」だけでなんとかなります。簡単でしょ?
一歩進んだ打ち間違い対策
カーソルの移動ができるのはわかりましたが、これ、行の先頭のほうで間違ったら面倒ですね。ずっと「←」を押してなければいけません。下のように、先頭の「f」を「b」と打ちまちがったときとか!
[localadm@test ~]$ bind ~/ -type f -exec echo {} ; | dog -n | tail -1■
このあたりから「CTRL」キーとの合わせ技が始まります。「CTRL」キーを押しながら「A」(以降「CTRL-A」と書きます)を押してみてください。
[localadm@test ~]$ ■bind ~/ -type f -exec echo {} ; | dog -n | tail -1
なんと一瞬でカーソルが行の先頭に移動しました! Aはアルファベットの最初の文字。なので「最初の文字に移動しろ!」という呪文として使われているのです。え? じゃあ、逆に行の最後に移動する方法は? 「CTRL-E」を押してください。
[localadm@test ~]$ bind ~/ -type f -exec echo {} ; | dog -n | tail -1■
行の最後に移動しました。「End」のEだからですね。かんたんかんたん。
ところで、ここまではコマンドを実行する前に打ち間違いに気づいたケースでした。実行してから間違っていることに気づいたら? コマンドをイチから打ち直さなければいけないのでしょうか! たとえばこんな感じ。最初のfを打ち忘れて怒られています。
[localadm@test ~]$ ind ~/ -type f -exec echo {} ; | cat -n | tail -1
-bash: ind: command not found
[localadm@test ~]$ ■
こういうときは、あわてずさわがず「↑」キーを押してください。すると、あら不思議。直前に実行したコマンドがそのまま現れました。
[localadm@test ~]$ ind ~/ -type f -exec echo {} ; | cat -n | tail -1
-bash: ind: command not found
[localadm@test ~]$ ind ~/ -type f -exec echo {} ; | cat -n | tail -1■
「↑」を押すと、これまでに入力したコマンドが新しい順に出てきます。「↓」を押すと逆回しもできます。これは便利ですねー。
もうひとつ。「どうしようもなく打ちまちがっちゃったから、ぜんぶ捨ててやりなおしたい!」ということってよくあります。そんなときは、入力途中に「CTRL-C」を押してください。
[localadm@test ~]$ ind ~/ -type f -exe echon {} ; | dog -n | head -1^C
[localadm@test ~]$
「CTRL-C」を押すと、「^C」と表示されて新しいコマンドプロンプトが出てきます。どうでしょう。これくらい知っていれば、だいたいの打ち間違いには対処できそうですよ。
もっと先のレベルにゆく
「これくらいじゃつまらない! もっと高いレベルで使いこなしたいぜっ!」という熱い方。すばらしい向学心です。では、もっと先のレベルを垣間見てみましょう。たとえば、何回かコマンドを実行しているうちに「あ、ちょっと前の行を再実行したいけどカーソルキーで探すのはめんどくさいな」と思うことってありますよね(「ないよ」と突っ込まれそうですが、あることにしてください)。
[localadm@test ~]$ date
Mon Jun 9 19:06:21 JST 2014
[localadm@test ~]$ cal 9 1972 | grep 13
10 11 12 13 14 15 16
[localadm@test ~]$
「date」をもう一回実行したいんですよねー。そういうときは「!d」+Enterとやってみましょう。
[localadm@test ~]$ !d
date
Mon Jun 9 19:08:52 JST 2014
[localadm@test ~]$
なぜかdateコマンドが実行されました! 実は、!マークに英文字を続けて入力すると「その英文字で始まる、いちばん最近実行したコマンド」が再実行されるのです。英文字は何文字でもかまわないので「!da」も「!dat」も「!date」もおなじ結果になります。
さらに、「!!」と!を2回繰り返してEnterすると、
[localadm@test ~]$ !!
date
Mon Jun 9 19:11:16 JST 2014
[localadm@test ~]$
直前のコマンドラインが再実行されます。「↑Enterしたほうが早いんじゃない?」と言われそうですけど、なんかこっちのほうがかっこいいじゃないですか…。
人間をやめてみる
最後に「それなんかの役に立つの?」「役に立つどころか害悪じゃない?」という禁断の魔術もお教えしておきましょう。なんと、黒い画面では「時を止める」ことができます。「うそでしょー?」ですって? じゃあ、下のようなコマンドプロンプトで「CTRL-S」を押してから、適当なコマンドを入力しようとしてみてください。
[localadm@test ~]$
ね? 時が止まったでしょ? というか、なにやっても反応しなくなりましたね…。安心してください。これは壊れたのではありません。「画面表示を一時停止する」という機能なのです。一時停止=「stop」のSですね。もちろん、元通り時を動かすこともできます。「CTRL-Q」です。
[localadm@test ~]$ date
CTRL-Sを押したあとに文字を打ち込んだり何か画面に反映されるような作業をしていると、CTRL-Qを押した瞬間にドバッと出てきます。「こんな機能、なんのためにあるんだー!」と思われる方。その疑問は当然です。昔のコンピューターは、いまのように高速表示できる画面やネットワークをもっていなかったり、そもそもディスプレイではなくプリンターしかついていなかったりしました。そのころの名残りでこういう機能があるんです。人にもコンピューターにも歴史あり、ですね。
最後に、ほんとうに禁断の黒魔術を紹介して今回の教室を終わりにしましょう。えーと…。サーバー上でなにか大事な処理はしていないですよね? じゃあ、「CTRL-D」を押してください。
[localadm@test ~]$ logout
なんと、一瞬「logout」と表示されるとともにターミナルソフトが終了してしまいました! ギャー! …ということで、CTRL-Dもとある歴史的背景により「ログアウトするためのキー操作」になっています。間違って押さないように気を付けてください。ちなみに、間違って押しても大丈夫にする方法もあるので、次々回くらいにご紹介しますね。
今回のキー操作を復習してみましょう:
- 「←」「→」
コマンドライン内での左右カーソル移動 - 「Backspace」
カーソルの直前の文字を消す - 「CTRL-A」
コマンドラインの先頭へ移動 - 「CTRL-E」
コマンドラインの最後へ移動 - 「↑」「↓」
過去に実行したコマンドラインの履歴をたどる - 「CTRL-C」
途中でやめる - 「!文字」
過去に実行した「文字」ではじまるコマンドを再実行する - 「!!」
直前に実行したコマンドを再実行する - 「CTRL-S」
画面表示を一時停止する - 「CTRL-Q」
画面表示を再開する - 「CTRL-D」
logoutする(キケン!)
では、また次回!
- 問題は解決できましたか?
-