2015年11月16日月曜日

華麗なるlinuxの世界6

現在のパソコンはGUI=graphic user interfaceが基本だ。
視覚的に捉えて直感的に操作する世界とも言える。
しかしパソコンは元々CLI=command line interfaceから始まった。
CLIは「文字だけ」の世界だ。
アイコンも無い、マウスも無い、キーボードで操作のみの世界だ。

「それって何て言うワープロ?」という世界だ。
「それって何て言うポメラ?」とも言う→リンク
例えばテレビ版エヴァ第7話でJA内部でミサトが操作していた画面。
GUIしか知らない人は中身を見もせずに
ヒステリックに拒否をする世界だ。


だが、この連載はそういう態度を改めようといって始めたはずだ。

不満があるなら一度外に出てみよう、
外に永住しなくていいから、外を歩いてみよう。
そこで見えてくるものがあるはずだということで始めた。

特にubuntuは無駄に甘口に設定してある。
必要以上にCLIを避けようとする傾向がある。
その結果、不平不満だけは一人前のくせに
「外」へ一歩踏み出す勇気すらない奴隷・愚民が増えるのではないか?
だからこそCLIは一度は勉強しておくべきだと思う。

何もCLI教だのカルトに入信する訳ではない。
勉強が済めば普段はGUIで使えばいい。
CLIならではのメリット、CLIの方が有利な場面というものもある。
たとえば、PCのへの負荷が軽い事。サクサク動く。
「アイコン表示その他に使うパワー」よりも
「文字のみの表示で済ますパワー」の方が小さい。だからサクサク。
だから過去記事(第2回)で
「異常な軽さの代償として異常な不便」と書いたのは
CLIをも想定しての話だ。 

しかしいくら軽くても字しか表示できないなら一体何に使うのか?
せいぜいブログの下書きぐらいじゃないのか?
そんな事だから「ポメラ」だの「ワープロ」だの
言われるのではないのか?
使う目的が存在しないなら軽くても意味がないのではないか? 

・・・というのはCLIの威力をしらない人の意見。
例えば私が昔作った「FC2ブログ保存したったー」という
ブログ記事自動保存プログラムがあるがアレもCLIだった。
win/macの世界から外へ出て、ubuntuの世界へ来た読者諸氏を
今回は更に外の世界、CLIの世界に連れ出したい。

unchainの世界へようこそ

この連載の第3回でハッシュ値の確認というものを説明した。
windowsはバカだからハッシュ値計算プログラムが無い。
mac OSXや、ubuntuを含むlinuxには標準搭載されている。
その使い方から見てみる。
尚、今回はlinux(ubuntu)を使う前提で説明する。
mac OSXは多分相違点は無いはず。
linuxはunix系なのでOSXとは親戚である。似ている点が多い。
windowsはいらん子なので省略。
windowsはコマンドとかフォルダ構造が違うから説明が長くなる。
今回は基礎しか書かないので共通部分もある。
windowsで試すのならとりあえず「ls」を「dir」に読み替える事。
後は多分、「md5sum」とか「apt-get」「apt-cache」とか
使えないコマンドが大量に出てくる所が相違点。

まずはCLI用の画面の起動。
ubuntuならlauncherの検索欄で「端末」又は「terminal」
mac OSXなら多分アプリケーション→ユーティリティ→ターミナル
windowsは多分全てのプログラム→アクセサリ→コマンドプロンプト 
確か95-98-MEは「MS-DOSプロンプト」だったような気がする。
 「ミサトが触ってた画面だ!」みたいなものが出たはずだ。
私のはちょっと半透明に設定してある。
「何?そのエロ設定は?」ってのは
編集 → プロファイルの設定 → 色 → 透過の背景を使用する

 通常、このターミナルは「現在位置」が
