Linuxゲリラ戦記

歴史は繰り返す。

57.過去に使ったLinuxコマンドを見る!historyコマンドと↑キー

ナックス「愚者は経験に学び、賢者は歴史に学ぶ……」

ナックス「私も歴史学者の一人として、今日のデビー君の三時のおやつが何かを当てて見せよう……」

デビー君「ナックスが歴史学者の一人、っていうのもビックリだけど、その知識を使うところが、僕の三時のおやつが何かを当てること、っていうのもすごいな……」

ナックス「むむっ!!デビー君の三時のおやつはズバリ!!カステラだ!!」

デビー君「!!すごい!本当に当てた!なんで!?」

ナックス「デビー君の家の三時のおやつは、カステラ、シュークリーム、プリンのローテーションで、今日はカステラの日だから」

デビー君「…………」

ナックス「…………」

ナックス「というわけで、今日はデビー君のLinuxコマンドの使用履歴を見てみます!」

デビー君「はーい」

ナックス「CUI環境を開いて、historyってコマンド打ってみてください」

$ history

ナックス「結果はこんな感じ」

  479  cd essay/
  480  ls
  481  vim e174.xhtml 
  482  cp e174.xhtml e175.xhtml
  483  vim e175.xhtml 
  484  cp e175.xhtml e176.xhtml
  485  vim e176.xhtml 
  486  exit
  487  cd public_html_garunimo/program/linux/
  488  ls
  489  cp linux56.xhtml linux57.xhtml
  490  vim linux57.xhtml 
  491  rm linux57.xhtml 
  492  exit
  493  ls
  494  exit
  495  su -
  496  exit
  497  su -
  498  exit
  499  su -
  500  exit
  501  history

ナックス「になります」

デビー君「へー。これが僕が今までコマンドを打った履歴なんだね?」

ナックス「そうです。そして、コマンドの横に数字があるでしょ?」

デビー君「うん」

ナックス「これを使って、履歴の中のコマンドを実行できます。例えば、上の例だと488番がlsコマンドですね?」

デビー君「うんうん」

ナックス「!488というコマンドを打つことで、lsコマンドが実行できます」

$ !488
ls
Downloads             study  ダウンロード  デスクトップ  ビデオ  画像
public_html_garunimo  test   テンプレート  ドキュメント  音楽    公開
			

デビー君「おー。なるほどねー」

デビー君「ビックリマークの後に数字を書くんだね?」

ナックス「そうでーす。ちなみに、ビックリマークの文字はShiftキーを押しながらこのキーを押してください」

ビックリマーク

ナックス「あ、ごめんなさい。493番もlsコマンドか。見逃してました。上の例だと、!493としても結果は同じです」

デビー君「へー」

ナックス「ただし、上記のhistoryはあくまで履歴の例です。当然、皆さんのコマンドの履歴は皆さんごとに違うはずですから、皆さんが!488とかしても、偶然みなさんも488番がlsコマンドだった、なんていう奇跡でも無い限り上手くいきませんのでご注意を」

デビー君「はーい」

ナックス「historyコマンドは、例えば『昨日どこかのLinuxコマンド解説サイトを見ながら、ながったらしい特殊なコマンドを使ったんだよなー。あれ、便利だから今日もう一度使いたいんだけど、あのサイト見つからないんだよなー。どんなコマンドだったっけなー……』っていう時に使えます」

デビー君「なるほど。履歴から、コマンドを確認できるし、実際にそのコマンドを再度使いたいなら、ビックリマークと数字入力で実行できるんだね?」

ナックス「そうです。でも、昨日ならまだしも、直前に打ったコマンドを再度入力したい時とか、ありますよね?」

デビー君「え?あったかな……」

ナックス「直前はないかもしれませんけど、二つ前とか」

デビー君「二つ前……?」

ナックス「三つ前とかさ!」

デビー君「三つ前ねぇ……」

ナックス「○×▼■!?」

デビー君「××○○……」

デビー君「なるほど、たしかに、11個前ならあるかも」

ナックス「なぜ11個前で納得してくれたのかは謎ですが、ともかく最近使ったコマンドをもう一度使いたいときは↑キーを使います」

デビー君「↑キー?」

ナックス「これですね」

上キー

デビー君「あー。これね」

