第3回 シェルとコマンド操作

目次

シェルの基本

参考になるページ

UNIXコマンド

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

活用例:漢字コードの検査

fileコマンドでは漢字コードを調べることもできます。コンピュータで使われる漢字コードには複数種類あります.おもにJIS(じす), SJIS(しふとじす), EUC(いーゆーしー), Unicode(ゆにこーど)が使われています.Vine LinuxはJIS, SJIS, EUCを扱います.

  1. 前回の課題で作ったファイルを、以下のコマンドで調べて下さい.
    file way2eng.text
    すると結果にEUCのテキストだと出てくると思います.
  2. EUCだと分かる名前に書き換えておきましょう
    mv way2eng.text way2eng.text.euc
  3. その他いろいろなファイルの種類を調べてみてください。

活用例:プロセス操作

psは現在稼働中のプロセス(プログラム)の状態を示し,killはそれを強制終了するコマンドです.psとkillの組み合わせを実験してみよう.

  1. ターミナルウィンドウを二つ開けて下さい.片方で,
    ping www.tamagawa.ac.jp
    とタイプして下さい.
  2. 動き続けているpingはコントロールCでとめられるが,これをもう一つのターミナル ウィンドウから止めてみよう.
  3. もう一つのターミナルウィンドウから
    ps -a
    コマンドをタイプして下さい.
  4. このなかにpingというのがあるはずです.そのPID (プロセスID)を覚えて下さい.
  5. pingのPIDがたとえば12345だったばあい
    kill 12345
    とタイプしてみて下さい.pingは止まったでしょうか.

シェルの機能

ワイルドカード

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

リダイレクトとパイプ

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

ls -l | more

とするとls -lの結果を止めてみることが出来ます.

また、リダイレクト「>」を用いると、コマンドの出力結果をファイルに書き出すことができます。たとえば,

ls > tako

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

活用例:漢字コードの変換

nkfコマンドで漢字コードを変換してみましょう。

  1. まず、以下のようにタイプして使い方を全部読んで下さい.(日本語です)
    man nkf
  2. way2eng.text.eucのファイルをnkfで変換して,これのJIS版を作成してください。名前は、way2eng.text.jisとしてください。作り方は自分で工夫して下さい.
    • ヒント:リダイレクトを使います。
  3. 同様にして、これのSJIS版 way2eng.text.sjisを作って下さい.
  4. 以下のようにタイプして,それぞれのファイルの漢字コードを確認して下さい.
    file way2eng* 

なお、ターミナルはEUCとJISは表示できますが,SJISはだめのようです.間違ってSJISを表示しようとして,表示が乱れてしまったら,resetというコマンドを打って下さい .

課題(シェルとコマンド)

以下のコマンドが、それぞれ何をしているのか調べ、説明をメールに詳細に書いて,アドレス「report@fig.ele.eng.tamagawa.ac.jp」まで提出してください。

不明なコマンドはmanコマンドなどで調べて下さい。メール提出後、教員または教育補助員に報告して確認してもらい、OKをもらったら(だいたい正解していたら)次に進んでください。

echo Hello! > hello.txt
  1. echo の意味は何か?
  2. > の意味は何か?
  3. hello.txt とは何か?
  4. この操作の意味は何か?
date > date.txt
  1. date の意味は何か?
  2. この操作の意味は何か?
cat hello.txt date.txt
  1. cat の意味は何か?
  2. この操作の意味は何か?
ps -aux | more
  1. ps の意味は何か?
  2. そのオプション a, u, x のそれぞれの意味は何か?
  3. | の意味は何か?
  4. more の意味は何か?
  5. この操作の意味は何か?
ps -aux | grep root >> date.txt
  1. grep の意味は何か?
  2. root の意味は何か?
  3. >> の意味は何か?
  4. この操作の意味は何か?
find /etc -name "*tab" -print
  1. find の意味は何か?
  2. /etc とは何か?
  3. オプション -name の意味は何か?
  4. "*tab" とはどういう意味か?
  5. この操作の意味は何か?
sort -t: -k2 -n /etc/passwd | head -10
  1. sort の意味は何か?
  2. オプション -t, -k, -n の意味はそれぞれ何か?
  3. /etc/passwd とは何か?
  4. head の意味は何か?
  5. オプション -10 の意味は何か?
  6. この操作の意味は何か?
cat *.txt > goodbye.txt
  1. cat の意味は何か?
  2. *.txt とはどういう意味か?
  3. この操作の意味は何か?
ln -s goodbye.txt seeyou.txt
cat seeyou.txt
  1. ln の意味は何か?
  2. オプション -s の意味は何か?
  3. この操作の意味は何か?
chmod 000 goodbye.txt
cat goodbye.txt
cat seeyou.txt
  1. chmod の意味は何か?
  2. 000の意味は何か?
  3. この操作の意味は何か?

第2回レポート(シェル)

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

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

【問2】 次回にまわしたが、希望者はやってもいい。(第3回レポート【問1】)

【問3】 以下の言葉をすべて使って、シェルについて簡潔に説明する文章を作成しなさい。その際、用語集のような箇条書きではなくて、教科書のようにつながった文章で書くようになさい。

以上

【提出期限】

【提出方法】

【注意事項】

【PC演習室】


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-05-28 (土) 03:14:53