第11回【とあるサーバの下学上達〜サイエンスプログレンス〜】

こんばんは、高城梢です。
来週平成25年3月6日の放送はお休みとなります。ちょっと海外に行って参ります。

平成25年2月27日の放送は「diff,echo,umask,chmod」です。

diffコマンド
ファイル内容の相違を調べる
diff -i ファイル1 ファイル2
ファイル1とファイル2の何が違うのかを調べる
例えば、

no-MacBook-701:mydir kozue$ diff -i file3 file4.txt
9,13d8  行数を表している。dはデリートのd 左のファイルの9〜13行目と8行目をデリート処理しなさいということを示しています。
< aaaaa < bbbbb < aiueo < aiueo < -f  < これは、左のファイルから9〜13行目のこれらを省けば、一致しますということ。 それか、8行目を削除すれば一致しますということ。 diff -u ファイル1 ファイル2 ユニファイド形式というもの。マイナスはfile3のことプラスはfile4のことを指している。 toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ diff -u file3 file4.txt --- file3 2013-02-27 21:17:04.000000000 +0900 +++ file4.txt 2013-02-27 21:17:11.000000000 +0900 @@ -6,8 +6,4 @@ 前後の文字も表示してくれる マイナス(file3)を6行目からスタートして8行表示してます プラス(file4.txt)を6行目からスタートして4行表示してます asdjfkalfjgjeirow,f -aaaaa -bbbbb -aiueo -aiueo -f \ No newline at end of file マイナスとプラスで所属を示している ここでは、file3にaaaa〜fが所属しており、file4.txtに足りないということ toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ diff -u file3 file4.txt --- file3 2013-02-27 21:17:04.000000000 +0900 +++ file4.txt 2013-02-27 21:21:54.000000000 +0900 @@ -6,8 +6,6 @@ asdjfkalfjgjeirow,f -aaaaa bbbbb -aiueo -aiueo +hahihuheho -f \ No newline at end of file これだと、file3,file4.txtの両方にbbbbbがあることがわかる +hahihuhehoはfile3にはない diff ディレクトリ1 ディレクトリ2 ディレクトリの中を比較する 例えば、 -no-MacBook-701:nanaly kozue$ diff mydir mydir2 Only in mydir2: file1 Only in mydir2: file10.txt Only in mydir2: file11 Only in mydir2: file2.txt diff mydir/file3 mydir2/file3 11,13d10 < aiueo < aiueo < -f Only in mydir2: file3.txt Only in mydir2: file5.txt Only in mydir2: file6.txt Only in mydir2: file7.txt Only in mydir2: file8.txt Only in mydir2: file9.txt Only in mydir2: filex Only in mydir2: newfile only in は、このディレクトリにしかその(ここでは、ファイル)ものがありません < は上記と同じ ここでは、mydirのfile3の11行目〜13行目からこれらを削除する もしくはmydir2のfile3の10行目を削除する echoコマンド テキストをエコー表示する toarusabanokagakujoutatsu-no-MacBook-701:nanaly kozue$ echo this is sample this is sample echo 文字 > ファイル名
ファイル名に文字を追記できる
toarusabanokagakujoutatsu-no-MacBook-701:nanaly kozue$ echo abcde >file1

;を使うことで、ワンライナーできる(一行で複数のことができる)
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ echo aaaa ; echo bbbb
aaaa
bbbb
fileの内容も変更できる
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ echo aaa > file3 ; cat file3
aaa

umaskコマンド
パーミッションマスク値の設定
最初の設定のマスク値
toarusabanokagakujoutatsu-no-MacBook-701:nanaly kozue$ umask
0022
頭の0は考えないでOK
パーミッション777(読み書き実行全て許可)から022を引いたものがマスク値

ディレクトリが777ファイルは666から022を引いたものがマスク値
なので、ディレクトリが755 ファイルは644とデフォルトで設定される

umaskを変更してみる
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ umask 021
これで変更される。試しに、echoコマンドでファイルを作成してみる
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ echo abcde > file1
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ ls -l
total 24
-rw-r–rw- 1 kozue staff 6 Feb 27 21:43 file1
-rw-r–r–@ 1 kozue staff 4 Feb 27 21:31 file3
-rw-r–r–@ 1 kozue staff 75 Feb 27 21:21 file4.txt
file1のパーミッションが変更された
オーナーの読み書き許可、実行不可、グループの読み許可、書き実行不可、そのほかのユーザーの読み書き許可、実行不可になる

先ほど設定したので、マスク値が変更されているのがわかる
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ umask
0021
例えば、マスク値を444にしてみる
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ umask 444
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ echo abcde > file2
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ ls -l
total 32
-rw-r–rw- 1 kozue staff 6 Feb 27 21:43 file1
–w–w–w- 1 kozue staff 6 Feb 27 21:45 file2
-rw-r–r–@ 1 kozue staff 4 Feb 27 21:31 file3
-rw-r–r–@ 1 kozue staff 75 Feb 27 21:21 file4.txt
file2のパーミッションが変更されたことがわかる。
全て、書きだけ許可で、読みも実行も不可
ちなみに、普通にクリックで開こうとすると注意がでて開けない
書き込み権限はあるので、追記してみる
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ echo bbb >> file2
これで、追記完了
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ ls -l
total 32
-rw-r–rw- 1 kozue staff 6 Feb 27 21:43 file1
–w–w–w- 1 kozue staff 10 Feb 27 21:47 file2
-rw-r–r–@ 1 kozue staff 4 Feb 27 21:31 file3
-rw-r–r–@ 1 kozue staff 75 Feb 27 21:21 file4.txt
file2のバイト数が増えているので追記が変更されていることがわかる。
このあと、マスク値を元に戻してもfile2のパーミッションは変更されない

chmodコマンド
アクセス権を変更する
パーミッションのことをモードともいう
ユーザ uオーナ、gグループ、oその他のグループ、a全ユーザ
オペレータ +モード追加、−モード削除、=モード設定
モード r読み込み、w書き込み、x実行、s SUIDビットSGIDビット、t Stickyビット

例えば、o+w その他のグループに書き込み権限を許可する
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ chmod o+w file2
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ ls -l file2
–w–w–w- 1 kozue staff 10 Feb 27 21:47 file2
最初から出ていたので変化しませんでした
詳細を表示してくれる -v その他のグループから読み込みと書き込みを削除する
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ chmod -v o-rw file2
file2
macだと-vしても詳細がでませんでした
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ ls -l file2
–w–w—- 1 kozue staff 10 Feb 27 21:47 file2
その他のグループから書き込み権限がなくなりました
-vが使えなかったので、ワンライナーを使いました
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ chmod 664 file2 ; ls -l file2
-rw-rw-r– 1 kozue staff 10 Feb 27 21:47 file2
グループとその他のグループを書き込み権限だけにする
toarusabanokagakujoutatsu-no-MacBook-701:mydir kozue$ chmod go=w file2 ; ls -l file2
-rw–w–w- 1 kozue staff 10 Feb 27 21:47 file2

今回の内容はこんなかんじでした。もうすぐサーバをたてるようです!楽しみですね。
次回は、平成25年3月13日になります。6日はお休みです。ご了承ください。
それでは、次回もよろしくお願いします。
ustreamの放送内容はこちら  http://www.ustream.tv/recorded/29601343

コメントを残す