[csh] 入力中の前後2文字を入れ替える
csh系のシェルでは、Ctrl-t とすると、カーソル位置とその一つ前の文字を入れ替えることができる。 たとえば、 % sl と入力した後で、Ctrl-tを入力すると、 % ls となる。
bugyoのlog。決してblogではない。
csh系のシェルでは、Ctrl-t とすると、カーソル位置とその一つ前の文字を入れ替えることができる。 たとえば、 % sl と入力した後で、Ctrl-tを入力すると、 % ls となる。
環境変数の一覧を出力するにはprintenvコマンドを引数無しで使う。
MovableTypeのデータベースをBerkeley DBからSQLiteに変更しようとして、変換スクリプトを実行すると、 ELFのローダが、 /libexec/ld-elf.so.1: /usr/local/lib/libsqlite3.so.8: Undefined symbol “pthread_create” というエラーを吐いて先に進めない。 実行プログラムの形式にELFを採用しているOSではLD_PRELOADという環境変数を設定しておくと、 指定したライブラリを他のライブラリより先にロードしておくことができるらしい。 これを使って任意の関数を上書きしたりできるそう。 >setenv LD_PRELOAD /usr/lib/libpthread.so.2 >./mt-db2sql.cgi とすると問題なく実行できた。 MovableTypeで使うデータベースをSQLiteに設定してブラウザからアクセスしてみると、 Internal Server Errorが。 エラーログをみると例のエラー、当然か。 CGI実行時にApacheから環境変数を設定できればいいんだろうなと思って調べてみると、 mod_envというのがあるらしい。Apacheを入れたときにデフォルトでロードするようになっていた。 httpd.confに SetEnv LD_PRELOAD /usr/lib/libpthread.so.2 のようにSetEnvディレクトリを書く。 ブラウザからアクセスすると問題なく動いた。 ■LD_PRELOADを使って任意の関数呼び出しにフックしてみる ■CGIの裏側見せます