シス管系女子BEGINS 第0.1話

シス管系女子をシェア!

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

1ページ目

(1ページ目)
第0.1話
コマンド操作でファイルを移動・コピーしたい

sshって、ほんと便利だな~~

カチッカチッ
カタタ……

今までは、サーバーに接続したキーボードやディスプレイで直接操作してたけど……
sshでリモートログインすれば自分の席のPCからサーバーを操作できちゃうなんて!

……まぁ、コマンド操作はやっぱりよく分からないから、「Xの転送」でGUIアプリを使ってるんだけどね

てへへ……

mint@mintpc:~$ ssh 192.168.11.100 -Y
mint@server:~$ nautilus

Xを転送するオプション

キー入力などの
情報を送信

画面に描画する
内容を送信

普通に手元でアプリを起動して
操作する感じだから、難しくないし♪

2ページ目

(2ページ目)
さて、次のサーバーにログインしてNautilusを起動して……

カタタ……タンッ!

$ nautilus
Command not found
$ █

最小構成でセットアップされているためGUI環境が存在していない

……って、ああっ1
このサーバー、Nautilusが入ってないのっ?!

あ~~ん!!

どうしよう、GUIじゃないとファイルの管理なんて無理だよう~~
こうなったら、先輩たちが見てない隙にNautilusを入れるしか……!

キョロ キョロッ

こらこらこら~~っ!!

ファイルの操作くらいコンソール上でやればいいじゃない!
もーっ!

だって、この黒い画面を見ててもどんなファイルがあるのか全然わかんないんですもん~~っ!!

エスパーじゃあるまいし、そりゃ誰だってそうよ……

確かに、GUIのNautilusだと今どんなファイルやフォルダーがあるのか常に目に見えていて分かりやすいけど……
コンソールの画面の向こうにだって、ファイルやフォルダーは変わらずにちゃんと存在してるし、それらを見る方法だってあるのよ!

コンソールでのファイル操作は、洞窟を手探りで探検するようなものなの

やみくもに進もうとしないで、いろんなコマンドの力を借りて安全に一歩ずつ進むのがコツよ!

で、今は何をしようとしてたの?

えっと……
作業フォルダーの中にあるログファイルを1つ、報告用のフォルダーに移動しようとしてたんです

3ページ目

(3ページ目)
じゃあ、まずはカレントディレクトリーの確認からいきましょ!

か、かりんとうケミストリー……?
活動休止中……

「カレント」!「ディレクトリー」!!
どんな聞きまちがいよ!?

「ディレクトリー(directory)」っていうのは住所録とか名簿とかの意味の言葉だけど、分かりやすくいえば「フォルダー」の別名ね

フォルダー
ファイル

ディレクトリー
ファイル

伝統的に、コマンド操作の世界ではファイルをまとめて管理するときの入れ物を「ディレクトリー」という用語で呼ぶのよ

GUI環境では複数のフォルダーを並べておいてマウスでその都度選択できるけど、コマンド操作ではそうはいかないわ

ここにあるファイルを操作するよ!

コマンドを実行するときには、常にどこかのディレクトリー1つだけが「現在位置」になるの
これを「Current Directory(現在のディレクトリー)」とか「Working(作業中の) Directory」と呼ぶのね

で、そのかりんとう……じゃなくてカレントディレクトリーはどうやったら分かるんですか?

ポリポリ

「pwdコマンド」を使えば一発よ!

「pwd」は「Print Working Directory」の頭文字ね

pwd

現在位置のことなら僕に聞いて!

このコマンドを実行すると、自分が今どのディレクトリーにいるのか(カレントディレクトリーがどこなのか)を教えてくれるの!

どれどれ……?
pwd、で[Enter]……

カタタ……ぱっ!

mint@mintpc:~$ ssh server
mint@server:~$ nautilus
Error: Nautilus is not installed
mint@server:~$ pwd
/home/mint
mint@server:~$ █

pwd

/home/mint

今いるのはここだよっ!

……あ、なんか出ました!

はい、これがカレントディレクトリーのパス(Path)ね

homeディレクトリーの中の

パスの区切り文字

mintディレクトリーにいる

/home/mint

ファイルやディレクトリーの位置はこの「パス」の形式で書き表すのよ

