linuxコマンド


srand、seedの注意

srandを使った不具合で、ループの中でrandとsrandをセットで使う例があります。ループの中でrandのたびにsrandを直前に実行させるわけですが、コンピュータの処理は大変に早いので、現在時刻をseedに設定していると、ループの中で連続して同じseedでsrandを実行することになってしまいます。つまり、1秒間は同じ擬似乱数が発生することになってしまうのです。

ご存知、time関数は1970年1月1日からの経過秒数を秒単位で返す関数で、1秒以内に終わるようなプログラムを何度も実行する場合、同じシードで乱数が初期化されて結果が同じになるという事態が起きるようです。そういうわけで、マイクロ秒単位で取得できるgettimeofdayを使うことで事なきを得ました。

gnuplotで図を保存するときの注意 replotが反映されない

参考 http://www.deqnotes.net/gnuplot/save_graphs

replotでグラフを重ねて描く場合の注意

一度plotすると,再度plotあるいはreplotし直しても,出力先の画像は上書きされません。

gnuplot> set term png # termはterminalの省略形 gnuplot> set output 'tri.png' gnuplot> plot sin(x) gnuplot> replot cos(x) # 更新されない gnuplot> replot tan(x) # 更新されない

そこで最後のreplotの前にset outputを置くようにします。

gnuplot> set term png gnuplot> set output '/dev/null' # Windowsでは不要 gnuplot> plot sin(x) gnuplot> replot cos(x) gnuplot> set output 'tri.png' gnuplot> replot tan(x)

ファイル'/dev/null'は単に出力を捨てるために使われます。 Windowsで出力のたびに「set terminal png」を毎回入力しない場合は,「set output '/dev/null'」のかわりに「set output」で標準出力に設定しておくとよいでしょう。 

Emacsで関数補間

まずタグファイルを作成する。

etags foo.cpp bar.cpp zot.cpp common.h

補間するにはESC-TAB

Debian LennyをホストがXPのVMwareで使う

インストール

参考HP 仮想ディスクの作り方など http://yamashita.dyndns.org/blog/343/ Debian インストール詳細 http://usednote.seesaa.net/article/48263001.html http://www.itmedia.co.jp/enterprise/articles/0606/20/news036.html
注意するのはvmxファイルの製作時。 基本は参考HP http://yamashita.dyndns.org/blog/343/通り書けばいいが、

uuid.location = "56 4d 4a 15 2a 3f 49 70-03 c9 82 f3 02 82
dc 4c"
uuid.bios = "56 4d 4a 15 2a 3f 49 70-03 c9 82 f3 02 82 dc
4c"

の部分は

uuid.action = "create"

に変更して、biosの設定などを自動生成にする。 また

ide0:0.fileName = "filename.vmdk"

のide0:0.fileName のfileNameまで変更しないこと


ネットワーク

http://nao.s164.xrea.com/tips/vmware.html
http://nobumasa-web.hp.infoseek.co.jp/multi_boot/vmware/vmware.html

Windows の「マイネットワーク」を右クリックして「プロパティ」を選ぶと「ネットワークとダイヤルアップ接続」が出て来ます.その中の VMware NAT (本当は何だか長い名前) の「プロパティ」から,これをしないとパッケージマネージャの設定がうまくいかない。

NATではうまくいかなかったので、Bridged接続。 Windows の「マイネットワーク」を右クリックして「プロパティ」を選ぶと「ネットワークとダイヤルアップ接続」でVMwareNetworkAdapterVmnt1(これがブリッジ接続用)のプロパティからTCP/IP 周りを設定。設定内容はIPアドレス以外はホストOSと同じにする。ホストOSの接続情報はコマンドプロントにてipconfig/allで確認。IPアドレスは最後の桁を他のPCとかぶらないように設定。設定後、再びipconfig/allでVMwareVmnt1の設定が正しいか確認できる。

設定後、ネットワークがつながらないときいは

#ifdown eth0
#ifup eth0

デスクトップ環境

