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