ナックス「CUI環境で、この↑キーを押していただけますか?」

デビー君「お、なんか、コマンドが出てきた」

ナックス「そうです、デビー君が直前に打ったコマンドです」

ナックス「もう一度↑キーを押してください」

デビー君「また別のコマンドが出てきた」

ナックス「はい。これは二つ前に実行したコマンドです」

ナックス「もう一度↑キーを押してください」

デビー君「おー、また別のが……。これは三つ前に実行したコマンドってことだね?」

ナックス「そうです。あ、ちなみに↓キーで一つ後のコマンドを表示できます」

デビー君「ふむふむ」

ナックス「このように、↑キーで、前回行ったコマンドを出すことができます。もちろん、そのコマンドを実行したいなら、そのままEnterキーを押せば実行できます」

ナックス「例えば、一回長いコマンドを打って、打ち間違いによりエラーが出たとします」

デビー君「うん」

ナックス「そうですね。たとえば」

$ konnakomandonaiyo -ighV htto:oooooppppp

ナックス「とコマンドを打ったとしましょう。(ちなみに、あくまで例です。こんなコマンドは実在しません)」

デビー君「うんうん」

ナックス「でも、本当はhtto:の箇所はhttp:でなければならなかったとします」

ナックス「ということは、エラーが出て、一旦このコマンドは終了します」

デビー君「うんうん」

ナックス「しかし!ここで↑キーを押すと、もう一度画面に」

$ konnakomandonaiyo -ighV htto:oooooppppp

ナックス「が表示されます!」

デビー君「へー。間違って打ったコマンドも出るんだ」

ナックス「そうです。そして、この時カーソル位置はコマンドの一番後ろ……つまり、一番最後のpの後にあります」

デビー君「うん」

ナックス「でも、←キーでカーソル位置を:の所まで持っていって、」

左キー

ナックス「Backspaceキーでoを消してpキー押してpを入力すれば」

Backspaceキー

$ konnakomandonaiyo -ighV http:oooooppppp

ナックス「ってすれば、本来の正しいコマンドになるから、あとはこのままEnter押せば、コマンドを実行できます」

デビー君「なるほど!」

デビー君「あれ?実行しようとしたら『そんなコマンドは無い』っていうエラーが出るんだけど」

ナックス「だから、あくまで一例だって言っているじゃないですか!人の話を聞いてください!」

デビー君「"人"の話……?」

ナックス「いやだってそこペンギンの話って言ったら、なんか変やん!日本語的に変やん!!」

デビー君「あ、あと、コマンドって、入力途中の文字を間違えても←キーで戻れるんだね」

ナックス「え。知りませんでした?」

デビー君「そうだね。今までは途中で間違えていたら、わざと間違えた文字を入力してコマンドエラーにしていたね」

ナックス「…………」

デビー君「あと、間違えたコマンドはBackspaceキーで消せるんだね」

ナックス「え。知りませんでした?」

デビー君「そうだね。今までは間違えていたら、間違えに気づいてもそのまま突っ走ってコマンドエラーにしていたね」

ナックス「…………」

デビー君「あと、宇宙誕生の謎の秘密は1934840という数字の中に隠されてたんだね」

ナックス「え?それは私も知らない」

デビー君「そうなんだ。今まで人類は、宇宙の謎は宇宙を解明する事でなせると思ってそのまま突っ走っていたからね」

ナックス「ちょっと待って何それ詳しく!」

デビー君「所詮我々人類という存在も大いなるストーリーのコマのひとつに過ぎないということだよ──」

ナックス「…………」

デビー君「僕が謎に気づいたのは、図書館である本を見つけた時だった……」

ナックス「…………」

デビー君「だが、その前にすべては始まっていたのだ──。僕が赤いメガネの女の子に恋をしたときから全ては……!!」

ナックス「さて。皆さんもデビー君の話を聞きたいとは思いますが、話が長くなりそうなので私だけ聞きます。次回は『一応知識として知っておきたいパスワード変更コマンドpasswd(58.Linuxのパスワードを変更する。passwdコマンド。)』です」

デビー君「あの赤いメガネの女の子はある任務を帯びていた。彼女自身も知らずにね。僕は彼女に──」

このエントリーをはてなブックマークに追加