ネットワークシステム管理
#06
たかさきこうや
先週のおさらい
•UNIX(Linux)というOSを触ってみよう
•login.cuc.ac.jpに、teratermというターミナルソフトを使って
ログインしコマンドをたたくことが出来る
•cdで移動
•pwdで位置を確認
•lsでファイルとディレクトリ(フォルダ)のリストを確認
•moreでファイルの中身を確認
•exitでログアウト
•他もろもろ
ファイルやディレクトリは
•どうやって作るの?
•まずはディレクトリの作り方からやってみよう
▫ ディレクトリ=UNIXでいうところの「フォルダ」
コマンド:mkdir(make directory)
•ディレクトリ(フォルダ)を作成
•% mkdir NSA ←(ホームディレクトリに)ディレクトリ作成
•% cd NSA ←作成したディレクトリに移動
•% ls ←なにもファイルがない
•% mkdir 2018
• % mkdir 199X ←2018と同じ位置に作る
↑自分の生年のディレクトリを作ろう!
ついでに
•% cd 2018
•% mkdir 11
•% cd 11
•として、「今の月」のディレクトリを作り
その中に入ってみよう
• % pwd
▫ の結果、
▫ (中略)NSA/2018/11
となっていなかったら何かが間違った模様
ちょっと寄り道
•コマンド:date
▫ 今日の日付時刻を出力するコマンド
▫ % date –u
▫ で出てくるものはなーんだ?
•コマンド:cal
▫ カレンダーを表示するコマンド
% cal 1 1980 で出てくるものはなーんだ?
1752年9月のカレンダーを出してみよう
この場所で
•% date > 02.txt
•と、やってみよう
•何が起きるか?
•% more 02.txt
▫ とやって、02.txtというファイルの中身を見てみよう
特殊記号 「 > 」
•「 > 」 の記号は
「出力結果をファイルに新規に流し込む」
という意味
•「リダイレクト」と言う
コマンド:echo
•指定した通りの文字を出力
•% echo “Hello”
▫ と、試しにやってみると?
•では
•% echo “Hello” > 02.txt
•とすると何が起きる?
上書きされた…
•「 > 」だと、何時まで経っても上書き
されてしまう
•追記するには 「 >> 」 と、2回「 > 」を書く
•% date >> 02.txt
▫ としてみよう
•更に、ためしに(間違ったファイルとして)
•% cal >> 002.txt
▫ としてみよう(追記モードでも新規に作れる)
コマンド:rm (remove)
•ファイルの削除をする
•% ls
02.txt 002.txt
% rm 002.txt
% ls
02.txt
•削除したファイルは、絶対戻らない!
▫ UNIXには「ゴミ箱」はない!
rmコマンドのオプション
•rm –i 削除時に警告してくれる
•消す時には-iオプションを常につける癖を
つけると良いかも
参考:間違えたら
•rm -rコマンドでディレクトリは消える
•% mkdir 20018
•% ls
1997 20018 2018
•% rm -ir 20018
•% ls
1997 2018
コマンド:cp (copy)
•ファイルやディレクトリをコピーする
•% ls
02.txt
% cp –i 02.txt 08.txt
% ls
02.txt 08.txt
▫ % cp A B とすると、
Aのファイルの複製をBという名前で作れる
▫ -iオプションは「コピーする対象のファイルが既にあったら警告」
してくれる
02.txtというファイルを
08.txtという名前でコピー!
コマンド:mv (move)
•ファイルを移動(もしくは名前を変更)する
• % ls
02.txt 08.txt
• % mv –i 08.txt 09.txt
% ls
02.txt 09.txt
• -iオプションはcpやrmと同じで「上書きして(既存のファイ
ルが消えて)しまう場合は警告する」
では練習
•自分の生年月日のファイルを作ろう
▫ NSA/1997/04/13.txt
といった感じ
↑と同じファイルを作る人がいるかもしれないけど
4月13日はあくまでも僕の誕生日だからね?
あくまでも、みんなはみんなの誕生日日付でファイルを作るんだよ?
•このファイルの中に
•My Birthday!
▫ とだけ書こう!
更に
•NSA/1997/04/13.txt というファイルみたいに
•NSA/1998/04/13.txt
•NSA/1999/04/13.txt
•…と、今年の誕生日までのディレクトリと
ファイルを作ってみよう
•cp –r というオプションを使うと楽かも
参考:ディレクトリごとコピー
•% cp –r A B
▫ -rオプション ⇒ ディレクトリごとコピー可能
▫ ディレクトリAをディレクトリBという名前でコピー
再度、お節介
•rmコマンド、cpコマンド、mvコマンドには
どれも –i オプションが存在する
•-iがついていると、コマンド実行時に
警告をしてくれる
▫ rmコマンドの際は「本当に消していいかどうか」
▫ cp/mvの時は「上書きしてもいいかどうか」
参考:別の場所へコピー
•% pwd
/home/kohya/web_public/johokiso
% cp -r ../kenkyukiso/final ../../my_doc/
「/home/kohya」(kohyaのホームディレクトリ)
「my_doc」
「web_local」
「web_public」
「kenkyukiso」
「johokiso」 「final」
index.
html report
.html
「final」
index.
html report
.html
後ろにスラッシュがない
後ろにスラッシュがある
参考:mvでも同じことが出来るよ
•finalというディレクトリの中のreport.htmlというファイルを、
my_docの下に動かしたい場合
「~kohya」(kohyaのホームディレクトリ)
「my_doc」
「web_local」
「web_public」
「kenkyukiso」
「johokiso」
「final」
index.
html report.h
tml
こっちに動かしたい
参考:mvコマンドで
•% mv ~/web_public/kenkyukiso/final/report.html ~/my_doc/
•とするか、あるいは、
•% mv ../kenkyukiso/final/report.html ../../my_doc/
▫ 自分の位置に
注意!
「~kohya」(kohyaのホームディレクトリ)
「my_doc」
「web_local」
「web_public」
「kenkyukiso」
「johokiso」
「final」
index.
html
report.
html
参考:ディレクトリごと移動も可能
•% pwd
~kohya/web_public/johokiso
% mv ../kenkyukiso/final ../../my_doc/
「my_doc」
「web_local」
「web_public」
「kenkyukiso」
「johokiso」 「final」
index.ht
ml report.h
tml
「final」
index
.html repor
t.ht
ml
ちょっと考える
•% cd
•% cd NSA/2018/11
•% mkdir 10
•% mv –i 10 ../
•これは何をしているかな?
答え
•2018/11 というディレクトリの下に間違って
作成してしまった10というディレクトリがあり
(2018/11/10 になってしまっていた)
これを2018 の下に動かした
▫ 2018 の下に、 10 と 11 が出来た
コマンド:nkf
•~kohya/web_public/NSA/1996/04/13.txt
というファイルがある
▫ これは、「僕が初めてCUCに仕事をしに来た日」のことを記した
ファイル
•でも多分moreじゃ読めない
▫ Lessでも読めない
▫ それはこのファイルの中身がEUC-JP形式で書かれた日本語だからで
ある
文字コード再び
•UNIXサーバ上ではEUC-JPは比較的よく使用される
•しかしこのサーバにおいては、Unicodeでないとファイルが
読めない
▫ 他の文字コードでは文字化けする
•そこで
•% nkf –w ~kohya/web_public/NSA/1996/04/13.txt
•nkfは文字コードを変換するコマンド
パイプ 「 | 」
•% nkf –w ~kohya/web_public/NSA/1996/04/13.txt
•と打つと、ファイルの中身が一気に流れてしまい読みにくい
▫ moreでスペースキーを押しながら読みたい
▫ そこで
•% nkf –w ~kohya/web_public/NSA/1996/04/13.txt | more
•とする
•「|」の記号はBackSpaceのすぐ左側にあるキーをShiftを押しなが
ら入力
パイプの効能
•コマンドの出力結果を、別のコマンドに渡すことが出来る
▫ 「>」は、ファイルに書き出す だった
•% nkf –w ~kohya/web_public/TSA/1996/04/13.txt | wc
• とすると何が起きる?
コマンド: wc (word count)
•行数や単語数、文字数を数える
•% wc 13.txt
•とした結果と比べて、どう?
•% nkf –s ~kohya/TSA/1996/04/13.txt | wc
•とは?
•そしてこの結果はどうして生じる?
• % nkf –j ~kohya/TSA/1996/04/13.txt | wc
•だったら?
ていうかnkfの
•-s とか-jとか-wとかってなんだよ!
•という場合…
•% man nkf
•としてみる
コマンド:man (manual)
•コマンドのマニュアルを表示する
▫ -wは入力をUnicodeに
▫ -s はShift_JISに
▫ -j はISO-2022-JP(JIS)に
▫ -e はEUC-JPに
•それぞれ変換するコマンドラインオプションだとわかる
•% man man
•% man ls などもやってみよう
練習1
•僕の web_public/NSA/1996/ の下に作った
「僕がCUCデビューした日のファイル」を
どうにかして各自自分のディレクトリの
該当箇所にコピーした上で文字コードをUnicodeにしてみよう
▫「cp」コマンドはどういう仕事をする?
▫「~」はどういう意味だった?
▫「.」にはどういう意味がある?
▫ nkfコマンドをどう使う?
練習2
•% cd
•% cp –i ~kohya/.cshrc ~/
▫ 「cd」とだけ打った場合、何が起きる?
▫ 一応、自分のホームディレクトリに
「.cshrc」というファイルがないことを確認
練習3
•ファイルの作成のルールが分かったところで
▫ 9月23日に相当するファイルに、
nslookup www.cuc.ac.jp の出力結果
▫ 9月30日に相当するファイルに、
ifconfig –aの出力結果
▫ 10月07日のファイルに、uname –aの出力結果
▫ 10月14日のファイルに、ps –efの出力結果
•を、それぞれ書き出してみよう
本日のお題
•~kohya/NSA06/kohya.txt
•の中身を読んでその指示に従ってください。