http://jibunstyle.net/debian/desktop.html

Debinanインストール後、デスクトップ環境をインストール

#apt-get install gdm gnome 'ttf-sazanami-*'

'ttf-sazanami-*'は日本語フォント。これがないと文字化けする。

simを動かす

必要なパッケージをインストール

#apt-get install gcc
#apt-get install libgtk2.0-dev

ここでUbuntu7.10と同様にmakeすると

undefine reference to '__stack_chk_fail'

とエラーが出る。
これはgccの問題のようだ。参考 http://www.sinby.com/webmaker/html/$ja/Developer/Xen/SimplestOS/6-7.html

参考ページを元にMakefileのGCCのオプションに-fno-stack-protectorを加えて、make cleanしたのちにコンパイル可能に。無事動く。

Ubuntuのディレクトリ名を英語に

Homeの中で「デスクトップ」と「Desktop」が並んでるのが、どうしても気に入らなくなってきた。というか、不便なんで英語で統一しようと…。

末端から

   LANG=C xdg-user-dirs-gtk-update

設定画面が出てきて、それぞれの名前を置き換えるのか聞いてくるんで、そのままOKを押す。

pkg-config --version

shirai@yuragi-$pkg-config --version gtk 0.22 shirai@yuragi-$pkg-config --version gtk+-2.0 0.22 shirai@yuragi-$pkg-config --version glib- glib-2.0 glib-sharp-2.0 shirai@yuragi-$pkg-config --version glib-2.0 0.22 shirai@yuragi-$pkg-config --version pango 0.22

shirai:X11R6$ls bin

pkg-config gtk+-2.0 --cflags

  • I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1

shirai:X11R6$pkg-config gdk-2.0 --cflags

  • I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1

R

スクリプト Rファイル

変数がないスクリプトなら、R上で使うコマンドをそのままRファイルに書き込めばいい。
例:以下のようなeigen.Rを作る

matrix<-read.table("matrix.dat") //matrix.datを読み込む
result<-eigen(matrix) //matrixの固有値計算をresultに代入
evennum<-result$vectors[,1][seq(2,1000,by=2)] //固有値番号1の固有値ベクトルの偶数番目だけ取り出したベクトルをつくる
oddnum<-result$vectors[,1][seq(1,1000,by=2)] //固有値番号1の固有値ベクトルの偶数番目だけ取り出したベクトルをつくる
stvec<-evennum+oddnum
write.table(stvec,file="tmp.dat") //tep.datに書き出す

使い方

source(eigen.R)

圧縮

tar zcvf sample.tar.gz sample

シンボリックリンク

シンボリックリンクというのは、ファイルに別名をつけるようなもので、Windowsで言うところのショートカットにあたるもの

ln -s ~/tmp/1394_imgproc_samples/data/two-wheels/ ./data
             ( link )
             リンクする  本名       別名
               ↓         ↓         ↓
             # ln -s /dev/ttyS0 /dev/modem         ⇒  Enter
                   ↑
               シンボリックで

http://sky-mue.jp/linux/plamo/command.html

ファイル・サイズを適当な単位で表示する ls -lh

$ ls -lh
$ df -h
$ du -h

http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231066/


直前にいたディレクトリに戻りたい cd -

複数のファイルに同じ命令を行いたい tcsh foreach

カレントディレクトリ内のすべてのdatファイルに対して、./visualizeというプログラムを実行したいとき

$tcsh
$foreach a (*.dat)
foreach? ./visualize $a
foreach? end

kill

psコマンドでプロセス番号を調べた後に、kill プロセス番号

最新の20件

2008-05-16 2009-12-14 2009-11-17
  • linuxコマンド
2009-09-23 2009-01-26 2008-11-10 2008-10-10 2008-08-06 2008-07-31 2008-06-26 2008-06-24 2008-06-13 2008-06-12 2008-06-10 2008-06-02 2008-04-24 2008-04-20 2008-04-19

今日の10件

  • counter: 211
  • today: 1
  • yesterday: 0
  • online: 1