Unix

GNU Screenを複数人で共有する

GNU screenには複数のターミナルから1つのセッションを共有する機能が付いている。これを使えば作業内容の確認や指導、共同作業が遠隔地から行えるようになる。1. Aさん: screen -S でセッションに名前を付けて起動 2. Aさん: C-a :multiuser onで外部から…

screenのウィンドウに名前を付ける

ウィンドウが増えてくるといちいち一つずつ切り替えて行くのも大変だ。 そこで、各ウィンドウに名前を付けてそこにダイレクトで飛べると便利だ。 .screenrc caption always "%{= wk} %-w%{=bu dr}%n %t%{-}%+w %= %{=b wb}%y/%m/%d(%D) %{=b wb}%c" ステータ…

screenを縦に割る(横分割)

横分割に対応したバージョンをインストール $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/screen co screen $ cd screen $ cd src $ ./coufugure $ make $ sudo make install C-a | 横分割 C-a S 縦分割 C-a tab リージョン移動 C-a X カ…

サイズが0のファイル名を表示

ls -al | awk '$5==0 {print $8}'

拡張子を除去

フォルダ内の例えばhogehoge.txt.org => hogehoge.txtのファイル名変換を一度にやる。find *.org -print | sed 's/.org//g' | xargs -t -l1 -iarg mv -f arg.org argなげぇ。。。

Makefileのデバッグ

他人が書いた複雑なMakefileをデバッグするときは次のようにするとシンボルなどのデバッグログが出せて便利。warningはファイル名と行番号も出してくれるぞ。 HOGE = hogege $(info hoge $(HOGE)) $(warning hoge- $(HOGE))出力例: hoge hogege Makefile:6:…

Erlang入門 その2

erlangプログラムをコマンドラインから動かす Erlang入門のサンプルに以下を追加して、標準出力に出るようにしてみる。 Erlangでは、コマンドラインからの引数は文字列のリストではなくアトムのリストであることに注意。 今回は"1423"といったように引数を1…

Erlang入門

Erlang本を入手したので学んでみる。 インストール debianだとパッケージが用意されている。 # apt-get install erlang erlang-manerlang-manは以下のようにモジュールを調べられるようになる。 $ erl -man lists 基本 _や大文字で始まるのが変数。_は/dev/n…

スピンロックとmutexの速度比較

スピンロック(spin lock)とは ロックを取得できるまでループし続ける。そのためロックを取得できないとCPUを占有し続けるので、競合が多く発生する状況下では一般的なmutexに比べて不利になる。 ただしロックの確認作業はmutexより早い。 詳しくは: スピンロ…

Binary Hacks

Binary Hacks ―ハッカー秘伝のテクニック100選作者: 高林哲,鵜飼文敏,佐藤祐介,浜地慎一郎,首藤一幸出版社/メーカー: オライリー・ジャパン発売日: 2006/11/14メディア: 単行本(ソフトカバー)購入: 23人 クリック: 383回この商品を含むブログ (223件) を見…

Emacs21でflymake

flymakeとはバックグラウンドでシンタックスチェックを行いエラー箇所をハイライトしてくれるとっても便利なやつです。Emacs22だと標準で入っているらしいのだが、Emacs21を使っているので手動で入れる。 flymake.elを取ってくる 最初CSVから最新のものをと…

CppUnitを使ってみる

以前はC++で開発することが良くあったのだが、昔と違って今はC++版UnitTestもあって良い時代になったもんだね。というわけで使ってみる。まずインストール。 debian 4.0では下記でインストールできた。 apt-get install libcppunit-dev libcppunit-doc Test …

コマンドラインでsvn使う

SVNサーバのセットアップはこちら インポートする この時、インポートしておきたいファイル以外は消しとく。 svn import svn+ssh://<host-name>/var/svn/okogeimportは特定ディレクトリ以下のディレクトリやファイルを1度にリポジトリに対してmkdirやaddするためのコマ</host-name>…

Screenでヒストリ・コピー・ペースト

1. C-a [でコピーモードにする。 カーソルで、画面の上まで行くとスクロールしてくれる。 C-u で上スクロール。C-dで下スクロール 2. この後、returnかspaceキーでコピー開始もう一回押すとコピー終了 3. C-a ]でペースト関連 screenメモ - 玲瓏庵

GNU Automake

automakeはMakefile.amからMakefile.inを生成する。 Makefileはビルドやインストールなどの手順を記述したmakeコマンド用のスクリプトである。 Makefile.am bin_PROGRAMS = okoge okoge_SOURCES = main.c 試す 以下をbootstarapという名前でスクリプトにして…

GNU Autoconf

Autoconfとは autoconfはconfigure.inからconfigureなどを生成する。 configureは、環境を調べconf.hを生成するスクリプトである。 これにより、環境に対しての依存度の低いプログラムを開発することが可能になるのである。 configure.inはたとえば次のよう…

dot-qmailでMLに転送設定

MLはToかCcにそのアドレスが入っていないと受け付けてくれないことが良くある。そこで、.qmailファイルで以下のようにすることでヘッダを加工してから転送するようにする。 | formail -a "Cc:MLのアドレス" | forward MLのアドレスformailはメールのヘッダを…

Emacs: GNU GLOBAL使う

GNU GLOBALとは GNU GLOBALはソースコードにタグ付けを行い、ソースコード中のシンボルの参照先、参照元に移動することができる。etagsとはエディタに依存していない点で異なる。 GNU GLOBALの機能 対象言語 C, C++, Yacc, Java, PHP4 サポートしているエデ…

screenメモ

WindowsのリモートデスクトップのCUI版みたいなもん。 1つのターミナルで複数セッション立ち上げて切り替えたりできるので便利。 $ screen or C-a C-c 新規セッション C-a [space] セッション切り替え C-a ? ヘルプ $ screen -ls screenプロセス一覧 $ scre…

Emacs tips

Emacsショートカット C-x C-f ファイル開く M-x goto-line 指定行へ飛ぶ C-s 検索 C-s次の候補へ C-r 前の候補へ C-x b バッファ切り替え C-x k バッファ閉じる C-x o 分割移動 C-x C-s 保存 C-x 1 フルウィンドウ C-x 2 分割 C-x u UNDO C-k 行カット M-w …

PuTTY & Emacsで日本語

いいかげんemacs覚えんといかんだろうということで、emacs入れて日本語の設定してみる。 日本語ファイル開けるんだけど、うまく編集できない。puttyでアクセスしてるのだが、全角で表示されてるのに半角として扱われてなんか編集が変。いろいろ.emcasいじる…