ホームディレクトリの状態で起動する。
パソコン内部にディレクトリは数多く存在するが
一般に「ホーム」と言われるディレクトリがスタート位置になる。
(絶対にそうだと決まっている訳ではない) 
ここからキーボードで各種コマンドを入力し、
enterを押せば実行される。
カチャカチャカチャ・・・ッターン!の世界と言ってもいい。→リンク
例えば「現在位置」の確認。これは「pwd
画像は私がubuntu15.10で実行してみた例。これが「ホーム」
そして「現在位置」の事をカレントディレクトリと呼ぶ
ファインダーでホームディレクトリを開いているのと同じ状態。
アイコンがズラッと自動表示される訳ではないので
開いている実感は薄いけどw

ハッシュ値を計算するには、まず
「ソレ(計算対象)」が存在するディレクトリへ移動する事になる。
移動しなくても計算はできるのだが、それは後回し。
移動は「cd xxxx」これで「xxxx」へ移動する。
多分change directoryの略・・・と思う。
少なくともcdのhelpには
"Change the shell working directory."と書いてある。
例えば「Downloads」フォルダに問題の.isoがあるのなら
「cd Downloads」でenter。これで 「Downloads」フォルダに移動完了。

サーセン、画面まっ黒けのままで変化が無いから
移動したんだかしてないんだか分かんねえッスけど

