*計実 第7回課題 (実技テスト本体)4daysago
◎印はmanaba小テストに記述/提出する項目
●印は提出しない作業項目
◆1.ディレクトリ作成と操作
( 1.1 ) ◎自分のホームディレクトリの絶対パスを調べなさい.
→ ★manaba小テストに記述
※これ以降,ホームディレクトリを $HOME と記述する
https://gyazo.com/ea53a5a199c78f2ed03f5a0947b647b9
( 図01 Work 以下のディレクトリ構成 )
※まだの人,間違えている人は今作成/訂正しなさい
( 1.2 ) ●Exam23 ディレクトリに移動しなさい.
※すでに準備作業で自分の $HOME に Exam23 を作成しているはず
※これ以降の作業では特に指定してしない限り,カレントディレクトリは Exam23 として解答すること
( 1.3 ) ●Exam23 以下に,次に示すディレクトリ構成を作成しなさい.
※サブディレクトリもすべて作成する
※ディレクトリ作成方法・手順は問わないが,一度に複数のディレクトリを作成するのが効率的
https://gyazo.com/b4eff5419826d3bf58a3ca79b2ea7ede
( 図02 Exam23 以下のディレクトリ構成 )
※表示されているのはすべてディレクトリ名
( 1.4 ) ◎Work の下にあるPaul ディレクトリ ( 図01 ) を,サブディレクトリをすべて含め,Exam23 に相対パスでコピーしなさい.
→ ★この操作に用いるコマンドをmanaba小テストに記述
※カレントディレクトリが Exam23 であることに注意
※この結果,Lucy,John,Paul の3つのディレクトリが同じ階層 ( Exam23 の直下 ) にあるはず
※これ以降の操作はExam23ディレクトリに対して行う (Workディレクトリに対する操作は行わない)
●この結果を ls で確認しなさい.間違いがあれば,該当箇所からやり直すこと.
※相対パスでできない場合でも,他の手段でコピーして次に進むこと
→ これ以降の手順においても同様に随時確認し,間違いがあるならばやり直すこと
( 1.5 ) ◎カレントディレクトリ ( Exam23 ) の保護モードを,相対パスで8進数表記で以下のように設定しなさい.
1. 自分は読み・書き・移動が可能
2. 自分以外のすべてのユーザは,すべて不可
→ ★この操作に用いるコマンドをmanaba小テストに記述
※カレントディレクトリが Exam23 であることに注意
※カレントディレクトリから相対パスで設定できない場合,あるいは8進数表記で設定できない場合も,他の手段で設定しておくこと
●ここで,$HOMEに移動しなさい.
次で,これまでの作業結果を確認する.
( 1.6 ) ◎Exam23 以下のディレクトリとファイルすべてを,ls を使い,
相対パスを用いて,ロングフォーマットで,再帰的に
表示しなさい.
→ ★この操作に用いるコマンドをmanaba小テストに記述
※再帰的 → Exam23 の下のサブディレクトリ,その下のサブディレクトリ……をすべてたどる
※長い表示の閲覧にはページャ ( less ) を用いればよい ( 解答のコマンドに含めてもよい )
★★中間チェック★★
ディレクトリ構成は指示されたとおりか?
( 1.6 ) の結果, ls による表示も指示されたとおりか?
※この時点で違っていると,この後の作業での表示内容が変わってしまう
→ もし間違いに気づいたなら,該当場所からやり直すこと
( 1.7 ) ●課題 ( 1.6 ) で表示した結果を,( ページャではなく ) ファイル result01.dat に出力し,Exam23 に保存しなさい.
→ 最後にまとめて提出する
※過去に実行したコマンドを参照するには,ヒストリー機能を有効活用するとよい
課題1は以上.
◆2.ファイルのコピーと移動
( 2.1 ) ●再び,Exam23 ディレクトリに移動しなさい.
※これ以降は特に指定しない限り,カレントディレクトリを Exam23として作業・解答すること
data01.csv,data02.csv,data03.csv
このうち,
1. ◎data01.csv を Lucy ディレクトリにコピーしなさい.
→★ ( a ) 絶対パス,( b ) 相対パスを用いたコピーのコマンドをそれぞれ,manaba小テストに記述
※絶対パスを用いたコマンドについて記述する場合,コピー元とコピー先の両方について絶対パスで記述すること ( これ以降,コピーだけでなく移動の場合も同様である )
2. ●Lucy にコピーした data01.csv のファイル名を data1990.csv に変更しなさい. ← 作業のみ
( 2.3 ) ●まず,Exam23 にある data02.csv を data2000.csv というファイルとして同じディレクトリにコピーしなさい. ← 作業のみ
◎data2000.csv を John ディレクトリに移動させなさい.
→ ★ ( a ) 絶対パス,( b ) 相対パスを用いた移動のコマンドをそれぞれ,manaba小テストに記述
( 2.4 ) ◎Exam23 にある data03.csv を Paul ディレクトリに,ファイル名を data2010.csv に変更してコピーしなさい.
※コピーとファイル名変更を同時に行うこと
→ ★ ( a ) 絶対パス,( b ) 相対パスを用いたコピーのコマンドをそれぞれ,manaba小テストに記述
※この課題ができない場合も,( 2.2 ) か ( 2.3 ) の手順でコピーして次に進むこと
★★★中間チェック★★★
ここまでの作業により,Exam23 にある Lucy,John,Paul にはそれぞれ,
data1990.csv,data2000.csv,data2010.csv
が存在しているはず.よく確認しておくこと.
→もし間違いに気づいたなら,どこで間違えたのかをよく考え,該当場所からやり直すこと
※該当場所がわからなければ,最初から丁寧にたどること
( 2.5 ) ●まず,Exam23 にある data01.csv,data02.csv,data03.csv を一度に,John下のsea ディレクトリにコピーしなさい. ← 作業のみ
◎次に,sea にコピーされた data01.csv を相対パスで Lucy下のsky ディレクトリに移動させなさい.
→ ★この操作に用いるコマンドをmanaba小テストに記述
※相対パスでできない場合も,他の手段で移動させて次に進むこと
( 2.6 ) ●まず,Exam23 にある data01.csv,data02.csv,data03.csv を一度に,Paul下のground ディレクトリにコピーしなさい. ← 作業のみ
◎次に,ground にあるすべてのファイル(ディレクトリ含む)について保護モードを,相対パスで8進数表記で以下のように設定しなさい.
1. 所有者には読む権利と書く権利のみがある
2. それ以外のユーザーには何もアクセス権がない
→ ★この操作に用いるコマンドをmanaba小テストに記述
※カレントディレクトリから相対パスで設定できない場合,あるいは8進数表記で設定できない場合も,他の手段で設定して次に進むこと
( 2.7 ) ◎sea を,1回のコマンド実行により,相対パスでディレクトリごと消去しなさい.
→ ★この操作に用いるコマンドをmanaba小テストに記述
※一度のコマンド操作でできない場合も,他の手段で消去して次に進むこと
●ここで,$HOMEに移動しなさい.
( 2.8 ) ●これまでの作業結果を確認する.
Exam23 以下のディレクトリとファイルすべてを,
ls により,相対パスを用いて,ロングフォーマットで再帰的に表示し,
その結果をファイル result02.dat として出力し,Exam23 に保存しなさい.
→ 最後にまとめて提出する
★★★中間チェック★★★
ここでもチェックする.
1. ディレクトリ構成が指示されたとおりになっているか?
2. ls による表示も指示されたとおりの表示か?
3. 十分に確認してからファイルに出力すること.
※長い表示の場合はページャを使う
→ もし間違いに気づいたなら,該当場所からやり直すこと.
※該当場所がわからなければ,前の中間チェック以降を丁寧にたどること
課題2は以上.
◆3.データファイルの加工
ここでの課題は以下のとおり.
「ある観測地点の30年のデータの中で,6月の降水量が高い年順に上位8年分を表示する」
このための手順を以下に示す.
( 3.1 ) まず,下記のデータと作業があらかじめ必要である.
※( d ) ~ ( g ) は確認だけだが,もし抜けていることがあれば,この場で作業する
( a ) ◎自分の学籍番号の下3桁を確認
→ ★manaba小テストに記述
( b ) ◎観測地点番号は「学籍番号下3桁を 111 で割った剰余+1」
※別の観測地点を指示された場合はその番号
→ ★manaba小テストに記述
※別の観測地点を指示された場合はその地点名
→ ★manaba小テストに記述 ( 地点名のみを記載.都道府県名も読みも含めないこと)
( d ) ●気象庁公式サイトから,割り振られた観測地点における平年値用の1991年~2020年 ( 30年間 ) の 月平均気温と月降水量データを10年ずつ,3つのファイルに分けてダウンロード
1991年1月~2000年12月 → data01.csv
2001年1月~2010年12月 → data02.csv
2011年1月~2020年12月 → data03.csv
( e ) ●文字コードを変換 ( nkf )
※最悪これはできなくても大丈夫
( f ) ●Work ディレクトリにこれら3つのファイルをコピー
nkf を使ったら,( e ) と ( f ) は一連の操作となる
( g ) ●Exam23 に変換後のファイルをコピー
※(e)(f)をやらなければそのままdata01.csv~data03.csvをコピー
確認は以上.
( 3.2 ) ●Exam23 ディレクトリに移動しなさい.これ以降,カレントディレクトリを Exam23として解答すること.
( 3.3 ) ◎以下の手順で,データを加工する一連の処理を,複数のコマンドをパイプでつなげた1つのコマンド行で表現しなさい.
1. 10年ずつのデータファイルをすべてマージし,
2. 各年の6月のデータ行だけを取り出し,
3. 月降水量の列の値を数値として降順にソートし,
4. 上位の8個のデータ行を表示する ← この段階では画面出力
→ ★これらの操作を行う,1行コマンドをmanaba小テストに記述
※1つのコマンド行とは:
a. 一連のコマンドをつないでコマンドライン1行にしてある
b. Enter1回で一括処理として実行できる
※結果は画面出力 ( 表示 )すること ( この解答の段階ではファイル出力/保存しない )
★★注意★★
この時,以下のことを前提とする.
1. data という文字列から始まるファイルは data01.csv,data02.csv,data03.csv の3つしかない
2. データはすべて csvファイルであり,区切り文字として " , " ( コンマ ) が用いられている
3. ファイル1列目には年・月
4. ファイル2列目には平均気温
5. ファイル3列目に月降水量
※「列」とは:一行の中で,何らかの記号等で区切られた塊,欄,カラムのこと
上記のようなデータになっているかどうか,エディタなどで表示させて確認してみること.
★この課題について部分的にしか解答できない場合は,課題( 3.5 )を解答しなさい.
( 3.4 ) ●課題 ( 3.3 ) で表示した結果をファイル top08.dat に出力し,Exam23 に保存しなさい.
→ 最後にまとめて提出する
( 3.5 ) ◎課題 ( 3.3 ) について部分的にしか解答できない場合は,以下を解答しなさい.
※可能なら課題 ( 3.3 ) と課題 ( 3.5 ) の両方を解答しても構わない
←その場合は点数の高い方を評価とする
どちらも満点なら ( 3.5 ) よりも ( 3.3 ) の方が高評価
← 1行でできるほうがよい
※すべて相対パス表記を用いること
( a ) 10年ずつのデータファイルをマージし表示するコマンド
→ ★この操作に用いるコマンドをmanaba小テストに記述
( b ) 各年の6月のデータ列だけを表示するコマンド
→ ★この操作に用いるコマンドをmanaba小テストに記述
( c ) 月降水量の列の値を数値として降順にソートし表示するコマンド
→ ★この操作に用いるコマンドをmanaba小テストに記述
( d ) 上位8個 ( 冒頭の8行 ) のデータ列を表示するコマンド
→ ★この操作に用いるコマンドをmanaba小テストに記述
★★注意★★
この時,以下を条件とする.
( a ) については data01.csv,data02.csv,data03.csv の3つを用いる
( b ) ~ ( d ) については data01.csv だけを用いる
結果はすべて画面出力 ( 表示 )する ( ファイル出力ではない )
( 3.6 ) ( オプション ) (3.4)を解答した人のみ
●ファイル top08-note.txt を新規作成してエディタで開き,( 3.4 ) の出力ファイル top08.dat について,150字以内で考察を記述しなさい.
作成した top08-note.txt は,Exam23 に保存しなさい.
→ 最後にまとめて提出する
※適切な解答であればボーナス点として加点する
※ただし,課題 ( 3.4 ) について正しい出力結果が得られていることが前提
★★注意★★
ここでの「考察」とは,月降水量データの出力結果を見て,特徴的な点,気になった変化などを取り上げ,30年間の気候の変化について吟味することである.一般論ではなく,あくまでも結果として得られたデータに基づいて考察すること.
課題3は以上.
◆4.解答ファイルの編集とアップロード
( 4.1 ) ●解答ファイルの編集
1. 出力結果として保存した3つのファイル ( 課題 ( 3.6 ) をやった場合は4つ ) が,Exam23 ディレクトリにあることを確認しなさい.
result01.dat,result02.dat,top08.dat
( もしあれば ) top08-note.txt
2. これらのファイルを上記の順に1つのファイルにマージする.
その際のファイル名の規則は下記のとおりとする.
ファイル名: 自分の学籍番号+Exam23-All.txt
例:学籍番号がY230999ならば,Y230999Exam23-All.txt
※すべて半角の英数字 ( 全角文字を混入させないこと )
※学籍番号とExamの間に空白やハイフンをいれないこと
※大文字・小文字もすべてこの通りにする
これを 「解答ファイル」として,Exam23 に保存しなさい
※マージの方法は問わない ( cat でも nano でも vi でも )
3. nano/vi エディタを使い,下記に示すフォーマットに従って上記 解答ファイル を編集しなさい.
※フォーマットはコピー可能なので,必要ならコピーしてエディタで編集してもよい
※編集作業原則,Unixターミナルで行うこと.ただし,Unixでの編集がどうしてもうまく行かない場合は,Windows/MacOSのエディタで編集してもよいこととする
※Unixターミナル以外で編集した場合,解答ファイルをUnix側の Exam23 に保存するのを忘れてはならない
4. 編集した解答ファイル をmanaba小テストにアップロードできるように,Windows/MacOS側にコピー,保存しなさい.
※上述のようにWindows/MacOS側で解答ファイルを編集した場合はそのままでよいが,Unix側の Exam23 にもコピーしておくこと
( 4.2 ) manabaへのアップロード
◎上記 ( 4.1 ) で編集した解答ファイル を,manaba小テストにアップロードしなさい.
◎以上のすべての解答の記入とファイルのアップロードができたら,もう一度よく確認した上で,期限までに提出(送信)すること.
※保存しただけでは提出にならないので注意
※manabaの小テストは1度しか提出できないので注意
提出期限:7/27( 木 ) 16:00厳守
以上.
お疲れさまでした.
2023/7/11