[ 岡山大学 | 理学部 | 地球科学科 | 地球および惑星大気科学研究室 ]
/mnt/raid/skymonitor/pub には,岡山大学天文台で撮影した空の写真が格納されている.
空の写真は,撮影された日ごとに分けられて,それぞれディレクトリに格納されている.
撮影された年月日時分がファイル名に含まれているので,ファイル名を見れば撮影日時がわかる.
ホームディレクトリに exercise という名前のディレクトリがあるかないか,確認する.
ホームディレクトリに exercise という名前のディレクトリがないなら,
exercise
というディレクトリを作成する.
ホームディレクトリに exercise という名前のディレクトリがあるときは,exercise を別の文字列に置き換えて,ディレクトリを作成する.置き換える文字列はなんでもよい.
以下,このディレクトリを EXDIR と呼ぶ.
- ホームディレクトリにあるファイルの一覧を表示する
- ディレクトリを移動するコマンドは cd
- ファイルの一覧を表示するコマンドは ls
- ディレクトリを作るコマンドは mkdir
- ユーザ hogehoge のホームディレクトリは /home/hogehoge
- ユーザ hogehoge が exercise という名前のディレクトリを作った場合,EXDIR は /home/hogehoge/exercise になる
EXDIR の下に Q1 という名前のディレクトリを作成せよ.以下,このディレクトリを Q1DIR と呼ぶ.
2020年4月2日14:00に撮影された写真のコピーを,photo001.jpg という名前で Q1DIR の下に作成せよ.
- EXDIR が /home/hogehoge/exercise であるなら,QIDIR は /home/hogehoge/exercise/Q1
- /mnt/raid/skymonitor/pub には,2016, 2017 など4桁の数字からなるディレクトリがあり,各ディレクトリには4桁の数字が表す年に撮影された写真が格納されている.各年のディレクトリの下には,各月のディレクトリがあり,各月のディレクトリの下には,各日のディレクトリがあり,各日のディレクトリの下にはその日に撮影された写真が格納されている.
コピーによって生成した画像ファイルを表示せよ.
- JPEGの画像は display コマンドを使って表示することができる.カレントディレクトリが Q1DIR であるなら,
$ display photo001.jpg
で,画像が表示されなければならない.
カレントディレクトリが Q1DIR でないなら,cd を使って Q1DIR に移動してから,display コマンドを使う.
あるいは,ファイルを絶対パスで指定するのでもよい.
EXDIR の下に Q2 という名前のディレクトリを作成せよ.以下,このディレクトリを Q2DIR と呼ぶ.
教養地球科学実験で気象観測をおこなった日の空模様を確認する.
観測開始時の空を写した写真を探して,そのコピーを start.jpg という名前で Q2DIR の下に作成せよ.
観測終了時の空を写した写真を探して,そのコピーを end.jpg という名前で Q2DIR の下に作成せよ.
start.jpg と end.jpg をそれぞれ表示して,雲がどれくらい出ていたのかを確認せよ.
start.jpg のシンボリックリンクを,time000.jpg という名前で Q2DIR に作成する.
end.jpg のシンボリックリンクを,time120.jpg という名前で Q2DIR に作成する.
- シンボリックリンクは,ファイル(ディレクトリを含む)を指し示す別のファイルを使って本体のファイルを参照する仕組み,である.
- Windowsで「ショートカット」と呼ばれているものが近いかもしれない
- リンクを作成するコマンドは ln
- リンクにはハードリンクとシンボリックリンクがある(両者の違いを知りたい人は調べてみてください)
- コマンド ln はオプション -s を指定すると,シンボリックリンクを作成する
- オプション -s を指定しないと,ハードリンクが作成される
- file1 というファイルのシンボリックリンクを file2 という名前で作成するなら,
$ ln -s file1 file2
- file1 と file2 は絶対パスと相対パスのどちらで書いてもよい.ただし,file1 を相対パスで書くとき,パスの起点はカレントディレクトリではなく,シンボリックリンクが置かれるディレクトリ(コマンド実行後にfile2が作られるディレクトリ)がパスの起点となる.
- この問題は Q2DIR にシンボリックリンクを作成するのであるから,file1 を相対パスで書く場合は,Q2DIR を起点にしてパスを書く
time000.jpg を表示して,start.jpg と同じものが表示されることを確認せよ.
time120.jpg を表示して,end.jpg と同じものが表示されることを確認せよ.
EXDIR の下に Q3 という名前のディレクトリを作成せよ.以下,このディレクトリを Q3DIR と呼ぶ.
観測開始時と観測終了時の空を写した写真,それぞれのファイルのシンボリックリンクを Q3DIR の下に作成せよ.シンボリックリンクの名前は start.jpg と end.jpg とする.
- file1 というファイルのシンボリックリンクを file2 という名前で作成するなら,
$ ln -s file1 file2
- Q3DIR にシンボリックリンクを作成する
- file1 を相対パスで書くなら,Q3DIR を起点にした相対パスで書く
- file1 は絶対パスで書いてもよい
- file2 を相対パスで書くなら,カレントディレクトリを起点にした相対パスで書く
- file2 を絶対パスで書いてもよい
練習問題2aと練習問題3はどちらも start.jpg を作成する.
作成した2つの start.jpg を表示すれば,同じ画像が表示される(コピー元と参照先が同じなので).
$ display Q2DIR/start.jpg
$ display Q3DIR/start.jpg
これだけであれば,コピーとシンボリックリンクは同じである.が,もちろん全てが同じではない.
- コピーしたファイルを変更したとき,コピー元のファイルは変更されない.シンボリックリンクで作成したファイルを指定して,何らかの変更を加えると,参照先のファイルが変更される(変更できるかどうかはリンク先のファイルのパーミッションに依存する).
- コピー元・参照先のファイルの中身が変更されたとき,コピーで作成した Q2DIR/start.jpg に変更はないが,シンボリックリンクで作成した Q3DIR/start.jpg は参照先の中身が変更されたことに合わせてその中身が変わる.
- コピーはストレージを消費する.シンボリックリンクは(ほとんど)消費しない.コピー元のデータ量が大きいとき,コピーはいろいろな問題を生じることがある.
EXDIR の下に Q4 という名前のディレクトリを作成せよ.以下,このディレクトリを Q4DIR と呼ぶ.
2020年1月1日の毎正時(0分)に撮影された24枚の写真のシンボリックリンクを Q4DIR の下に作成せよ.
作成したシンボリックリンクのいくつかについて,シンボリックリンクを使って画像を表示し,参照先と同じ画像が表示されることを確認せよ.
- 24回コマンドを打ち込んでもいいですが,ワイルドカードを使うのが楽です
- file1 というファイルのシンボリックリンクを file2 という名前で作成するなら,
$ ln -s file1 file2
- file1 はワイルドカードを使って書くことができるが,file2 にワイルドカードを使うことはできない
- cp コマンドと同様に,ln コマンドでも file2 にディレクトリを指定することができる
- file2 にディレクトリを指定すると,file2 で指定したディレクトの下に,file1 と同じ名前でシンボリックリンクが作られる
- file2 でディレクトリを指定するにあたっては . や .. なども使うことができる
- 例えば,
$ ln -s file1 .
これは,参照先のファイルと同じ名前のシンボリックリンクをカレントディレクトリに作成する.
- このコマンドは,file1 としてカレントディレクトリにあるファイルを指定すると失敗する.なぜだかわかりますよね?
EXDIR の下に Q5 という名前のディレクトリを作成せよ.以下,このディレクトリを Q5DIR と呼ぶ.
2020年1月の各日の12時0分に撮影された31枚の写真のシンボリックリンクを Q5DIR の下に作成せよ.
作成したシンボリックリンクのいくつかについて,シンボリックリンクを使って画像を表示し,参照先と同じ画像が表示されることを確認せよ.
- 31回コマンドを打ち込んでもいいですが,ワイルドカードを使うのが楽です
EXDIR の下に Q6 という名前のディレクトリを作成せよ.以下,このディレクトリを Q6DIR と呼ぶ.
2020年の各日の12時0分に撮影された全ての写真のシンボリックリンクを Q6DIR の下に作成せよ.
作成したシンボリックリンクのいくつかについて,シンボリックリンクを使って画像を表示し,参照先と同じ画像が表示されることを確認せよ.
- 366回(2020年はうるう年なので)コマンドを打ち込んでもいいですが,ワイルドカードを使うのが楽です
- 2020年の各日の12時0分に撮影された写真は362枚あります(欠測があるので366になりません)
- 欠測したのはどの日だったのか調べてみるのもいいかも
- 作成したシンボリックリンクの数を数えてみる
- コマンドを実行したら,意図した通りにできたかどうか確認する,基本です
- 練習問題4と5でも,作成したシンボリックリンクの数は数えていますよね? 数えていない人は数えてください
- 数を数えるときはコマンドは wc -l を使うと楽ができます
EXDIR の下に Q7 という名前のディレクトリを作成せよ.以下,このディレクトリを Q7DIR と呼ぶ.
6時0分に撮影された全ての写真のシンボリックリンクを Q7DIR の下に作成せよ.
作成したシンボリックリンクのいくつかについて,シンボリックリンクを使って画像を表示し,参照先と同じ画像が表示されることを確認せよ.
- 作成したシンボリックリンクの数は数えましたか? 言われなくても数えていますよね?
- ちなみに,正解がいくつであるのか,知りません
- 正解がわからないなら数えても確認にならない,というのは正しいのですが,でもまあそれでも数えるべきです.間違いの種類によっては,間違えたとわかるときがあります(例えば練習問題6で365(うるう年なら366)よりも大きい数のシンボリックリンクが作成されていたら,明らかに何かを間違えたとわかる)
特定の時刻の写真のシンボリックリンクを作成することに何の意味があるのか疑問に思った人がいるかもしれない(疑問に感じるのは自然なことだと思います).
以下は,特定の時刻に撮影された写真をつなげて作成した動画のリンクである.
こういう動画を作ろうと思ったら,特定の時刻の写真を集めてくる必要がある.
ファイル名をひとつずつ確認して,マウスでクリックしてファイルをコピーしてもいいけど,まあ,普通の人はそんなことやる気にならないですよね.
でも,コマンドラインを使いこなせるようになれば,こんなことはとっても簡単にできてしまうのです.
撮影日時は左上に書いてあるのを見て確認することができる.ところどころに欠測があるので注意すること.
味わうポイントをいくつかあげてみると,
- 0時の空:月と星の位置
- 月と星の移動速度の違い
- 月の高度の季節変化
- 相対位置が変化しない恒星と,変化する惑星
- 6時の空,18時の空:青い空と黒い空
- 12時の空:太陽の位置
余裕がある人は,計算してみる・測ってみる・考えてみる
- 月の移動速度
- 理屈から月の移動速度を計算する
- 写真から月の移動速度を求める
- 理屈と観測を比較する
- 星の移動速度
- 理屈から星の移動速度を計算する
- 写真から星の移動速度を求める
- 理屈と観測を比較する
- 火星の移動速度
- 理屈から火星の移動速度を計算する
- 写真から火星の移動速度を求める
- 理屈と観測を比較する
- 木星の移動速度
- 理屈から木星の移動速度を計算する
- 写真から木星の移動速度を求める
- 理屈と観測を比較する
- 月の高度の季節変化
- 月の高度が季節変化する理由を考える
- 月の高度の季節変化から月の軌道を推定する
- 太陽の方位の季節変化
- 太陽の方位が季節変化する理由を考える
- 太陽の方位の季節変化から地球の軌道を推定する
ディレクトリ EXDIR を削除せよ.
- ディレクトリを削除するコマンド rmdir は,(オプションを特に設定していないなら)削除しようとするディレクトリにファイルが存在するときにディレクトリを削除しない
- ディレクトリを削除する前に,ディレクトリに存在するファイルを削除したらよい
- 削除するファイルがたくさんあると,面倒な作業になる
- ファイルを削除するコマンドは rm は,(オプションを特に設定していないなら)ディレクトリを削除しない
- rm コマンドは,オプションで -r を指定するとディレクトリを削除する
Last Updated: 2023/10/14, Since: 2020/10/11.
This page is generated by Makefile.rd2html.