4ページ目

(4ページ目)
このパスを読み解くと、みんとちゃんは今ここにいるっていう意味になるわ!
コマンド操作では、こうやって常に自分の現在位置を正しく把握しておくのが大事なのね

/

ルートディレクトリー

home

ルートディレクトリーの中の「home」ディレクトリー

mint

homeディレクトリーの中の「mint」ディレクトリー

現在位置より上層(祖先ディレクトリー)

現在位置と同階層の他のディレクトリー(兄弟ディレクトリー)

現在位置より下層(サブディレクトリー)

あれ?
最初の「/」は「区切り文字」じゃないんですか?

これはルート(Root)ディレクトリーという特別なディレクトリーね

bin
lib
usr
ohno
mint
home
/

「ルート」は植物の根のことよ

すべてのファイルやディレクトリーは、この「ルート」を起点にして管理されてるの

へぇー……
って、「管理者」のことも「root」って言いませんでしたっけ?

root

ええ、その語源がこのルートディレクトリーなのよ
ルートディレクトリーを編集できる特権を持つ特別な管理者ユーザーだから「root」、ってわけね

さて
移動したいファイルは、このディレクトリーの中にあるのかしら?

そ、そのはずなんですけど
どんな名前のフォルダーの中にあったか思い出せなくて……

なら、次は「lsコマンド」の出番ね

ls

ファイルの一覧のことなら僕に任せてよ!

ls(小文字のL、S)は「List Segments」の略で、カレントディレクトリー内のファイルやディレクトリーをリスト形式で一覧表示してくれるわ!

カタタ……タンッ!

mint@mintpc:~$ ssh server
mint@server:~$ nautilus
Error: Nautilus is not installed
mint@server:~$ pwd
/home/mint
mint@server:~$ ls
log1      log1.txt  log2
log2.log  log3-csv  log3.csv
mint@server:~$ █

ぱっ!

ls

はい、これだけあったよ!

カレントディレクトリーの内容の一覧

……おおお!
ほんとだ!!

一覧が出た!!

5ページ目

(5ページ目)
……って、なんか似たような名前のファイルばっかりじゃない?

log1      log1.txt  log2
log2.log  log3-csv  log3.csv

あうう……す、すみません
よくわかんないまま作業してたんで……!

このどれかがディレクトリーで、その中にファイルがあるはずなんですけど……

う~ん

これじゃ、どれがどれか分からないわねぇ

こういうときは、lsコマンドに「-l」オプション(小文字のL)を指定して実行しましょ1

ls
-l

もっと詳しく教えてほしいのかい?

じゃあちょっと本気出しちゃうよ!

「-l」は「Long Listing」の意味で、項目の情報を1行ずつもっと詳しく表示する指定よ

カタタ……タンッ

エルエス、ハイフン、エル……っと

mint@server:~$ ls
log1      log1.txt  log2
log2.log  log3-csv  log3.csv
mint@server:~$ ls -l
total 12
drwxrwxr-x 2 mint mint 4096  x月 xx xx:xx log1
-rw-rw-r-- 1 mint mint  xxx  x月 xx xx:xx log1.txt
drwxrwxr-x 2 mint mint 4096  x月 xx xx:xx log2
-rw-rw-r-- 1 mint mint  xxx  x月 xx xx:xx log2.log
drwxrwxr-x 2 mint mint 4096  x月 xx xx:xx log3-csv
-rw-rw-r-- 1 mint mint  xxx  x月 xx xx:xx log3.csv
mint@server:~$ █

ls

これでどうだっ!

ぱっ!

わっ、今度はもっと色々出てきた?!

こんなにいっぱい情報出されてもわけがわかりませぇ~~んっ!
頭がスポンジになるーっ!!

落ち着いて、みんとちゃん!
今見てほしいのは一番左端の部分だけよ!

drwxrwxr-x 2 mint mint 4096  x月 xx xx:xx log1
-rw-rw-r-- 1 mint mint  xxx  x月 xx xx:xx log1.txt
drwxrwxr-x 2 mint mint 4096  x月 xx xx:xx log2
-rw-rw-r-- 1 mint mint  xxx  x月 xx xx:xx log2.log
drwxrwxr-x 2 mint mint 4096  x月 xx xx:xx log3-csv
-rw-rw-r-- 1 mint mint  xxx  x月 xx xx:xx log3.csv

