Skip to main content

演習02

問1. viコマンドを利用して「aaabbbccc」を入力した「test.txt」ファイルを作成して下さい。


問2. viコマンドを利用して「test.txt」ファイルを下記のように修正して下さい。このときコマンドモードにて修正すること。

変更前  
aaabbbccc

変更後
aaabbbccc
aaabbbccc
aaabbbccc
aaabbbccc

問3. viコマンドを利用して「test.txt」ファイルを下記のように修正して下さい。このときコマンドモードにて修正すること。

変更前  
aaabbbccc
aaabbbccc
aaabbbccc
aaabbbccc

変更後
aaabbbccc
aaabbbccc

問4. viコマンドで「test.txt」ファイルを開いた際に行番号を表示して下さい。
また一つ前の問題と同じ修正を行い保存せずに終了して下さい。


問5. viコマンドを利用して「test.txt」ファイルの中身の「ccc」を検索してみて下さい。


問6.
viコマンドを利用して「test.txt」ファイルを下記のように修正して下さい。このときコマンドモードにて修正すること。

変更前  
aaabbbccc
aaabbbccc

変更後
aaa ccc
aaa ccc

問7. /etc ディレクトリ上にあるファイルやディレクトリの一覧を表示してみましょう。


問8. ディレクトリ /etc には、多くのファイルやディレクトリが存在していることがわかります。
この中から目的のファイルを探すのは大変そうです。
そこでファイルを絞り込んでリスト表示してみましょう。
ls コマンドの結果から絞り込む場合、*(ワイルドカード)を使うことができます。
例えば、/etc ディレクトリ内の conf ファイルを絞り込んで表示するには、以下のように指定することができます。

$ cd /etc
$ ls *.conf

*は任意の文字列を示しており、この間に何文字が入っても検索結果として出力されます。
そのた め、上記のように多くの conf で終わるファイルがリスト表示されたはずです。

それでは host のあとに何らかの名前のつくファイルを絞り込みましょう。


問9. ファイル名の文字数がわかっている場合は ? を使って絞り込むこともできます。

$ cd /etc
$ ls ???.conf

? は一個につき何らかの一文字を示します。
そのため、ファイル名部分が 3 文字の conf が検索結 果として出力されます。

それでは host のあとに 4 文字含まれるファイルを絞り込みましょう。


問10. host のあとに 3 文字 + 最後の文字が e であるファイルを絞り込みましょう。


問11. find というコマンドを使って /etc の中にある hosts という名前のファイルを検索してください。


問12. find というコマンドを使って /etc の中にある host がファイル名に含まれているファイルを検索してください。


問13. 下記の内容のファイルを today というファイル名で作成してください。

#!/bin/sh
echo "今の時間は `date` です"

問14. 作成した today というファイルに Owner の実行権限を付けてください。


問15. today ファイルを実行してください。

今の時間は 20164月11日 月曜日 21時27分17秒 JST です

このような表示になれば成功です。


問16. today のあるディレクトリを環境変数 $PATH に追加してください。

下記コマンドが実行できれば成功です。

$ today
今の時間は 20164月11日 月曜日 21時27分17秒 JST です

問17. grep コマンドでは簡単な正規表現を使う事ができます。

記号意味
^行頭を表す
$行末を表す
.任意の一字を意味する
*直前文字の 0 回以上の繰り返しを意味する
[...].. の中の任意の一字を意味する
..... の文字が含まれないことを意味する。
\ 正規表現の記号をエスケープする。

利用例

記号意味
^aa で始まっている行
b$b で終わっている行
a.ba と b の間に 1 文字入っている
[ab]aba もしくは b に続く ab(aab,bab)
ababa もしくは b で始まらない (not) で、ab が続くもの (例: xab, zab 等)

grep コマンドを使用して /etc ディレクトリの中にある host で始まるファイルを出力してください。


問18. /usr/bin のディレクトリの中にある d で終わるファイルを出力してください。


問19. touch コマンドを使って test という名前のファイルを作ってください。


問20. touch コマンドの本来の利用目的はファイルのタイムスタンプを変更するコマンドです。 作成した test ファイルのタイムスタンプを 2000年1月1日の0時0分0秒 に変更してください。


問21. tail コマンドは -f オプションを付けるとリアルタイムでファイルの中を標準出力へ出力し続ける事ができます。 -f オプションを使って test ファイルの中を標準出力へ出力し続けてください。


問22. アクティビティ → 端末 → 右クリック → 新しいウィンドウで開く をクリックしてもう一つ起動してアクセスしてください。 先ほど作成した test ファイルに echo で名前を書き込んでください。 その際ファイルには上書きではなく追記とします。


問23. tail コマンドを実行した端末をチェックして test に書き込んだ内容が表示されている事を確認してください。


問24. 標準入力やファイルの中身などを順序よく並べるためには sort コマンドが使用できます。 下記のファイルを datafile という名前で作成してください。

yoshinori kawazu 85
keiichi oka 70
toru minemura 100

sort コマンドを使って datafile の中の順序をアルファベット順に並べかえてください。


問25. sort のオプション -k を利用して2つめの項目 kawazu oka minemura を対象にアルファベット順に並べかえてください。


問26. 問25 の結果を逆にしてください。


問27. sort のオプション -k を利用して3つめの項目を対象に数字順に並べかえてください


sample solution