PPT

情報処理Ⅱ
2004年2月3日(火)
この科目で学んでほしかったこと



標準的なC言語の文法
プログラミングの心がけ
プログラムを読む方法


机上デバッグ,机上トレース,推敲を含む.
機能(関数)をもとにして,新たな機能(関数)を
構成すること
次のセメスターで学んでほしいこと

アルゴリズム演習


アルゴリズムとプログラミング技法


より実践的なプログラミング技法
情報科学では「知っていて当たり前」のデータ構造
やアルゴリズム
情報処理Ⅲ

Java(オブジェクト指向)によるプログラミング
今回のテーマ:
作業労力を減らす工夫

毎回毎回同じことをタイプするのは面倒.
定型処理(ルーチンワーク)は計算機に任せたい.
でも,ときには細かい指示をしたい.

今回のルール




タイプする文字などは,このフォント
実行例は,このフォント
シェルの便利な機能





ヒストリ(履歴)
リダイレクション
エイリアス(別名)
マルチプロセスの制御
ショートカットキー
ヒストリ




過去の実行コマンドを記憶している.
上下の矢印で,コマンドが出てくる.
!!で直前に実行したコマンド,
!100で100番目に実行したコマンドが実行できる.
他にも便利な機能があり,奥が深い.
リダイレクション







<: 標準入力をキーボードからではなくファイルか
ら与える.
>: 標準出力を画面表示ではなくファイルに保存す
る.
>>: >と同じ.ただし,すでにファイルがあれば,
末尾に追加(append)する.
2>: 標準エラー出力をファイルに保存する.
2>&1: 標準エラー出力を標準出力に送る.
各語の中で空白を置いてはいけない.
<,>,>>については,その前後に空白があってもなく
てもよい.
エイリアス



C言語の#defineに似た機能.(マクロ)
csh系: alias c 'cc -o binfile srcfile'
sh系: alias c='cc -o binfile srcfile'




その後,cでコンパイルできる.
シェルを終了すれば効果がなくなる.
シェル起動時にこのエイリアスを設定しておきたけ
れば,~/.cshrc, ~/.bashrc に書いておく.
便利なエイリアス(sh系):


alias ..='cd ..'
alias ls='ls -aFl --color'
マルチプロセスの制御

連続した実行


パイプ




実行結果をコマンドラインに置き換える
例: mkdir `date +%Y%m%d`
条件付実行


前の標準出力と次の標準入力を連結
例: echo 'scale=5;sin(1)' | bc
バッククオート展開


例: sleep 3 ; import window.png
例: make program && ./program
バックグラウンドで実行

例: emacs &
ショートカットキー

少ないストローク(キータイプ)で様々な機能




例: Ctrl-aでコマンドラインの先頭へ移動,Ctrl-eで末
尾へ
例: Ctrl-kで末尾までカット,Ctrl-uで先頭までカット,
Ctrl-yでペースト
例: Esc _で,直前のコマンドの最後の引数が出る.
http://www.wakayama-u.ac.jp/~takehiko/ins2002/
weekly-old.html
make

ファイルの依存関係を考慮したコマンド実行管理.




例: ファイルAはファイルBとファイルCから構成され
る ⇒ ファイルB,ファイルCの少なくとも一方が更新
されていたら,ファイルAを生成するためのコマンド
を実行する.
依存関係はMakefileに書き,更新しているかは,各
ファイルが持つタイムスタンプ(いつ更新されたかに
関する情報)を参照して知る.
省略時規則も便利
http://www.unixuser.org/~euske/doc/makefile/
その他: 田中が好んで使うコマンド









echo, ls, find, locate : ファイルを探す
pushd, popd, cd - : ディレクトリの移動
which, type : コマンドの所在を知る
grep, sed : テキストファイルの抽出,閲覧
bc, irb : ちょっとした計算
ssh, sftp, ncftp, (WinSCP3) : リモートログイン,
ファイル転送
tar, zip, unzip, gzip, gunzip, lha : ファイルの圧縮と
伸長(展開)
screen : コンソール管理
emacs -nw, emacsclient, (gnuclient) : Emacs