* シェルとコマンド操作 [#ve2477c0]

** 目次 [#ybf8191c]

#contents

** シェルの基本 [#y742dedc]

*** 参考になるページ [#s706168a]

- http://www.tokaido.co.jp/syoko/handyman/contents.html
- http://www.wakhok.ac.jp/~maruyama/Unix92/Unix92.html
- http://www.mita.cc.keio.ac.jp/manual/unix/UNIX.html
- http://www.ep.sci.hokudai.ac.jp/~inex/y2004/1029/jitsugi/shell.html
- http://www.mlab.im.dendai.ac.jp/~tobe/xp-2/linux3.html
- 検索エンジンで「UNIX入門」,「シェルコマンド入門」,「シェルコマンドの使い方」などで検索して下さい.

*** UNIXコマンド [#haf6a284]

ターミナルを開いて,次のいろいろなシェルコマンドを試して、その機能を調べてください。参考ページや,manコマンドで,どういう働きのコマンドであるかを調べて下さい.

- マニュアルの閲覧
-- man
-- 以下のようにタイプして実行してみよ。
 man man

- ディレクトリ操作
-- ls
-- pwd
-- cd
-- mkdir
-- rmdir

- ファイル操作
-- cp
-- rm
-- mv
-- ln
-- chmod

- テキストファイル操作
-- cat
-- more
-- head
-- tail
-- file

- データ処理と検索
-- wc
-- sort
-- uniq
-- grep

- プロセス操作
-- ps
-- kill

- その他のコマンド
-- date
-- cal
-- who
-- od
-- passwd
-- alias
-- history

** シェルの機能 [#a1269158]

*** ワイルドカード [#o1902319]

シェルのコマンドラインでは、ファイル名を指定するときにワイルドカードが使えます。ワイルドカード「*」と「?」の意味について調べてください。

*** リダイレクトとパイプ [#bf61a00e]

シェルコマンドは「|」(縦棒)で接続し、前のコマンドの出力を次のコマンドの入力に流し込むことができます.これをパイプと呼びます.たとえば,
 ls -l | more
とするとls -lの結果を止めてみることが出来ます.

また、リダイレクト「>」を用いると、コマンドの出力結果をファイルに書き出すことができます。たとえば,
 ls > tako
とすると,lsの結果をtakoというファイルに書き込んでくれます.逆に「<」を用いると、ファイルの内容をコマンドの入力にすることも出来ます。

** 課題(シェル) [#w1fd4552]

【問1】 以下のコマンドが、それぞれ何をしているのか調べ、説明をメールに詳細に書いて,アドレス「hi-shiozawa@engs.tamagawa.ac.jp」まで提出してください。
- メールアドレスの「@」はコピーしないで、半角文字で打ち直すこと。

 echo Hello! > hello.txt
++ echo の意味は何か?
++ > の意味は何か?
++ hello.txt とは何か?
++ この操作の意味は何か?

 date > date.txt
++ date の意味は何か?
++ この操作の意味は何か?

 cat hello.txt date.txt
++ cat の意味は何か?
++ この操作の意味は何か?

 ps -aux | more
++ ps の意味は何か?
++ そのオプション a, u, x のそれぞれの意味は何か?
++ | の意味は何か?
++ more の意味は何か?
++ この操作の意味は何か?

 ps -aux | grep root >> date.txt
++ grep の意味は何か?
++ root の意味は何か?
++ >> の意味は何か?
++ この操作の意味は何か?

 find /etc -name "*tab" -print
++ find の意味は何か?
++ /etc とは何か?
++ オプション -name の意味は何か?
++ "*tab" とはどういう意味か?
++ この操作の意味は何か?

 sort -t: -k2 -n /etc/passwd | head -10
++ sort の意味は何か?
++ オプション -t, -k, -n の意味はそれぞれ何か?
++ /etc/passwd とは何か?
++ head の意味は何か?
++ オプション -10 の意味は何か?
++ この操作の意味は何か?

 cat *.txt > goodbye.txt
++ cat の意味は何か?
++ *.txt とはどういう意味か?
++ この操作の意味は何か?

 ln -s goodbye.txt seeyou.txt
 cat seeyou.txt
++ ln の意味は何か?
++ オプション -s の意味は何か?
++ この操作の意味は何か?

 chmod 000 goodbye.txt
 cat goodbye.txt
 cat seeyou.txt
++ chmod の意味は何か?
++ 000の意味は何か?
++ この操作の意味は何か?

【問2】 以下のような操作を実現するシェルコマンドを示しなさい。

+ ホームディレクトリの下に、「jikken」というディレクトリを作成するシェルコマンド。
+ 「himitsu.txt」というファイルを、誰からも読めなくするシェルコマンド。
+ 現在コンピュータで動いているプロセスの一覧を、ユーザ名の順番で並べ替えるシェルコマンド。1画面ごとに表示させるのが好ましい。
+ ディレクトリ「/usr/man」とそのサブディレクトリの中から、「g」で始まるファイルをすべて探し出して列挙するシェルコマンド。数が多い場合には、1画面ごとに表示させるのが好ましい。
+ コマンド「du」を用いると、指定したディレクトリとそのサブディレクトリのディスクの使用量が分かる。「du」の出力を大きい順に並べ替えるシェルコマンドを示しなさい。これも、1画面ごとに表示させるのが好ましい。
-- du の使い方の例
 du /usr/lib

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS