Skip to content

Linux リテラシ2006 - 第3回 エディタ、シェル 演習問題解答

This content is not available in your language yet.

:問題(1):
viを用いてexample.txt を閲覧し、文字列”find”を検索せよ
:解答:

Terminal window
$ vi example.txt

でexample.txtをviで開いた後、

/find

:問題(2):
文字列”Hosei”を出力のリダイレクトを使って新規ファイルexercise.txt に書き込め
:解答:

Terminal window
$ echo Hosei > exercise.txt

:問題(3):
文字列”University”を出力のリダイレクトを使ってexercise.txt に追記せよ
:解答:

Terminal window
$ echo University >> exercise.txt

:問題(4):
exercise.txt の内容を入力のリダイレクトを使って表示せよ
:解答:

Terminal window
$ cat < exercise.txt

:問題(5):
ls -al ex?.txtを実行し、何が表示されるか確認せよ
:解答:

Terminal window
$ ls -al ex?.txt
-rw-rw-r-- 1 foo foo 12 6月 1 03:40 ex1.txt
-rw-rw-r-- 1 foo foo 14 6月 1 03:40 ex2.txt
-rw-rw-r-- 1 foo foo 21 6月 1 03:41 ex3.txt

’?’は何か1文字の代わりに使うことが出来るので、ex1.txt、ex2.txt、ex3.txtについてls -alが適用されます。
:問題(6):
ls -al ex*を実行し、何が表示されるか確認せよ
:解答:

Terminal window
$ ls -al ex*
-rw-rw-r-- 1 foo foo 12 6月 1 03:40 ex1.txt
-rw-rw-r-- 1 foo foo 14 6月 1 03:40 ex2.txt
-rw-rw-r-- 1 foo foo 21 6月 1 03:41 ex3.txt
-rw-rw-r-- 1 foo foo 106 5月 31 19:10 example.txt
-rw-rw-r-- 1 foo foo 17 6月 6 18:38 exercise.txt

’*‘が全ての文字列を表しているので、exから始まる以上5つのファイルにls -alが適用されます。
:問題(7):
コマンドhistoryの出力をパイプして、lessで表示せよ
(history :コマンドの使用履歴を表示する)
:解答:

Terminal window
$ history | less
1 vi example.txt
2 echo Hosei > exercise.txt
3 echo University >> exercise.txt
4 ls -al ex*
5 ls -al ex?.txt
6 history | less
・・・

Linuxはデフォルトでは1000回分のコマンドを保存します。
:問題(8):
コマンド列 cat ex1.txt ex2.txt ex3.txt にcisという別名をつけよ
:解答:

Terminal window
$ alias cis='cat ex1.txt ex2.txt ex3.txt'

:問題(9):
(8)で定義したエイリアスが本当に定義されているかどうか確認せよ
:解答:

Terminal window
$ alias
alias cis='cat ex1.txt ex2.txt ex3.txt'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

Linuxにはデフォルトでいくつかのコマンドがエイリアスとして定義されています。
:問題(10):
(8)で定義したエイリアスを実行せよ
:解答:

Terminal window
$ cis
Faculty of
Computer and
Information Sciences

ex1.txt、ex2.txt、ex3.txtの内容が連結されて表示されます。
:問題(11):
(8)で定義したエイリアスを削除せよ
:解答:

Terminal window
$ unalias cis

エイリアスが削除されているかaliasを使って確認してみてください。
:問題(12):
viでtest.shを作成し、

#!/bin/sh
#
cat ex?.txt > test.txt
cat exercise.txt >> test.txt
cat test.txt

を書き込み保存せよ。
:解答:

vi test.sh

でtest.shを開いた後、指定された内容を入力して保存します。
:問題(13):
./test.shを実行し、動作しないことを確認してから、test.shに実行権限を付与した後、再度実行せよ
:解答:

Terminal window
$ ./test.sh
-bash: ./test.sh: 許可がありません

動作しないことを確認したら、

Terminal window
$ chmod a+x test.sh

でtest.shに実行権限を与えてから再度実行します。

Terminal window
$ ./test.sh
Faculty of
Computer and
Information Sciences
Hosei
University

結果、このようにex1.txt、ex2.txt、ex3.txt、exercise.txtの内容がリダイレクトによって作成されたtest.txtの中身がcatによって表示されます。