ここが「-」の項目は通常のファイルで、「d」の項目はディレクトリーって意味なの!
ってことで、ディレクトリーはこの中だと3つだけね

そ、そうなんですね
ええっと……

mint
log1
log2
log3-csv

あ、思い出した1
ファイルは確か「log2」の中にあった気がします1

じゃあ、そのディレクトリーに移動して中身を見てみましょ

はーいこっちですよー

cd

今度は「Change Directory」の頭文字から名付けられた「cdコマンド」の出番よ!

6ページ目

(6ページ目)
「cd」のあとに続けてディレクトリー名を指定すると、カレントディレクトリーをそこに移動できるの

mint
log1
log2
log3-csv

cd

直前までカレントディレクトリーだったディレクトリー
(/home/mint)

新しくカレントディレクトリーになったディレクトリー
(/home/mint/log2)

mint@server:~$ cd log2
mint@server:~/log2$ █

設定次第ではカレントディレクトリーのパスがここに表示される場合もある

GUIではフォルダーを開いてたどっていくのに対して、コマンド操作ではcdコマンドでカレントディレクトリーを移動しながら作業するのね
現在位置が分からなくなったら、またpwdコマンドで確認してね!

で、そこでまたlsコマンドを実行してファイルの一覧を確認!

カタタタ……ぱっ!!

mint@server:~$ cd log2
mint@server:~/log2$ ls
access1.log     access2.log
access3.log     access-total.log
mint@server:~/log2$ █

はーい、これが
log2ディレクトリーの
ファイル一覧だよ!

ls

log2

あっ、これです!!
移動したかったの、このファイルです!!

これをどこに移動すればいいの?

ええっと……指示書には「/data/report/access-total.log」って書いてありました

ここに移動!!

移動先が分かってるなら話は簡単ね!
ファイルの移動は「move」を略した名前の「mvコマンド」の役目よ

mv

mvコマンドに移動したいファイルの名前と移動先のパスを指定すると……

おねがいね!

mv

「access-total.log」を「/data/report/access-total.log」の位置に移動するんだね?

mint@server:~$ cd log2
mint@server:~/log2$ ls
access1.log     access2.log
access3.log     access-total.log
mint@server:~/log2$ mv access-total.log /data/report/access-total.log█

移動するファイルを最初に指定

次に移動先のパスを指定

mvコマンドがファイルを目的地まで
運んでくれるってわけね!

トコトコ
mv

トコトコ
mv

ふぅ
mv
到着!

lsでファイルの
一覧を見ると……

移動したファイルが
カレントディレクトリーから
なくなっている

mint@server:~/log2$ mv access-total.log /data/report/access-total.log
mint@server:~/log2$ ls
access1.log     access2.log
access3.log
mint@server:~/log2$ █

おおっ、ほんとだ!

いやー、これで一件落着ですね!
ちゃんと指示書のとおりに……

……って、あああ~~っ!?

ど、どうしたの?!

ま、間違えちゃってましたっ!!
また使うから、移動じゃなくてコピーするんでした!!

なんだ、そんなこと……

7ページ目

(7ページ目)
じゃあ今度は、mvじゃなくて「copy」を略した名前の「cpコマンド」の出番ね

いくらでも増やしちゃうよ!

cp

これはその名の通り、指定した場所にファイルを複製するコマンドよ
使い方はmvと同じ要領で、「cp コピーするファイル コピー先の位置」の順で指定すればいいわ

ううう~~っ、じゃあまずはいったんファイルを元の場所に戻さないとですよね……

そんなことしなくても大丈夫!
向こうからこっちにコピーしてくればいいのよ!

もう運んじゃったよ……

mv

えっ、そんなのもアリなんですか!?

もちろん!

mint@server:~$ cd log2
mint@server:~/log2$ ls
access1.log     access2.log
access3.log     access-total.log
mint@server:~/log2$ mv access-total.log /data/report/access-total.log
mint@server:~/log2$ ls
access1.log     access2.log
access3.log 
mint@server:~/log2$ cp /data/report/access-total.log access-total.log█

