Linuxゲリラ戦記

Vimも教えておいたほうが良いイメージ。

アイキャッチ

65.Vimのコマンドモードで色つける・消す。行番号表示・非表示。

ナックス「こんにちは。今回はwgetコマンドの話だ!!wgetコマンド覚えてる?」

デビー君「ダブルゲット?知らないよ。もうLinuxが何だったかすら忘れつつあるよ」

ナックス「まって!Linuxは忘れないで!wgetもちゃんと教えるから!思い出して!」

wget コマンド
概要
ネットワーク越しにファイルを取得できるコマンド。
使い方
$ wget http://www.garunimo.com

ナックス「こんな感じに使うんだよ」

デビー君「んん?使い方の例で、wgetでガルニモのサイトのアドレスを指定してるけど、どういうこと?ウェブサイトってファイルじゃないよね?」

ナックス「いいえ。実はウェブサイトってただのファイルなんだよ。『こう表示する』って書いたファイルをただサーバーに置いているだけだよ。ちなみに使い方の通りにコマンドを打つと、ガルニモのトップページの『こう表示する』って書いたファイルがゲットできるよ」

デビー君「そうなんだ」

ナックス「うん。ただ、勘違いしないで欲しいのは、この使い方の例で『ガルニモの全てのウェブサイトをダウンロード出来る』わけじゃないよ。トップの1ページだけだよ」

デビー君「そうなの?」

ナックス「うん。例えば http://www.garunimo.com にアクセスすると、ガルニモの『トップページの1ページ』が表示されるでしょ?その1ページがゲット出来るだけだよ」

デビー君「うんうん」

ナックス「例えば『ガルニモ』のサイトの中でも色々ページ遷移すると、アドレスも http://www.garunimo.com/ とか http://www.garunimo.essay/e1.php とか http://www.garunimo.com/novel/n2.php とか変わるでしょ?」

デビー君「そうなの?あんまりアドレス意識したこと無い……」

ナックス「変わるんだよ。そしてそれぞれのアドレスでその画面を表示するために用意している1ファイルがあるんだよ」

デビー君「へー」

ナックス「というわけで、早速 wget コマンドを前回教えたサイトに使ってみよう。でも、その前に今回の画像収集プログラムを作成するための作業ディレクトリを作ろう」

$ mkdir heso.blue

ナックス「で、そこに移動しよう」

$ cd heso.blue

mkdir、cdのコマンド例

ナックス「ちなみに、ここまで Linuxゲリラ戦記を読んでいる人なら分かってると思うけど、別に作業ディレクトリはこの名前じゃなくてもいいよ。今回heso.blueっていうディレクトリにしたのは、対象のサイトがへそブルーっていう名前のサイトだからだよ」

ナックス「さて、対象のサイトのアドレスは http://www.heso.blue/ です。このサイトで適当なアイドルの名前を検索します。今回の例では可愛い女の子の画像を検索できそうなキーワード"水着グラビア"で検索してみます。検索キーワードに『水着グラビア』と入力して"検索する"ボタンを押してください」

「綾瀬はるか」の検索実行例

デビー君「水着グラビアの画像がズラズラ出てきました」

ナックス「よし!検索結果のアドレスに注目だ!アドレスは http://www.heso.blue/?text=%E6%B0%B4%E7%9D%80%E3%82%B0%E3%83%A9%E3%83%93%E3%82%A2&page=1 ですね?」

デビー君「ううん。違うよ?http://www.heso.blue/?text=水着グラビア&page=1 だよ?」

ナックス「違うんだよデビー君!思い出して!昔39.Google画像検索のクエリを解析するで説明したよ!!」

デビー君「ば、バカな!!Linuxゲリラ戦記の中でも記事の長さがダントツで無駄に長い39番を僕に読めというのか!?」

ナックス「無駄とは失礼な!大丈夫だよ。全部読むんじゃなくて前半だけ読めば大丈夫だよ」

デビー君「えーっと……。『表示の時だけ日本語だけど、実際にはURLエンコードされてるよ』」

ナックス「そうなんだよ!つまり、"水着グラビア"という文字をURLエンコードすると%E6%B0%B4%E7%9D%80%E3%82%B0%E3%83%A9%E3%83%93%E3%82%A2になるんだよ!みんな、この文字を手入力しないといけないんじゃないかとビクビクしてるかもしれないけど、違うよ!コピペでいけるよ!アドレスに『水着グラビア』って表示されてるものを、そのままコピーして、適当に貼付けしてみてよ!この、メッチャ難しそうな文字に勝手になるよ!」

デビー君「……あー、あれね!ゆーあーるえんこーどね!」

ナックス「そうだよ!URLエンコードだよ!!」

デビー君「ピンチの時に使うと攻撃力が二倍になるユーアールエンコードね!」