だからそれがCLIの仕様です(キリッ
そういうアイコン表示作業その他色々削りまくっているからこそ軽い訳。
ていうかプロンプトの左に出てる文字が現在位置を示す。
そこ見りゃいいでしょ。 

??・・・・「〜」って何?何かの省略形?(注意:本当は半角)

」はホームの意味。

「〜」って何って読むの?

チルダ
マッチルダさぁぁぁぁんん!

言うと思った。

今「~/Downloads」だけど、なぜスラッシュを付ける?

ディレクトリの区切り文字だから。
例えば「1丁目2番地3号」という住所があったとする。
これを「1-2-3」と書く事もある。
あの時のハイフンのようなもの。

ほう。もしかしてファイル名にスラッシュが使えないのは
ディレクトリの区切りなのかファイル名なのか判別できなくなるから?

そう。ちなみにwindowsはバカだから
ファイル名で使えない文字がmacよりも多い。→参考 
そしてwindowsでは区切り文字もバックスラッシュ
この画像(↑)の矢印の右側がバックスラッシュ。
このバックスラッシュを円マークだと思い込んでいる人が多いが
それは間違い。ただの文字化け。
ドザどもはバカだから文字化けを正式な表記だと思い込んでいる。 
ネット通販のサイトをmacやiphoneで見てても円マークが
時々バックスラッシュになっているのもこれが原因。
macが正しい。windowsは間違っている。

しかし、「cd Downloads」って打つからには
ディレクトリ名を暗記してなきゃ無理じゃね?
だって、カレントディレクトリに存在しないディレクトリ入力したら
どうせエラーなんでしょ?

はい、そうです。例えば私のubutnuならホーム直下に存在するフォルダは
「Desktop」「Music」「Templates」「ffmpeg_sources」「Documents」「Pictures」「Videos」「dwhelper」
「Downloads」「Public」「bin」「ffmpeg_build」以上。
コレ以外の名前で「cd xxxx」なんて打ったらエラー。

まじか。てか、「Downloads」なのか「Download」なのか
そういう細部まで暗記するわけ?
このキモヲタ仕様どうにかならねえの?
毎回毎回エラー出しまくりながら試行錯誤するの?

いや、まず入力補完ができる。私の例で言えば
「cd Dow」まで打った状態でtabを押せば残りは自動で入る。
勝手に「cd Downloads」まで一気に入る。
だから語尾はどうでもいい。
ちなみに「cd D」や「cd Do」の状態でtab押しても無反応。
これは「cd Downloads」なのか「cd Documents」なのか
判別できないから。
判別できるところまで打ったら後はtabでオマカセ。
判別さえできればいいのだから 
「cd Dow」「cd Down」「cd Downl」「cd Downlo」
どこでtabを押してもよい。

「cd」だけだとホームに戻る。ドラクエのルーラみたいなもの。
作業の過程でディレクトリの奥の奥の奥の奥に入った時とかに使う。
そういうマニアックなディレクトリの奥の奥の奥だと
「cd xxxx」しようにも、次に何を打てばいいのかがわからなくなる。
何しろ初めて来たディレクトリの構造なんか暗記している方がおかしい。
だからどういうxxxxがあるのか見当もつかなくなる。
すると入力補完のための文字が1文字も打てなくなる。
そういう時は「ls」 でenter
これでカレントディレクトリに存在するファイルやディレクトリの一覧が出る。
これは私の「ホーム」で「ls」した所。
で、こういう結果を見て、「あー、これだこれだ」とタイプすればよい。

ていうか・・・アテクシのubuntuはディレクトリ名が日本語なんスけど。

日本語remixでなくても
インストール時に日本語を選んだらそうなる。
しかしそれだと「cd」の時にいちいち入力を
英語から日本語に切替えないといけないから面倒。
だから私はディレクトリ名を英語に変えてある。
このへん参照→リンク

ふむ。で、Downloadsフォルダでlsした結果、
問題の.isoが見つかった。で、ハッシュ値計算コマンドは?

ハッシュ値計算方法も複数あるがubuntuのHPで出ていたのはmd5
よってmd5sum xxxx これで xxxx の md5ハッシュ値計算。
.isoみたいなデカイファイルだと何秒か待たされるかもしれないが
すぐにドドドっと文字列が出るはず。
てかubuntuの.isoファイル名めっちゃ省略してない?

してる。先程のtabのように、もう特定できる所まで打ったら
あとは「」=アステリスクで省略ができる。(注:本当は半角)
これはワイルドカード。
例えば2ちゃんねるとかでも「アホかバカかと(ry」と書くが、
あの「(ry」みたいなもの
逆に頭を省略する事もできるので「*.iso」も使える。 
「*.iso」は「拡張子がisoのもの全て」を指すので
「md5sum *.iso」と打てばカレントディレクトリの
全isoファイルのハッシュを計算する。
つまり1個しかないなら1個計算。複数あるなら複数計算。

ほう。じゃ、何もかも省略して「*」は?

「カレントディレクトリの全ファイル」を指す。 
勿論、ワイルドカードを使わないで「cd」と同様、tabでもいい。
今は「こういうものがある」と紹介するために意図的に使った。  

とりあえずハッシュが出た。で、これをubuntuのHPと比較するのか。
また面倒くさいな。指で1文字ずつ押さえながら見比べるの?

アホか。コピペすればいい。CLIがマウス使えないと言っても
それはターミナルの中の話。今OSそのものはGUIなんだから
計算したハッシュをドラッグしてコピーできる。

ほう・・・ドラッグ・・・でctrl + c・・・???
なんぞ変な文字が出たっすけど?
あー、ターミナルのショートカットで
ctrl + c」は「キャンセル」の意味。
何か延々と処理を繰返すようなコマンド(例えばping)を
停止する時に使う。
だから今何もしてないけど、
その「何もしてない」をキャンセルしちまった訳。 
だからコピーはできていない。
コピーのやり方は右クリックして「コピー」
若しくは「ctrl + shift + c

ほう。じゃ、ペーストはctrl + shift + v」?

そう。物分りが良くて助かる。

まあknznymmmyの一人芝居だから当然なんだけどな! 

で、コピーができたらHP上=firefox上で
 「ctrl + f」で検索欄出す→ctrl + v」で貼付→
HP上のハッシュ値が反応→(゚д゚)ウマー 

逆に「ctrl + shift + v」が必要になる場面は、
例えばどこぞのHPでubuntuの設定方法が書いてあったとする。
で、そこのページのコマンドをいちいち手打ちするのは面倒。
コピペをしたい。そういう時に使う。
いちいち手打ちするのはコマンド暗記の勉強にはなるけど
覚える価値の無いコマンドまで手打ちするのは面倒なだけ。

というかmd5sumの計算なんか半年に1回しかしなような(ry

いや、私はubuntuのiso落とした時以外でもハッシュは計算するけど?
例えばついったーでは何回も書いたけど 
これからインターネット監視とか著作権関係の規制とか
今よりも厳しくなると思う。
そのせいで今まで使えたフリーソフトが
配布停止になったりとかもあり得ると考えている。
現実にlinux mintは日本のサーバーでは一時公開停止になっていた。
今でもバージョンによっては日本のサーバーが存在しない。
これはCSS関係の問題。別の表現をすればDVD関係。
また2015年にはイギリスでitunesが違法化されて話題になった。
参考リンク1  参考リンク2
何も北朝鮮とか年中奇行に走っている国の話ではない。
しかもitunesみたいな有名ソフトでも
ヤラれる時はサクッとヤラれる。
対岸の火事と思ってボンヤリしてたら丸焼けになって死ぬ。
そのうちダメリカかJASRACあたりが基地外なルールを
押し付けてくると思うから今の内に貴重なファイルは保存するべき。
これはTPPとかNWOとか色々からんでくる話でもある。
そういうTPPなりJASRACなりに反旗を翻す意味でも
windowsを捨てろlinuxを使えと私は何年も前から力説している。

しかし、もうちょっと日常用途で何か無いのか?

ではunarの使い方を説明する。
zipその他の圧縮ファイルの解凍は
インストール直後のubuntuでも対応済。
しかし日本語のファイル名は文字化けする。
これに対処するにはunarを使って解凍すればよい。
unrarではないので要注意。

では、まずはソフトウェアセンターでインストールから?

そこでもできるが、CLIでソフトをインストールする方法も
紹介しておく。ターミナルで
$ sudo apt-get install xxxx
と打つと xxxx がインストールされる。
ソフトウェアセンターで「インストール」ボタンを押すのは
裏でOSがこういう処理を代行していたという事だ。
(つまりブラックボックスの中身が一部見えてきた訳だ)
確認画面はYESの意味でyを入力してenter  

サーセン。いきなりエラーっすけどw
「$: コマンドが見つかりません」って何っすか?
 

行頭の「$」は入力してはダメ。
それはターミナル開いた時点でもう出ているから。

んじゃ書くなよと小一時間(ry

いや、これを書くのには意味がある。
行頭が現在「$」であると明示する所に意味がある。

ほう?どんな?

一般ユーザーでログインしている事を示すという意味がある。
ルート=管理者だと「$」の箇所が「#」に変わる。
だから「$」を書くことで、
このコマンドは一般ユーザーで実行出来ますよ or
一般ユーザーで実行してくださいと明示している。
ただし今回のコマンドは最初にsudoがついている。
これは一般ユーザーが管理者権限を取得するという意味。
このへんがubuntuは甘ちゃんだと私が言う部分でもある。

しかしソフトウェアセンターではインストール可能なソフト名が
分類されて出てきたからいいものの、
この「apt-get」だと始めから名前の分かってるソフトしか
入れられないような・・・。

ggrksとも言うが、そういう時にはこれ(↓)もある。
$ apt-cache search xxxx
$ apt-cache show xxxx
これはsudoはいらないが、別に付けたとしても構わない。
(と書くとバカは何もかも全部sudoしだすから
実に頭が悪いと呆れるのだがw)
searchの方はxxxxをキーワードにしてソフト一覧を表示する。
例えば「apt-cache search mp3」でmp3関連のソフトがドカっと出る。
showの方はそうやって見つけたxxxxの詳細情報を表示する。
適当にキーワード入れて見つかったものをshowで覗いていけば
そのうち掘り出し物が見つかるかもしれない。 

ubuntuのリポジトリにソフトはどれぐらい登録されているのか?

忘れた。確か5万だか8万だかかなりの数。 
こことかを元に調べると2015年11月時点で
40759とか78129とか。
出てくる数字に幅がありすぎるけど
多分32bit版と64bit版を別物として数えるかどうかとか
何かしらの数え方の基準の違いと思う。
とりあえず100や200で済むレベルではない。
しかし、appleのアプリストアは150万件登録とか→リンク
androidのアプリも150万オーバーとかそれぐらい→リンク 

サーセンwとりあえずunarのインストールできたんすけど?

では、問題の圧縮ファイルを解凍する。
コマンドは「unar xxxx」でxxxxが圧縮ファイル。

んじゃ、また、さっきみたいにcdで・・・。

いや、今回は一気にすっ飛ばす方法を紹介する。
「unar 」 まで入力したら問題のファイルのアイコンを
ターミナルへドラッグ&ドロップ
(unarの後に半角スペース1個入っているので注意)
するとファイル名が一気にフルパスで入力される。

フルパス=絶対パス=ルートから見たパスの事。
住所で言えば
○○県○○市○○町○丁目○番地○○号○○マンション○○号室
みたいなものがフルパス。この反対は相対パス。
例えば「1丁目2番地のお得意さん」みたいなもの。
「1丁目ってどこの1丁目?」 
「お得意さんって具体的に誰のこと?」という事。

例えば「1個上のディレクトリの○○を」というのは
相対パスで話をしている。
1個上というのは今時分がどこにいるかで変わる。
つまり相対的な表現である。

住所で言えば、例えば「お隣さん」も相対パス。
会話で「お隣さん」と言えば特定の誰かを指すはずだ。
しかし誰がどういう文脈で「お隣さん」と言ったかで
その言葉が指す「具体的な個人」に違いが出るはずだ。
例えば、私の家の「お隣さん」と、読者諸氏の家の「お隣さん」は
99%別人のはずである。
若しくは家族関係で「パパ」というのも相対パスに似ている。
私の「パパ」は特定の個人を指す。読者諸氏の「パパ」もそうだろう。
しかし私の「パパ」と読者諸氏の「パパ」は99%別人のはずだ。
もし、同一人物だったら、今晩、色々と修羅場になりそうで困るw

「cd」する時に「cd Downloads」などと入れるのも
あれも相対パスでの表現。
今現在見えている(=lsをすれば表示されるはずの)
Downloadsフォルダに移動という事。
「cd /home/username/Downloads」と絶対パスで入れてもいい。
ただ、この程度のパスならまだしも、
状況次第ではクソ面倒なので相対パスがよく使われるだけ。
探せばどこか全く違う場所に、
やはり「Downloads」ディレクトリがあるかもしれない。
しかしそういう、ヨソの話は一旦抜きにしましょうという事。
自動でフルパスが入ったらそのままenter。これで解凍される。
ちなみに解凍先は圧縮ファイルのある場所ではなくて
カレントディレクトリなので注意。
圧縮ファイルと同じ場所に解凍するならcdする。 
本当は「-o」オプションというものがあるのだが
説明が長くなるから省略。
ヒントは「man unar」と打ってみる事。
「man」 コマンドはマニュアルの表示。
使い方がよく分からないコマンドがあれば
「man xxxx」で説明が出る。
「僕が悪かったですごめんなさい」と謝りたくなるぐらい
長い詳しいマニュアルだw

また、「unar 」の後にドラッグ&ドロップする応用で
GUIの作業中のディレクトリへ一気にCLIで飛んでいく
方法がある。

例えばダウンロードフォルダの整理をしていて
「あ、これ貴重だからハッシュ計算して保存しよう」と
思ったとする。
ではまずターミナル開く=ホームが開く
そこからcdでダウンロードフォルダに移動する。

しかし、フォルダによってはcdでポチポチするのが面倒。
nautilus-gksuとか色々あるけどそんなものに頼るのは邪道。
先にGUIで目的のディレクトリを開いている状況なら
ターミナルを開いて「cd 」だけ打って(半角スペース注意)
目的のディレクトリのタブ(スクリーンショットでは「Video」)を
ターミナルにドラッグ&ドロップすれば一気にフルパスが入る。
そのままenter。これで目的地まで一気に飛んでいける。 
スクショの例ではVideoディレクトリに飛んでいける。

もう十分記事が長くなったので今回はここまで。

最後はお約束のひと言をオナシャス。
「黒幕はキリスト教徒!」

みかん、いや未完。

0 件のコメント: