here document
数行の簡単なスクリプトやファイルならヒアドキュメントで作るのが便利である.まずは最小構成のスクリプトをヒアドキュメントで書くと.
% cat <<EOF >HEREDOC > #!/bin/sh > > #test script > > echo "testes" > EOF
出力先ファイルHEREDOCの中身は
#!/bin/sh #test script echo "testes"
のようになる.問題なさそうだ.
次に変数やコマンド展開などの入ったスクリプトをヒアドキュメントで書くと.
% cat <<EOF >HEREDOC2 > #!/bin/sh > > #test script 2 > > for i in `ls` > do > cat -n $i > done > EOF
出力先ファイルHEREDOC2の中身は
#!/bin/sh #test script 2 for i in . .. do cat -n done
`ls -a`と$iが展開されている.
これを防ぐために
% cat <<EOF >HEREDOC2 > #!/bin/sh > > #test script 2 > > for i in \`ls\` > do > cat -n \$i > done > EOF
のようにバックスラッシュでエスケープすることもできるが・・・
% cat <<'EOF' >HEREDOC2 > #!/bin/sh > > #test script 2 > > for i in `ls` > do > cat -n $i > done > EOF
とすると展開されないのでより賢い&スクリプトの可読性が高い.
install sylpheed from source
sylpheedとは
オープンソース,マルチプラットフォーム対応のメーラーである.
http://sylpheed.sraoss.jp/ja/
主な特徴
- 分かり易いUI,軽快な動作.
- アドレス帳インポート機能あり,エクスポート機能なし.
- mboxファイルによるメールインポート,エクスポート機能あり.
インストール
まずはyumを使ってお手軽なインストールを試みる.
sylpheedのパッケージがあるか確認.
# yum list | grep sylpheed #
出力がないのでどうやらyumパッケージはないようだ.
ソースからビルドしてインストールすることにする.
# cd /usr/local/src # wget http://sylpheed.sraoss.jp/sylpheed/v2.5/sylpheed-2.5.0.tar.gz # tar zxvf sylpheed-2.5.0.tar.gz # cd sylpheed-2.5.0 # less INSTALL
INSTALL.jaもあったが文字化けするので英語版を見る.どうやら
./configure->make->make install
の順番で良さそう.さっそく・・
# ./configure # make # make install
エラーもなく無事にインストールできた.
動作確認
とりあえず起動の確認だけしておく,アカウントの設定とかはあとでお茶でも飲みながらすることにする.
# exit % sylpeed &
無事起動できた.
install w3m from yum
w3m
スクリーンブラウザ.
スクリーン上で起動するので非常に動作が軽快,スクリーンブラウザながら最近は画像も表示できる.
インストール
# yum install w3m.i386
- w3m.i386-0.5.1-15.el5
がインストールされる.
ついでにw3mの画像表示プログラムw3m-img.i386もインストール.
# yum install w3m-img.i386
- w3m-img.i386-0.5.1-15.el5
がインストールされる.
テスト
% rehash % w3m http://www.google.co.jp/
グーグルのトップページのロゴが表示された.
せっかくなので記念写真.一度w3mを終了させて.
% (sleep 10; import -window urxvt -quality 100 w3m_withimg.jpg) & % w3m http://www.google.co.jp/
10秒待つとカレントディレクトリに仮想ターミナル(ここではurxvt)のスクリーンショット(w3m_withimg.jpg)が生成される.
記念写真
diff: patch
command
% cat >patchtest.old aaa bbb ccc % cat >patchtest.new aaa xxx ccc % ls patchtest.new patchtest.old patchtest.txt % diff patchtest.old patchtest.new 2c2 < bbb --- > xxx % diff -c patchtest.old patchtest.new *** patchtest.old 2008-09-09 20:53:01.000000000 +0900 --- patchtest.new 2008-09-09 20:53:17.000000000 +0900 *************** *** 1,3 **** aaa ! bbb ccc --- 1,3 ---- aaa ! xxx ccc % diff -c patchtest.old patchtest.new >patchtest.patch % patch <patchtest.patch patching file patchtest.old % diff patchtest.old patchtest.new %
note
cf. % man patch % man diff
date: format
command
# date 0905044308 # 08/09/05 04:43にシステム時間を設定 Fri Sep 5 04:43:00 JST 2008 # exit % date +%y%m%d%H%M # 表示形式を指定して実行 0809050443 % alias dates='date +%y%m%d%H%M' # エイリアス設定 % dates 0809050443 % touch `dates`.txt # 現在時刻+.txtという空のファイルを作成 % ls 0809050443.txt %
note
cf. % man date