goo blog サービス終了のお知らせ 

コード溜め

備忘録的コンピュータ日記

いまさらscreen

2007-06-08 00:23:15 | Unix/Linuxコマンド
もう10年ぐらい前からあるけどscreen.最近VPNを使うようになったが、接続状態が不安定なので使いたくなってきた.

参考(というかパクリ):http://www.dekaino.net/screen/

設定:~/.screenrc
 defencoding eucJP
 escape ^z^z

^z^zで,^zがエスケープシーケンスになる.デフォルトは^a(emacsのキー操作とかぶる)

操作:
 新しい仮想画面の生成:^Z ^Cまたは^Z c
 仮想画面の切替(昇順):^Z nまたは^Z [SPACE]または^Z ^@
 仮想画面の切替(降順):^Z ^Hまたは^Z [DEL]または^Z ^Pまたは^Z p
 仮想画面リストの表示:^Z ^Wまたは^Z w
 仮想画面の名前付け:^Z A
 仮想画面への直接移動:^Z [画面番号]
 バックスクロール(コピーモードに移行):^Z [ESC]または^Z [
  バックスクロール:^U (他にvi操作可)
  コピーモード脱出:[ESC]
 デタッチ:^Z ^Dまたは^Z d

コマンド
 リスト: screen -ls
 アタッチ: screen -r [process id(省略可)]
 マルチアタッチ screen -x [process id(省略可)]


killコマンドでプロセスをサスペンド(中断)

2007-05-16 00:15:48 | Unix/Linuxコマンド
UNIX/Linuxでは、端末からのプログラムの実行中にCtrl-zでプログラムの中断(サスペンド)ができるが、バックグラウンドにしたり、端末から切り離されたプロセスもプロセスに対してはシグナルをkillコマンドを使って送ることで中断・再開が出来る。

*プロセスのサスペンド
% kill -STOP 中断したいプロセスID

*サスペンドしたプロセスの実行再開
% kill -CONT 中断中のプロセスID

[linux]FS-Cache(cachefilesd)

2007-03-25 23:17:56 | Unix/Linuxコマンド
NFSなどのネットワークファイルシステムのアクセスをキャッシュするカーネルモジュール&デーモン。fedora core 6, RedHat EL 5(互換OSのCentOS5にも含まれる)から加えられた仕掛け

利用方法
1. "cachefilesd"パッケージをインストール(パッケージマネージャでは"一覧タブ"から選ぶ)
2. キャッシュ先を置くディレクトリを作るファイルシステムのユーザー定義拡張属性を有効にする。
tune2fs -o user_xattr /dev/hdxX(ファイルシステムのあるデバイス)
またはマウント時のオプションとして
mount /dev/hdaX /var/fscache/ -o user_xattr

3. /etc/cachefilesd.confをチェック
dir /var/fscache <- がキャッシュを置きたいフォルダであることをチェック。
ファイルシステムはExt3であれば特に問題はないみたい。

4.デーモンの開始
service cachefilesd start
ついでに自動起動設定もしておく
chkconfig cachefilesd on

5. NFSサーバのディスクをマウント時にキャッシュを使うように指定
mount fred:/ /fred -o fsc

 "-o fsc"の部分がキャッシュ使用オプション

以上で使えるはず

6. キャッシュサイズのコントロール
/etc/cachefilesd.confで次の値を設定
bcull(またはfcull)
キャッシュ先デバイスの使用可能容量がこの%を下回るとculling(キャッシュの整理)開始
(fcullの場合使用可能ファイル数)

bstop(またはfstop)
キャッシュ先デバイスの使用可能容量(またはファイル数)がこの%を下回るとキャッシュの整理が進んでこの値を越えるまでキャッシュを増やさない。

brun(またはfrun)
キャッシュ整理中、使用可能容量がこの容量を超えるとキャッシュ整理を停止

0 <= bstop < bcull < brun < 100 という大小関係になるはず。

[Linux]低スペックマシンでLinuxを快適動作させるTips

2007-03-18 00:10:53 | Unix/Linuxコマンド

PenIII 800MHz, 256MB, 128MBといったマシンでLinuxディストリビューションをチューンし、それなりに快適にFirefox, OpenOfice等を使えるようにするテクニックに関する記事。

Linux のメモリー・フットプリントを削減する

http://www-06.ibm.com/jp/developerworks/linux/library/l-linux-memory.shtml

 


[emacs]ChangeLogへのエントリ追加時のフォーマットの設定

2006-12-06 00:07:07 | Unix/Linuxコマンド
ChangeLogを編集するときにC-x 4 aでエントリを追加するときの書式等の設定。
emacs20系からは、日付のフォーマットが変ったので下記で以前の形式に戻せる。
;;; Fri Dec  1 00:00:00 2006  
(setq add-log-time-format 'current-time-string) 
;;; 名前
(setq user-full-name "Hogeo HOGEO")
;;; アドレス
(setq user-mail-address "hogeta@hogehoge-univ.ac.jp")

[make]Makefileの記法

2006-12-03 01:11:07 | Unix/Linuxコマンド

http://www.unixuser.org/~euske/doc/makefile/


* 生成規則
target: src
<TAB>commands ..

コマンドの先頭はタブ、というのが曲者.あとコマンドの先頭に@をつけると、コマンド実行内容を表示しなくなる。


  特別な生成規則としてサフィックスルールというのがある。targetに".c.o"となどと書くと.c → .oを生成する規則になる。サフィックスとは拡張子のこと。makeが知らないサフィックスをサフィックスであるとするには
.SUFFIXES: .tex .dvi .ps .java .class  # 新たに追加するサフィックス
のように書く。
 
*マクロの展開



${XX} or $(XX): マクロXXを展開。XXは冒頭または、make CC=gccのようにコマンドラインでも与えられる。
$@  :生成しようとするターゲット名
$<    :srcの1つ1つのファイル名に展開。サフィックスルールで使う。
$*    :ターゲット名からサフィックスを取り除いたもの
$?    :依存関係で、ターゲットよりも新しいsrc。(ターゲットの更新要因ファイル)


$(OBJS:.o=.c) → sub1.c sub2.c sub3.c
$(マクロ名/*/文字列1&文字列2):文字列1と文字列2を展開結果の前後についか
$(マクロ名/^/文字列):文字列を先頭に追加
$(マクロ名/$/文字列) :文字列を末尾に追加する
$(マクロ名?文字列1:文字列2): 条件分岐マクロ。 指定したマクロがすでに定義されていれば文字列1 を、 未定義ならば文字列 2 を展開する。



#このページは私のメモなので,もし全般的に見たいなら下記が良い
Linuxを使っているならGNU版make
GNU Make

オライリージャパン

このアイテムの詳細を見る

UNIX系共通の仕様を見るなら下記
make 改訂版

オライリー・ジャパン

このアイテムの詳細を見る

[emacs]コマンド実行時のコーディングシステム

2006-12-03 00:51:49 | Unix/Linuxコマンド

あらかじめ、コマンド実行時にそのコマンドが出力する文字コードを指定する方法

(setq process-coding-system-alist
      (append '(
                      ("rcs"      . euc-jp)
                      ("make"     . euc-jp)
                      ("gdb"     . euc-jp)
                      )
  process-coding-system-alist))

http://www.bookshelf.jp/texi/elisp-manual-20-2.5-jp/elisp_33.html#SEC542


[emacs]端末モードのときにはメニューバーを消す

2006-12-03 00:43:12 | Unix/Linuxコマンド

 mule/emacs を端末内(-nwオプションなど)で立ち上げあげたときにも何故か出てくる、画面最上行のメニューを消去する設定。
                                                                                                                                         
(if window-system (menu-bar-mode 1) (menu-bar-mode -1))