2006-11-01から1ヶ月間の記事一覧

xgrep

Unix Power Tools に掲載の xgrep を解読してみる。 #! /bin/sh # xgrep - print just the matches on separate lines # Written by Greg Ubben, DoD, 3 Feb 1994 if [ $# -eq 0 ]; then echo "Usage: $0 pattern [file...]" >&2 exit 2 fi re=$1; shift #x=…

xd - 日本語対応バイナリダンプ

現時点では EUC, SJIS, JIS に対応。ラインモードもユニーク。 http://ash.jp/ash/src/xd/index.htm

最近書いたシェルスクリプト

注:ロクにテストしていないのもあります。 もっといい方法があったら是非教えてください。 # 先頭から HEADLENGTH 行、末尾から TAILLENGTH 行を取り除く # これは awk を使わないとちょっとつらい # http://home.comcast.net/~j.p.h/cus-faq-2.html#19 bod…

シェルスクリプト

シェルスクリプトについてはこのサイトが最大手のようだ。 http://www.shelldorado.com/ まだ一部しか見て回っていないが、見つけた面白いスクリプト。 Unix Power Tools に掲載の xgrep。 ftp://ftp.ora.com/published/oreilly/power_tools/unix/upt9707.tg…

altscreen ハック

vim

サスペンドしたときは vim の画面がそのまま残り、vim を終了したときは起動前の画面を復元してほしい。 vim は C-z にもマッピングできるので、そこで t_ti と t_te を空にして、さらに au VimLeavePre などで終了前に t_te を復元すればいいのだが、制御コ…

レジストリでキーを入れ換える

win

http://www.jaist.ac.jp/~fujieda/scancode.html http://www.jsdlab.co.jp/~kei/tips/swap.html スペース 0x39 半角/全角(漢字) 0x29 Esc 0x01 英数(Caps Lock) 0x3a 左Ctrl 0x1d 右Ctrl 0xe01d 左Alt 0x38 右Alt 0xe038 Caps Lock 0x3a 無変換 0x7b 変換 0x…

enhance(1)

会社の Solaris10 に enhance というコマンドが入っていた。 これは本来行編集機能を持たないコマンドと端末の間でブリッジとして働き、readline そっくりな行編集機能を提供するものらしい。 このようにして起動すると $ enhance sqlplussqlplus で ↑ 履歴…

Kaptain - GUI フロントエンド作成ツール

http://kaptain.sourceforge.net/ Kaptain は grep や find などの GUI フロントエンドを自動作成するツール。 コマンドの構文を文脈自由文法で書いておくと、それをもとにダイアログを生成する。 ユーザがそのダイアログに値を入力して OK ボタンを押すと、…

削除したファイルを復活させるプログラム

UFS2 text undelete UFS (正確にはUFS2) 内の削除テキストファイル復活を試みます。 http://www.abk.nu/~nabe/prog_down/prog_down.htm

man2html

man から html を生成するスクリプトはたくさんあるようだ。 1個目。FreeBSD ports に入っている。 http://www.nongnu.org/man2html/ 2個目。Linux JM Project で使っている。 http://packages.ccux-linux.de/index.php?pdetail=223 3個目。AutoOpts という…

GUI と CUI の融合を目指したターミナルエミュレータ

CUI (Composite User Interface) http://linux.pte.hu/~pipas/CUI/ FreeBSD でもインクルードパスを書いてやるとビルド成功したが、共有ライブラリのバージョンが合わないためか実行時にこけた。 Anthias 今は専用のシェルでしか動かない? Requires: QT 4.2…

Tee

tee(1) の拡張版。 http://www.npcguild.org/software/pundits/index.html こんなことができる。 # 標準入力から読み込んだ行を既存のファイルに追加する ... | Tee -a /var/log/myapp | ... # 2つのコマンドに同時にパイプ ... | sort ... | Tee '|head -1 …

errnoに対応したエラーメッセージ取得

する awk スクリプト。 http://www-128.ibm.com/developerworks/library/l-util.html zsh/system 版。 http://d.hatena.ne.jp/lurker/20061121/1164116128 mysql には perror というコマンドがついてくる。 http://dev.mysql.com/doc/refman/4.1/ja/perror.h…

指定した日付のファイルを探す

find . -type f -print0|xargs -0 ls -l|grep "11 25 ..:.."制限: ファイル名にこの形が入っていたらアウト ls -l の出力フォーマットは実装によって異なる 半年以上前のファイルは時刻でなく年が表示される -print0, -0 が使えない場合もある しかし shtoo…

ports