コピーするファイルの
パスを先に指定

次に、コピー先になる
ファイルの名前を指定

さっきの移動先パスをコピー元に、移動元ファイル名をコピー先に指定すれば指定したファイルがカレントディレクトリーへコピーされるわ!

mvやcpに限らず大抵のコマンドはファイルをパスで指定されればカレントディレクトリーに関係無くそのパスのファイルを見に行くし、

cp

/tmp/access-total.log

探しに行ってきまーす!

/tmp/access-total.log

cp

ぴゅーっ!

cp

access-total.log

ここにあるはずなんだけど……

cp

名前だけで指定されればカレントディレクトリー内のその名前のファイルが指定されたと見なすようになってるの

だから、ほら!

mint@server:~/log2$ mv access-total.log /data/report/access-total.log
mint@server:~/log2$ ls
access1.log     access2.log
access3.log
mint@server:~/log2$ cp /data/report/access-total.log access-total.log
mint@server:~/log2$ █

コピーとってきたよ!

トコトコ……

cp

あっ、ほんとにこっちに持ってきた!

cp
トコトコ……

cp
ガーッ

ちゃんとカレントディレクトリーにファイルがコピーされたか、またlsコマンドで確認よ!

カタタ……タンッ!

mint@server:~/log2$ mv access-total.log /data/report/access-total.log
mint@server:~/log2$ ls
access1.log     access2.log
access3.log 
mint@server:~/log2$ cp /data/report/access-total.log access-total.log
mint@server:~/log2$ ls
access1.log     access2.log
access3.log     access-total.log
mint@server:~/log2$ █

ぱっ

おおお~~っ! 元の位置にファイルが戻ってます!!
よかった!!

8ページ目

(8ページ目)
ちなみに、mvもcpもファイル名2つを指定すればカレントディレクトリー内でのファイルの移動(コピー)に、パスとパスを指定すればカレントディレクトリーとは無関係の場所でのファイルの移動(コピー)になるわ

$ mv old.txt new.txt

カレントディレクトリーの中で古い名前から新しい名前に移動する=名前を変更した事になる

mv

$ cp /tmp/log.csv /data/log.csv

カレントディレクトリーをいちいち変更しなくてもファイルの移動(コピー)はできる

cp

状況によって一番ラクになるようにそれぞれの指定の仕方を使い分けるといいわね!

今回のまとめ

●コマンド操作では、「自分は今このディレクトリーを見ている」(「このディレクトリーがカレントディレクトリーである」)ということを常に意識する必要がある。
●カレントディレクトリーのパスは「pwdコマンド」、カレントディレクトリーのファイル一覧は「lsコマンド」で確認できる。
●「ls -l」の結果の左端が「d」になっている項目はディレクトリーである。
●ファイルを移動する「mvコマンド」とファイルをコピーする「cpコマンド」は、移動元(コピー元)を先に、移動先(コピー先)を後に指定する。

いやー……

ふぅ……

コマンド操作でのファイル管理ってコマンドを何度も実行しなきゃでけっこうめんどくさいんですねぇ

まぁ、慣れないうちはね
最初にも言ったけど、洞窟の中をpwdで足下を照らしたりlsで周囲を照らしたりしながらcdで現在位置を移動して進んでくみたいな感じで……

えーっと、ここを下りてこう進んだから……?

今ここですよ
pwd

ちょっと先の方見てきましょうか?
ls

そうやって現在の状況やコマンドの実行結果を逐一調べながら、自分の頭の中で今の状況を正確にイメージしつつ作業するのが、コンソールでのコマンド操作の基本なの
慣れてくれば、「さっきこのコマンドを実行したから今はこういう状態になってるはずだ」って感じである程度想像や類推で補えるようになるわよ!

つまり想像力が大事なんですね!

じゃあ、想像力を養うためにイメージトレーニングを……!

……うおっ、崩落きたぁっ!!
こ、今度は大蛇っ!?
ああっ!隊長が飲み込まれてっ……!!
急いで引き返して救援を……!!!

……みんとちゃん、リアルな洞窟探検のイメトレは意味なくない……?
隊長って誰よ……

つづく

第0.1話はここまで!

次の話へ

他のマンガを見る

拡散希望!

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