Linuxの備忘録
$ sysv-rc-conf --list | grep postfix $ sudo sysv-rc-conf postfix on
$ sudo shutdown -h +x
時間指定でシャットダウン
$ sudo shutdown -h hh:mm
日付指定でシャットダウン 2009年9月20日10時00分
$ sudo shutdown -h 0909201000
いまカレントディレクトリが test で,その下にさらに test2 ディレクトリがあり,この test2 ディレクトリをまとめて圧縮したいとする.
$tar cfz file.tar.gz -C/home/rmecab/tmp/test test2
ここで -C はディレクトリを変更して実行するの意味である.上の実行例で間のスペースは重要.こうしないと,
tar: Removing leading `/' from member names
という警告が出る上,圧縮ファイルは,最初のディレクトリ test のなかに test2 ディレクトリがあり,そしてその中身が含まれるという入れ子状態で保存されてしまう.
ここから引用
シェルスクリプトの最後にOSをshutdownさせようと考えた場合、sudoのパスワード入力がとても邪魔です。一回、sudoで何かを起動し、パスワードを入力してしまえば、その後のパスワード入力は必要なくなりますが、常に同じ条件でshutdown出来ないのでは、安心してシェルスクリプトも動かせません。そんな訳で、sudoをパスワード無しで使用する為の設定をします。
☆ファイル編集 visudoの使い方は・・・ ぶっちゃけ、保存([Ctrl]+[O])と終了([Ctrl]+[X])だけ使えれば問題ない気がする。
[アプリケーション]→[アクセサリ]→[端末]を起動。 sudo visudo
最終行に追記 hogehoge ALL=NOPASSWD: ALL
設定が終わったら、ファイルを保存して終了 OS再起動後、再び端末を起動し、sudoコマンドを確認。 sudo gedit とか。パスワード無しでエディタが起動すれば、設定完了。
ここ sysv-rc-confを起動して、NetworkManager? (画面上ではNetworkMa?$と表示されている) が全てのランレベルで起動しないように『チェックを外す』。
# sysv-rc-conf eth0用の定義を追加する。書式は man -S 5 interfaces で閲覧可能
install ipv6 /sbin/modprobe -n -i ipv6
DHCPからアドレスの割り振りを受ける場合は、『iface eth0 inet dhcp』とする。
そして、DNS設定を追記する。(NetworkManager?は、その終了時にresolv.confの設定をクリアするため、明示的に設定を書き加える必要がある)
/etc/modprobe.d/aliases
ではなく
/etc/sysctl.conf
に
net.ipv6.all.disable_ipv6=1
を追記
about:config network.dns.disableIPv6=true
$ sudo apt-get update $ sudo apt-get install php5-dev $ sudo apt-get install php-pear $ sudo apt-get install apache2-threaded-dev $ sudo pecl install apc # ただ Enter すればよい
/etc/php5/apache2/php.iniに
extension=apc.so
を追加して設定ファイルを確認し
$ apache2ctl configtest $ sudo /etc/init.d/apache2 restart
#query_cache_limit = 1M query_cache_limit = 2M #query_cache_size = 16M query_cache_size = 36M
sudo /etc/init.d/mysql restart
MySQL のログは syslog に記録される
php.ini
;memory_limit = 16M memory_limit = 40M
$ echo -n "記号" | iconv -t UCS-2 | hexdump 0000000 8a18 53f7
$ echo -n '記号' | hexdump -C 00000000 e8 a8 98 e5 8f b7C オプションを付けないと2バイト単位で,バイトが逆順になってしまう.-C を指定すると1バイトの文字単位の表示になる.あるいは
$ echo -n '記号' | od -tx1 0000000 e8 a8 98 e5 8f b7や
$ echo -n '記号' | xxd -g 1 0000000: e8 a8 98 e5 8f b7でもよい.
$ iconv -f EUC-JP -t UTF-8 test.euc > test.utf8
文字コードについては,さらにここを参照のこと.
sudo -s
Ubuntu ではroot に慣れないと思っていた. ここのサイト など役に立つ
$ echo -n 'himitsu' | md5sum f1a0e73e5d7fc293952d380e32fda73c -
$adminpass = '{x-php-md5}f1a0e73e5d7fc293952d380e32fda73c'; // md5('himitsu')
$adminpass = '{x-php-md5}' . md5('himitsu');
でもよい.
/etc/shellsに /sbin/nologin が記載されている場合
/bin/false FTP→拒否 SSH→拒否 /sbin/nologin FTP→可能 SSH→拒否
ffmpeg -i in.flv -vn -ac 2 -ab 160000 -ar 44100 out.mp2
ffmpeg -y -i foo.flv -acodec copy foo.mp3
-vn 映像を出力しない -ac 2 Stereo -ab ビットレートをbit/sで指定 -ar 音声のサンプリングレートをHzで指定
このほかのオプション
メイン オプション:
-L ライセンスを表示 -h ヘルプを表示 -formats 現在使用できるフォーマット、コーデック、 プロト コルを表示 -f fmt フォーマットを指定 (fmtの部分に-formatsで調べたフォーマット名が入る) -img img_fmt 画像のフォーマットを指定(img_fmtの部分に -formatsで調べたフォーマット名が入る) -i filename 入力ファイルを指定 -y 出力先に同名のファイルがあった場合上書 -t duration 出来上がるファイルの時間を指定する (durationの部分に10と入れれば10秒の部分までしか記録しない)
映像のオプション:
-b bitrate ビットレートをkbit/sで指定 -aspect aspect アスペクト比を指定(4:3, 16:9 or 1.3333, 1.7777) -vn 映像を出力しない -bt tolerance ビットレートの許容誤差をkbit/sで指定 -vcodec codec codecの部分に-formatsで調べたコーデックを指定 ('copy'を指定すると元ファイルに手を加えない) -sameq 元のファイルと同じビデオ品質を使用します。 (暗黙のうちにVBRになることもある) -pass n 何パスでエンコードするかを指定します。 (1か2を指定) -passlogfile file 2パスでエンコードした時のログファイル名を指定
音声のオプション:
-ab bitrate 音声のビットレートを(k)bit/sで指定 -ar rate 音声のサンプリングレートをHzで指定 -ac channels 音声のチャンネル数を指定 -an 音声を出力しない -acodec codec codecの部分に-formatsで調べた音声のコーデックを指定 ('copy'を指定すると元ファイルに手を加えない)
https://wiki.ubuntulinux.jp/UbuntuTips/Application/ffmpegとコーデックをソースからビルドするには に情報有り
ここを参考に.
play_format="avi" # output format path_player="/usr/bin/mplayer %i" # player used path_ffmpeg="/usr/bin/ffmpeg -y %i %o" # encoder used
動画の簡単な編集ができる. 切り取りは右メニューの Trim を選び,開始点と終着点を指定し, その上で右メニューの下,Export を指定.ここで形式を指定するが,mpeg が選択できない場合は,ウィンドウ下のライブラリをあらかじめ追加しておく.
grep word /home/user/*
あるいは「一致したファイル名」と「一致した一行」の両方を出力
find /home/name -print | xargs grep word /dev/null
cronで
/usr/bin/php-cli -f /home/myhome/cron.php 1> /dev/null
を実行しようとしたら,コマンド版PHP が入っていなかった. (-f は省いてもいいらしい.)
sudo apt-get install php5-cli
でいいのだが,ちょっとペンディング.
大きすぎるので調整
[システム] - [設定] - [サウンド]
からサウンドタブ
[システム] - [システム管理] - [ログイン画面]
からアクセシビリティタブの効果音でオンオフを切り替え 画面右上のスピーカーのアイコンを左クリックして調節した音量は、ログイン時の効果音には反映されない。音の大きさ自体は画面右上のスピーカーのアイコンを右クリックし「音量調節ツールを開く」を選択して調節
mplayer hoge.wmv -vc null -vo null -ao pcm:file=hoge.wav
これがうまくいかないときは
ffmpeg -i hoge.wmv -vn -acodec copy fuga.wma mplayer fuga.wma -ao pcm:file=nyuru.wav
Network Upgrade for Ubuntu Servers (Recommended)
# dpkg –list | grep update-manager-core# インストールの確認 sudo apt-get install update-manager-core#インストール
これは必要か?
sudo do-release-upgrade
# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.04 DISTRIB_CODENAME=hardy DISTRIB_DESCRIPTION=”Ubuntu 8.04″ # uname -a Linux main 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
/etc/apt/sources.listの修正は必要ないのか?
# mv /etc/apt/source.list /etc/apt/source.list.080525 # sed -e 's/gutsy/hardy/g' /etc/apt/source.list.080525 > /etc/apt /source.list # apt-get update # apt-get dist-upgrade
etc/cron.daily に /etc/network/if-up.d/ntpdate を突っ込む。
$ sudo vi /etc/default/ntpdate
NTPDATE_USE_NTP_CONF=no NTPSERVERS="ntp.jst.mfeed.ad.jp ntp.ring.gr.jp" NTPOPTIONS=""# オプションは上記スクリプトに記載されている
$ cd /etc/cron.daily/ $ sudo ln -s /etc/network/if-up.d/ntpdate .
Ubuntu_keyboard ここに表を作成?
同僚から,._ で始まるディレクトリをまとめて消すのに
% sudo find /home -name "._*" -print -exec rm -f {} \;
が使えるかと聞かれた.使えるだろうけど,-exec は検索のたびに,指定のコマンドをいちいち実行するので,-xargs を使って検索結果をまとめて渡した方が良いでしょう.
$ sudo find . -name '._*' -print0 | xargs -0 -r rm -rf
findの出力がヌル文字(0×00、別の表現をすると”\0″)で区切られて出力されます。また、xargsも引数がヌル文字で区切られているものとして処理を行います。その結果、空白文字を含んだファイル名も正常に処理できます。
しかし,私自身は怖くてできないな.xargs をグーグったら,こんなページがあった.またこんなファイル shell2.txt もみつけた.再配布OKらしい.
ついでなので,つらつら検索していたら,こんな記事もあった.ちょっと引用する.
コマンドを一度に起動する (find -exec +)
$ find . -name \*~ -exec rm {} \;
ただ、これだと100000ファイルがヒットした場合にrmコマンドが 100000回実行されてしまうため、全部実行するまでに案外時間がかかる ... これを回避するために xargsを使うのもまっとうですが、 最近の find には + というのがあります (SUSV3 で定義されていて... ) find . -name \*~ -exec rm {} + これで、複数の引数つけて rmを呼んでくれます。 空白があっても okです。
真ん中に展開したい (xargs -J)
でも mvのように真ん中に展開したい引数がある時はだめ。 '{} +' で終わってなきゃいけないってルールなんですね。 % find . -name \*~ -exec mv {} bak/ + find: -exec: no terminating ";" この場合は GNU coreutilsを使わなきゃいけないかというと、 それも抜け道があります。 BSD系 xargsには -J optionがあります: % touch a~ b~ c~ % find . -name \*~ -print0 | xargs -0 -J {} echo mv {} /var/tmp mv ./a~ ./b~ ./c~ /var/tmp というように一つのコマンドに展開してくれます。 ちなみに BSD系では template変数が2文字以上の時、 "-J{}" とくっつけるとだめで "-J {}" と spaceをいれないといけない よう。普段は "-J@" って、一文字にしてるので気づかなかった。 追記: GNUの xargsでも -n をつければ複数展開してくれますね: % find . -name \*~ -print0 | xargs -0 -I {} -n 100 mv {} /var/tmp てな感じで。100 ってのが adhocな感じだけど。 MacOSではこの方法は使えませんでした。
もっと早くしたい (けど) (parallel)
でも昨今は multicoreや hyperthreadな CPUが主流でしょう。 そんなときに一つの threadで順番にやるのはアホです。 そういうときに使えるのがparallel です。 最大 10個分プロセスを立ち上げて、文字通り並列に CPUを 余すことなく使ってくれます。 % ls | ./parallel 'sleep 3 ; echo ' & (sleep 1; ps )
[1] 4503 4504
近く IP を変更せにゃならん.
# vi /etc/network/interfaces # This file describes the network interfaces available .. # and how to activate them. For more information, ... # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 150.59.**.** netmask 255.255.255.0 network 150.59.**.0 broadcast 150.59.**.255 gateway 150.59.**.1 # dns-* options are implemented by the resolvconf ... dns-nameservers 150.59.60.2 dns-search ias.tokushima-u.ac.jp
変更後 interface を再起動
# ifdown eth0 # ifup eth0
eth0の状態を確認
# ifconfig
でよかったが,問題は,subversion だ. レポジトリ作り直しかと思ったら,次のような記事があった.以下引用する.
Subversionをインストールしているサーバは動的IPアドレスを用いているため、サーバを再起動した時にIPアドレスが変わってしまうことがしばしば。 Subversionにコミット/チェックアウトするためのURLも変わってしまうので、設定を変える必要があります。 方法として、古いIPアドレスを参照していた作業コピーは削除してしまって、新しいIPアドレスをコミットするようにしていたのですが。 別に作業コピーを削除しなくとも、参照するURLを簡単に変更することがsvnコマンドでできるみたい。
$ svn switch --relocate svn+ssh://古いIPアドレス/svn/test_repos svn+ssh://新しいIPアドレス/svn/test_repos test_reposの作業コピー/ $ svn update test_reposの作業コピー/
しめたと思って,五つあるレポジトリ一気に書き換えるスクリプトを書いた.
#!/bin/bash svn switch --relocate svn+ssh://oldip/var/local/subvers/ubuntu/Document svn+ssh://newip/var/local/subvers/ubuntu/Document
svn switch --relocate svn+ssh://oldip/var/local/subvers/ubuntu/res/statistics/myRcode svn+ssh://newip/var/local/subvers/ubuntu/res/statistics/myRcode
svn switch --relocate svn+ssh://oldip/var/local/subvers/ubuntu/res/Program/ svn+ssh://newip/var/local/subvers/ubuntu/res/Program
svn switch --relocate svn+ssh://oldip/var/local/subvers/ubuntu/res/Tex/papers svn+ssh://newip/var/local/subvers/ubuntu/res/Tex/papers
svn switch --relocate svn+ssh://oldip/var/local/subvers/ubuntu/res/Tex/books svn+ssh://newip/var/local/subvers/ubuntu/res/Tex/books
で,トップディレクトリで実行しようとたが,
svn: '.' は作業コピーではありません
どうやらそれぞれのレポジトリ(.svnを直下に含むレポジトリ)に入って,いちいち実行する必要があるらしい.その旨もスクリプトに書く.
一括削除するには mailx を使うと思っていたが,
$ mail & d 1-243
で一括削除できた.どっちかがどっちかのエイリアスなのかな?
各エントリ最後に/dev/nullを書き忘れていたので,mail スプールがふくらんでいた.
* * * * * command 1> /dev/null
とする.仮に以下のようにすると,エラーが起こっても何の通知もなくなってしまう
* * * * * command >/dev/null 2>&1
ついでに,危ないなぁと思いつつ
$ sudo crontab -u root -e $ sudo crontab -u root -l # m h dom mon dow command 15 04 1 * * /home/hoge/hoge.sh >/dev/null 2>&1
を設定
*/5 * * * * /home/myhome/MoodleCron.sh 1>/dev/null
を2009 04 15 ishidaアカウントで
00 10 * * 110分ごとに実行する場合
*/10 * * * *3時間ごとに実行する場合
00 0-23/3 * * *毎日AM 4:30とAM 9:30に実行
30 4,9 * * *毎週月、金曜日のAM 3:00に実行
00 3 * * 1,5毎日AM 3:00 4:00 5:00 6:00 7:00 9:00 に実行
00 3-9 * * *毎月10日のAM 3:15 4:15 5:15 6:15 に実行
15 3-6 10 * *AM 1:00 6:00 9:00 10:00 11:00に実行
00 1,6,9-11 * * *
cron設定の前に以下の行を入力してメールをとばす,とばさないを選択できる.ここから引用
MAILTO=""
これでメールは飛ばなくなり,逆に複数のアドレスに飛ばしたいときは、カンマ区切りで複数メールアドレスを指定. この $MAILTO 変数は、デフォルトのメールアドレスを上書きする
ただし、上記は/etc/crontab自体を変更した場合と同じく、実行するアカウントのcron設定すべての宛先に反映される。特定のスケジュールのみを宛先変更させたい場合には、次のように指定すればよい。
# crontab -e
0 2 * * * /bin/sh /etc/hogehoge 2>&1 | Mail [送信先メールアドレス]
#!/bin/bash DATE=`date +%Y%m%d` cp -p /home/ishida/.bash_history /back/bash_history-"$DATE" cp -p /home/ishida/.bashrc /back/bashrc-"$DATE" ## cp -p /home/ishida/.profile /back/profile-"$DATE"
// -*- Mode:ObjC; c-basic-offset:4; tab-width:8; indent-tabs-mode:nil -*-
をソースに加えるといいという話があった。
bzip2 -dc filename | tar xvf -
tar cvf [アーカイブファイル名] [ディレクトリ・ファイル名] 例:tar cvf sample.tar sample
tar cvZf [アーカイブファイル名] [ディレクトリ・ファイル名] 例:tar cvZf sample.tar.Z sample
tar cvzf [アーカイブファイル名] [ディレクトリ・ファイル名] 例:tar cvzf sample.tar.gz sample
tar cvjf [アーカイブファイル名] [ディレクトリ・ファイル名] 例:tar cvjf sample.tar.bz2 sample
tar xvf [アーカイブファイル名] 例:tar xvf sample.tar
tar xvZf [アーカイブファイル名] [格納するディレクトリ・ファイル名] 例:tar xvZf sample.tar.Z
tar xvzf [アーカイブファイル名] 例:tar xvzf sample.tar.gz
tar xvjf [アーカイブファイル名] 例:tar xvjf sample.tar.bz2
tar tvf [アーカイブファイル名] 例:tar tvf sample.tar
tar rvf [アーカイブファイル名] [追加ファイル名] 例:tar rvf sample.tar hoge4.txt
tar xvf [アーカイブファイル名] [取り出したいファイル名]
... libglib2.0-dev (2.14.1-1ubuntu1) を設定しています ... libatk1.0-dev (1.20.0-0ubuntu1) を設定しています ... libcairo2-dev (1.4.10-1ubuntu4.4) を設定しています ... libpango1.0-dev (1.18.3-0ubuntu1) を設定しています ... libgtk2.0-dev (2.12.0-1ubuntu3) を設定しています ...
ImageMagic?のconvertで画像を変換する際 eps2: オプションを指定しないと画像が巨大化してしまう
$ convert orig.png eps2:orig2.eps
XPにインストールしたVMware上のUbuntuでマウスのホイールが効かなかったので以下のように修正した
$ sudo vi /etc/X11/xorg.conf Option "Protocol" "ImPS/2" # ps/2から修正 Option "ZAxisMapping" "4 5" # これはもともと記載あり
新規に作成したら ホームの .subversion/config に
ssh = ssh -i /home/ishida/.ssh/id_rsa
を忘れず追加すること.
apt-get update を失敗したまま放っておくと,Synaptic でレポジトリの変更が出来ないなどの不具合が生じるので,とりあえずこのコマンドを実行しておく.
でも(自宅がそうなのだが),Ubuntuのカーネルがアップグレードが行われた場合は Ubuntu 上で [#j02bcad3]
ishida@ubuntu-vm:~$ sudo /usr/bin/vmware-config-tools.pl
が必要らしい.
\C-u \C-s . 置換の場合はM-x replace-regexp.
Emacs では C-q C-* で * のところに文字コード表での制御文字 (^i) を指定する.例えば , を タブに変えるなら
M-%
で
, with C-i
C-i は文字コード表の ^i
Mplayerマニュアル [#u825d3be]
よいページを見つけた.
Shift-Jis から UTF-8 に
find . -name "*.txt" -print0 | xargs -0 nkf -Sw -Lu --overwrite
EUC-JPからの場合は-Ewで.
UTF-8 からShift-Jis から
find . -name "*.txt" -print0 | xargs -0 nkf -Ws -Lw --overwrite
こんな方法も
sed -i 's/Shift_JIS/utf-8/g' `grep -irl Shift_JIS .` \ nkf -Sw -Lu --overwrite *.html
nkf オプションは以下の通り
-e 結果をEUC-JPで出力 -j 結果をISO-2022-JPで出力 -s 結果をShift-JISで出力
例: 改行コードの変換
nkf -Lu hoge.txt > huga.txt # mac & win -> unix nkf -Lm hoge.txt > huga.txt # unix -> mac nkf -Lu hoge.txt > huga.txt # unix -> win
拡張子を変える場合
for nm in *.euc; do > mv $nm ${nm%.euc}.txt; > done
拡張子の前を変える場合
$ for nm in temp*; do > mv $nm HOGE${nm#tr}; > done
/etc/apt/sources.list apt-getのパッケージ情報取得先が書かれている apt-cache search [...] パッケージを探す
apt-cache show [...]パッケージの詳細を見る apt-get install [...] パッケージをインストールする apt-get update パッケージの更新情報を得る apt-get upgrade インストールされているパッケージの更新を行う
旧メモを移植の予定。
recode EUC-JP..UTF-8 target.txt
ターミナルで xkill として,当該のウィンドウを左クリック
Use C-u M-x make-directory RET RET to create directory and its parents
$ eval `ssh-agent -s`;ssh-add ~/.ssh/id_rsa # 開始 $ eval `ssh-agent -k` # 終了
参考 http://www.his.kanazawa-it.ac.jp/~idurumi/linux/ssh/index.html
~/.bash_profile $ cat << END >> ~/.bash_profile # start ssh-agent if [ -z "${SSH_AGENT_PID}" ] ; then eval `ssh-agent -s` ssh-add ~/.ssh/id_rsa export SSH_AGENT_TTY=`tty` fi END
~/.bash_logout $ cat << END >> ~/.bash_logout # stop ssh-agent if [ ! -z "${SSH_AGENT_TTY}" ] ; then TTY=`tty` if [ x$TTY = x${SSH_AGENT_TTY} ] ; then eval `ssh-agent -k` unset SSH_AGENT_TTY fi fi END
2008 01 25 /etc/group
を編集し /usr/local/ubuntu 以下を chgrp -R svn で変更
http://ja.wikipedia.org/wiki/Subversion]] や http://www.gfd-dennou.org/library/cc-env/subversion/ や http://d.hatena.ne.jp/gan2/20070704/1183553892 も 参考になる.
sudo mkdir /usr/local/ubuntu chown hoge:hoge /usr/local/ubunutu(アクセスするのが hoge だけなら) とりあえずは,サーバー側 192.168.0.1 で
svnadmin create /usr/local/ubuntu/hogeと実行しておく. クライアント側では hoge ディレクトリ内に
trunk branches tagsの三つのディレクトリを掘っておき,その trunk 内に管理ファイルを保存.
svn import -m "from AMD" /home/usr/hoge svn+ssh://192.168.0.1/usr/local/ubuntu/hoge
でインポートし,
svn checkout svn+ssh://192.168.0.1/usr/local/ubuntu/hoge/trunk hoge
とするのが正しい流儀のよう... http://subversion.bluegate.org/doc/ch01s07.html
svnadmin rmtxns hogeと言うコマンドもあるようだが,単に
rm /usr/local/ubuntu/hogeで良い模様. svn: Failed to add directory 'foo': object of the same name is already scheduled for addition のようなエラーに遭遇したら,
$ svn revert foo $ svn update
svn+sshするときにサーバーによってポートが違う場合、どう設定していいかわからなかった。 調べてみたら
sshトンネルを使う場合のポート番号指定方法
http://d.hatena.ne.jp/mir/20070621/p2
~/.subvertion/configに [tunnnels] ssh_hoge = ssh -p 8888
して
svn co svn +ssh_hoge://hostname/svn/hogehoge
キーを切り替えたい場合は
[tunnnels] ssh_hoge = ssh -i /home/name/.ssh/id_dsa_hoge
追加
svn import -m "from Tex/research/papers/p2007" /home/ishida/research/ Tex/papers/p2007/ svn+ssh://150.59.60.47/usr/local/ubuntu/ research/p2007 svn checkout svn+ssh://150.59.60.47/usr/local/ubuntu/ research/p2007/trunk p2007
コンフリクトを起こしたら,次のいずれかを実行して
svn resolved target.txt
例えば mecab をインストールしたら
sudo ldconfig
を実行し,/usr/local/lib に新たに追加されたライブラリを登録しなければいけない.
[ishida@amd64 chasen]$ ldd /usr/local/lib/libchasen.so | grep libstdc++ libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002aaaaad9b000)
Mac で ldd するときは otool -L hoge。 disassemble するときは otool -t -v -V hoge。
$ df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sdb1 234410816 21635248 200868192 10% / varrun 1032688 128 1032560 1% /var/run varlock 1032688 0 1032688 0% /var/lock udev 1032688 100 1032588 1% /dev devshm 1032688 0 1032688 0% /dev/shm lrm 1032688 34696 997992 4% /lib/modules/ 2.6.22-14-generic/volatile