man 7 ports に色々書いてある。 ports からプログラムを探す: cd /usr/ports make search key=spread # 名前、コメント、依存関係から検索 make search name=vim # 名前だかから検索FreeBSD ハンドブック portupgrade や pkg_db については書いていない。 …

whereis

コマンドのソースのありかを知ることができる。 BSD 使っててよかったと思えるコマンド。 $ whereis -s gdb gdb: /usr/src/gnu/usr.bin/gdb $ whereis -s vim vim: /usr/ports/editors/vim $ whereis -s ls ls: /usr/src/bin/ls

John the Ripper - パスワードの脆弱性を調べる

http://freshmeat.net/projects/john/

zip ファイルのパスワードを破る

ソースを公開してるのが売りらしい。 FreeBSD ports にもあった。 http://freshmeat.net/projects/fcrackzip/

アーカイバラッパー atool

tar, gz, bz2, lha, zip, rpm などなんでも展開できる。 カレントディレクトリに中身のファイルをぶちまけない。 圧縮、中身表示、diff もできる。 Requires Perl 5.004 or later http://freshmeat.net/projects/atool/

vi にモードはいくつあるか?(2)

vim

http://d.hatena.ne.jp/odz/20061122/1164261785 open mode とか append mode ってのは単に insert mode をさらに細かく分けているわけで、生粋の vi 使いに聞いたらこの3つを答えるんじゃないかと思うのだがどうだろう。 それは私も分かって書いています。…

Portable Shell Programming

Autoconf: 10. Portable Shell Programming http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_chapter/autoconf_10.html#SEC123 obj という名前のディレクトリがあると、BSD make は Makefile を読む前にそこへ cd してしまう。 obj という…

[unixtool今日作ったシェル関数

シンボリックリンクをつきあたりまでたどるもの。 realpath, readlink はないと困る。 tracelink() { target="$1" if [ -e "$target" ];then if [ -L "$target" ];then echo "$target ->" "$0" `ls -ld "$target" | sed -e 's@.* -> @@'` else ls -ld "$targ…

/dev/zero

/dev/zero はどういった経緯で考え出されたのだろう。FreeBSD の man によると 4.4 BSD かららしい。BSD が起源なのだろうか。/usr/share/misc/bsd-family-tree によると 4.4BSD は1993年。割りと新しい。今では Solaris, Linux にもあることを考えると、そ…

vi にモードはいくつあるか?

vim

最近初めて Solaris の vi を使って気がついたのだが、set showmode したときのモード表示がたくさんある。 インサートモードに入るのに使ったキーによって、次のように変わる。 i, I INSERT MODE a, A APPEND MODE o, O OPEN MODE c モーション(1行以内) CH…

コンソール

FreeBSD の /dev 以下にある tty* とかの意味を知らなかったのでちょっと調べてみた。 console, ttyv0 C-A-F1に対応。デフォルトコンソール。 ttyv1 C-A-F2 に対応。 ... ttyv8 C-A-F9 に対応。X が使う。 ttyv1 から ttyv8 までを仮想コンソールという。 tt…

dateplus

http://www.unixreview.com/documents/s=9083/ur0403c/ 日付計算用ユーティリティ。C 版と awk 版がある。 Here are the supported options (together with non-trivial examples): -b Basedate of today (or date specified)" since Jan. 1, 0001" EXAMPLE:…

shtool

http://www.ossp.org/pkg/tool/shtool/ iselect と同じ OSSP プロジェクトの shtool。 echo, mdate など ポータビリティの問題を解決するものや、ちょっと便利なコマンドが入っている。 Apache や OpenPKG でも使われているらしい。 echo echo(1) と同じ。ポ…

xargs で行を連結する

xargs は実行するコマンドが与えられなかったときは echo を使うので、これによって標準入力から受け取った行を連結することができる。 Solaris の man xargs にのってた。 次の例では、カッコで囲まれたコマンドの実行結果を 1 行にまとめ、それを log とい…

vselect

iselect http://www.ossp.org/pkg/tool/iselect/ iselect も素晴らしいコマンドなのだが、デフォルトで入っているシステムはほとんどないため、積極的に使うのはためらわれていた。 そこで vim を使って代替スクリプト vselect を作ってみた。 #!/bin/sh rm …

calendar.vbs

calendar(1) はなかなか便利だし、シンプルさが Unix らしくて好きなコマンドなのだが、Redhat には入っていないし、あまり知られていないようだ。 これを Windows でも使いたいので VBScript で書いてみた。スタートアップに入れるとちょうどいいかも。 カ…