C シェル入門(1) --- コマンド形式の基礎
C シェルの開始
Cシェルは、 ログインしたとき、 CDE の メニューで 「端末エミュレータ」 を 起動したとき、 csh コマンドを 実行したときに 開始される。
引数とオプション
コマンド行は、 コマンドと 引数で 構成されている。
例: ls -l *.ps
ls | コマンド名(ファイル名) | ディレクトリの内容を表示 |
-l | オプション | 長い(long)形式 |
*.ps | ターゲット | 対象となるファイルを指定 |
ファイル名のマッチング
* | 0文字以上の全ての文字に一致 | *.ps -> a.ps abc.ps |
? | 1文字の全ての文字に一致 | a?.ps -> aa.ps ab.ps |
[ ] | 大括弧内のどれかに1文字が一致 | [A-Z]bc.py -> Abc.py Sbc.py |
{ } | 中括弧内の,で区切られた文字列のどれかに一致 | {ura,cyg}nus -> uranus cygnus |
コマンド列
; (セミコロン)で区切って2つ以上のコマンドを連続実行する
例: cd / ; ls
コマンド行の継続
行の最後に \ (バックスラッシュ・円マーク)を入れると、継続して次の行にコマンドの続きを書くことができる
入出力先の切り替え(リダイレクト)
> | 標準出力をファイルへ | ls -a > files |
>> | 標準出力を既存のファイルに追加 | date >> files |
< | 標準入力をファイルから | cat < files |
| | 標準出力を次のコマンドの標準入力へ(パイプ) | ls -a | wc |
フィルター
パイプで繋いで使うことができるコマンド
more | 出力を1ページずつ表示 |
grep | パターンを探す |
head | ファイルの先頭だけを表示する |
tail | ファイルの末尾だけを表示する |
sort | 行を並べ変える |
spell | スペルチェック |
sed | テキストの編集 |
wc | 行、語、文字数を数える |
例題
- あなたの友人知人10人の名前(first name)を ~/coreinfo/friends という ファイルに、1行にひとりずつ、書きなさい。 次に、この名前をアルファベット順に表示しなさい。また、ko を含む行を取り出しなさい。また、最初の1人を表示し、次に最後の3人 だけを表示しなさい。アルファベット順の最初の3人を表示しなさい。
- 解答:
% cd coreinfo % touch friends % dtpad friends & (別ウィンドウで作成し保存する) % cat friends Aya Mariko Rumiko Kumiko Keiko Tomoko Atsuko Ayumi Rie Saori % sort friends Atsuko Aya Ayumi Keiko Kumiko Mariko Rie Rumiko Saori Tomoko % grep ko friends Mariko Rumiko Kumiko Keiko Tomoko Atsuko % head -1 friends Aya % tail -3 friends Ayumi Rie Saori % sort friends | head -3 Atsuko Aya Ayumi
練習問題
~/coreinfo ディレクトリで実行してください。
- 例題で作成した friends の最初の4行を friends4 という名前のファイルに入れなさい。
- kanji コマンドはシステムで使用できる漢字のリストを 出力します。これを1画面ずつ表示しなさい。
- kanji コマンドの最初の10行と最後の10行を kanji20 というファイルに入れなさい。(これは2回のコマンド実行が必要です)
- kanji の出力から、自分の名前の第1文字目が入って いる行を取り出しなさい。
- 以上の問題で実行したコマンドは history コマンドで見ることができる。history コマンドの実行結果を hist4 という名前のファイルに入れなさい。
フィルターはこんなに便利
- 画像処理に使う netpbm コマンド群は全てフィルターとして使える。 詳しくは http://zope.lab.tkikuchi.net/edu/image/
(画像処理論の シラバス) やネットで検索などしてもらうことにして、以下の様に コマンドを繋ぐことができる。
% wget http://www.is.kochi-u.ac.jp/images/JohoTo.jpg % djpeg JohoTo.jpg | ppmtopgm | pnmscale 0.3 | pgmoil | cjpeg > JohoTo-x.jpg
- 1行目では wget コマンドで画像を取ってきている。
- 2行目で、まず JPEG 形式を解凍し、カラーから白黒に変換、大きさを 0.3 倍に縮小、油絵効果フィルターをかけ、JPEG 形式に圧縮し、出力を JohoTo-x.jpg という名前のファイルに入れている。
- 元はこれ http://www.is.kochi-u.ac.jp/images/JohoTo.jpg
- 結果はこちら JohoTo-x.jpg