ナックス「忘れとるやないかい!40.Linuxのコマンドから行うURLエンコード、URLデコードも要チェックや!!」

デビー君「はーい」

ナックス「とりあえず、このアドレスにwgetすれば、『水着グラビア』で検索した際の検索結果のページが取得できるってわけだ!でも、ちょっと待って!このアドレス、イコール(=)やらハテナ(?)やらパーセント(%)やら、端末(仮想コンソール)で使用すると、いかにも特殊な意味を持ってしまいそうな文字ばっかりだよ!こういう時は!!」

デビー君「あきらめる」

ナックス「違うよ!こういう時はダブルクォーテーション『"』で囲うと大丈夫だよ。つまりはこうだ!!」

$ wget "http://www.heso.blue/?text=%E6%B0%B4%E7%9D%80%E3%82%B0%E3%83%A9%E3%83%93%E3%82%A2&page=1"

wgetコマンド実行例

デビー君「wget "http://www.heso.blue/?text=%E6%B0%B4%E7%9D%80%E3%82%B0%E3%83%A9%E3%83%93%E3%82%A2&page=1" とコマンドを打って実行しただけなのに、色々恐ろしそうな表示が出てくる。これが!初心者イジメか!!」

ナックス「そうです!初心者イジメです!!なので、色々恐ろしそうな表示は無視して、lsコマンドを打ってみてくれ」

lsコマンド実行例

デビー君「index.html?text=%E6%B0%B4%E7%9D%80%E3%82%B0%E3%83%A9%E3%83%93%E3%82%A2&page=1っていうファイルが取得できてます」

ナックス「そいつがwgetコマンドで取得したファイルだよ。あなたが使ってるLinuxディストリビューションによってはファイル名が文字化けしてしまってるかもしれないけど、気にしないで!エディタで見てみましょう」

$ vim index.html\?text\=%E6%B0%B4%E7%9D%80%E3%82%B0%E3%83%A9%E3%83%93%E3%82%A2\&page\=1

vimコマンド実行

ナックス「ちなみに、ファイル名を途中まで入れたら、あとはTabキーを押せばファイル名を補完してくれるよ。覚えてる?忘れてる人は21.ファイルを移動するmvコマンド。Tab補完を確認だ!くっくっく!Tab補完さえ使えれば文字化けしたファイルすら開くことが可能なのだよ!」

ナックス「中身はこんな感じだよ」

index.htmlの中身

デビー君「……あー。外国語ね?」

ナックス「日本語サイトだよ?ウェブサイトにこういうことを表示してね、って言うことが書かれてるんだよ。前から言ってるけど、本当にLinuxをマスターしたいなら、簡単なウェブサイトを作れるくらいの能力があるのが理想だよ。ウェブサイト作る勉強してみてね」

デビー君「こいつをどうするの?」

ナックス「あれだよね。まず、文字に色付けたいよね」

デビー君「ほう?」

ナックス「今、ちょうどVimのコマンドモードだから色つけようぜ!」

ナックス「:syntax onって入力してEnterキーを押してね」

コマンドモードで:syntax onと入力する

コマンドモードで:syntax onと入力し、Enterキーを押す

デビー君「か、カラフル……!!」

ナックス「ちなみに、Linuxディストリビューションの種類によっては色のつき方が違うかもしれないけど、今回は色がつくのが大事であって、『色が違う!!』っていうのは気にしなくていいよ」

デビー君「はーい」

ナックス「あと、『なんか色つけようと :syntax on っていうコマンド打ったけどエラーがでて上手く行かへんわ』って場合はVimで文字に色をつける/色を消すを参考にしてみてね。簡単に言うと『あなたは確かに vim index.html っていうコマンドを打ってvimを起動してるけど、使ってるアプリが実はVimじゃない説。だから、改めてVimをインストールして試してみてね』です」

デビー君「はーい」

ナックス「あと、行番号もつけたい。今、コマンドモードの状態のはずなので、次は行番号をつけるコマンド :set number を打ってEnterキーを押してね」

コマンドモードで:set numberと入力する

コマンドモードで:set numberと入力してEnterキーを押す

デビー君「おお!行番号ついた!!」

ナックス「よし!満足!!」

ナックス「満足したから今回は終わろう」

デビー君「えぇっ!?」

ナックス「Vimの終わり方はコマンドモードで :q と入力してEnterキーだよ。ちなみに、色付き、行番号付きのまま終わっても特に問題ないよ」

ナックス「Vimの終わり方を忘れてしまったあなたは61.Vimの使い方。インサートモード。コマンドモード。保存。終了。を参考にしてね」

ナックス「ついでに教えておくと、色付きを元に戻すにはコマンドモードで :syntax off と入力する。行番号を消すには :set nonumber でいけます」

ナックス「次回!!66.Vimの設定ファイル、.vimrcをいじる!!」

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