Linuxに関するカーネルの説明、チューニングなどの忘れがちな内容のコマンドの使い方を、まとめた備忘録である。なので随時、発見次第追加していくことにする
コマンド
psのSTATの意味
R(Run):タスク処理中(実行中) S(Sleep):タスクが待機中(CPUの空き待ち) D(Disk Sleep):タスクが待機中(Disk I/Oの空き待ち) Z(Zombie):タスク終了待ち
プロセス内のマルチスレッドの状況を確認する
ps -elf -L | grep プロセス名 (例:Javaのスレッド) fukaoi 13177 1 24335 0 105 76 0 - 81609 339346 Nov18 bin/java -D fukaoi 13177 1 24336 0 103 74 0 - 81609 322561 Nov18 bin/java -D fukaoi 13177 1 24337 0 105 76 0 - 81609 322562 Nov18 bin/java -D
.bakファイルをディレクトリ再帰的に探査して削除する
find ./ -name '*.bak' -exec rm -v {} \;
各種OS、ハード情報を調べる
cat /proc/* (例:カーネルバージョン) cat /proc/version Linux version 2.6.9-xx (例:CPUバージョン) cat /proc/cpuinfo model name : xxxxxx stepping : 8 cpu MHz : xxxxxx cache size : xxx KB
MySQLのデバッグ情報を出力する
VISUAL=cat /usr/local/mysql/bin/mysqlbug
おもにConfigure Optionを調べる際ににCallする
Webサーバ(Port:80)にアクセスしてきているIPを調べる
netstat -ant | grep EST | grep :80 | awk '{print $5}' \
| awk -F : '{print $1}' | sort | uniq | wc -l
Cのソースファイルから関数を探す
gtags -v global 関数名 (例:mysql_reald_connectを呼び出しているソースを探す) cd /usr/local/src/mysql-5.0.xx/libmysqld gtags -v global -r mysql_real_connect client.c examples/mysql.cc examples/mysql_client_test.c examples/mysqltest.c ha_federated.cc libmysql.c
CのソースファイルからFunction callを抜き出す
cflow xxxx.c
カレントディレクトリにあるファイルをファイルサイズ順に並び変える
ls -lahS ./
SVN ignoreの設定
cd "ignoreを設定したいディレクトリ" svn --editor-cmd vi propedit svn:ignore . <= ignore条件を登録する svn commit -m "Set svn:ignore" <= コミットし登録する
MySQL5の使用可能ストレージエンジンを調べる
mysql> show engines; +------------+----------+ | Engine | Support | +------------+----------+ | MyISAM | DEFAULT | | MEMORY | YES | | InnoDB | DISABLED | | BerkeleyDB | NO | | BLACKHOLE | NO | | EXAMPLE | NO | | ARCHIVE | NO | | CSV | NO | | ndbcluster | NO | | FEDERATED | NO | | MRG_MYISAM | YES | | ISAM | NO | +------------+----------+
MySQLのQUERY_CACHEをクエリ単位で使用しないようにする
SELECT SQL_NO_CACHE ...
MySQLをGDBをつかってDebugする
gdb /usr/local/mysql/libexec/mysqld
(※)一般ユーザーで実効する事。rootではセキュリティチェックにより
実効できない
diffを使った際に、表示を見やすく出力する
diff -br -U1 Aファイル Bファイル -b:スペース削除 -r:再帰的に走査 -U:アウトプットするときに○行にまとめUnified形式にする(+)
Ubuntu、debian系OSのインストール済みパッケージの確認
dpkg -l
.Xresourcesファイルを修正した後のリロード方法
xrdb -load .Xresources
emacsの設定ファイルを修正した後のリロード方法
M-x eval-current-buffer
emacsでTab => Spaceへ置換する
置き換えたい範囲を選択(全選択:Ctrl x + h) Esc x untabify
grepコマンド alias指定
alias grep='grep --color=auto --exclude=*\.svn* --exclude=*text-base* --exclude=*all-wcprops* --exclude=*entries*'
ファイルの文字コード、ファイルタイプを調べる
file -i "ファイルパス"
サービス、デーモンの起動条件を変更
sysv-rc-conf
Linuxのデバイスを調べる
lspci -nn
Debianインストール済みパッケージ一覧
dpkg --get-selections
左から、"割り当て済み" 、"使用中" 、"最大割り当て可能"ファイルディスクリプタの順にて表示
cat /proc/sys/fs/file-nr
ファイルディスクリプタの詳細情報
/proc/self/fd/
debian package reinstasll
apt-get install build-essential devscripts apt-get source php5 cd php5-* vim debian/rules debuild -us -uc -b
MySQL現在の接続状況を調べる
mysqladmin -u root extended-status | grep -E 'Max | Threads'
名前が tar で終わるもの以外のファイル・ディレクトリを削除する
ls | grep -v -E 'tar$' | xargs rm -r
Trackback URL
http://blog.fukaoi.org/2009/06/07/command?tb=y&entry_id=24
XML
