コマンド Tips
ファイル操作
指定した容量のダミーファイルを作成する
coLinux 用の swap ファイルを作成するとき、自動バックアップスクリプトのベンチマークに使用するバックアップ対象ダミーファイルを作成するとき、など、任意のサイズのダミーファイルを作成したい場合は dd コマンドを使用する。
dd if=/dev/zero of=DUMMY_FILE bs=1M count=*100*
→ bs×count (1MB×100) で 100MB のダミーファイルを作成する。
dd コマンドは、
if
に指定されたファイルを、bs
で指定されたサイズで、count
で指定された回数分読み込み、of
で指定されたファイルにコピーする
コマンドである。
実際の実行結果は、以下のとおり。
$ dd if=/dev/zero of=dummy bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.155313 seconds, 675 MB/s
$ ls -lh dummy
-rw-rw-r-- 1 sunone sunone 100M 5月 31 01:27 dummy
if
に /dev/zero を指定しているので、中身が全てヌルキャラクタ (ASCII の 0x00
) で 100MB(1MB×100) のダミーファイルが作成される。
複数のファイルをまとめてリネームする
複数ファイルの拡張子を一括変換したいときなど、複数ファイルのファイル名の一部を一括して変更したい場合は、 mv コマンドではなく rename コマンドを使用する。
rename FROM_STRING TO_STRING TARGET_FILE
→ 対象となるファイル (TARGET_FILE) の FROM_STRING に該当する部分を TO_STRING に置き換えてリネームする。
$ ls
bar.htm foo.htm fuga.htm hoge.htm
$ rename .htm .html *.htm
$ ls
bar.html foo.html fuga.html hoge.html
diffコマンドに一時ファイルを作らずにコマンドの実行結果を渡す
diff コマンドは引数にファイル以外を指定することはできないため、
# これはできない
diff `command1` `command2`
のように、コマンドの実行結果を直接渡すことはできない。
通常、この command1
と command2
の実行結果を diff コマンドで比較するには、一時ファイルに各コマンドの実行結果を出力し、その一時ファイルを diff コマンドで比較することになる。
だが、プロセス置換を使用することで、一時ファイルを作成せずに、コマンドの実行結果を直接 diff コマンドに渡すことができる。
diff <(command1) <(command2)
プロセス
プロセスをツリー形式で表示する
プロセスツリー全体を表示する
プロセスの親子関係をわかりやすく表示するには pstree コマンドを使用する。
pstree -anpHプロセスID
→ pstree コマンドに anpH
オプションと強調表示したいプロセスID(PID) をスペースなしで指定する。
pstree コマンドは実行中のプロセスの親子関係をツリー構造で表示するコマンドである。
特定のプロセスを強調表示したい場合は H
オプションと共に対象のプロセスID を指定する。強調表示が不要な場合は、H
オプションとプロセスID は不要となる。
各オプションの詳細は以下のとおり。
- -a
- コマンドラインの引数を表示する。
- -n
- PID でソートする。
- -p
- PID を表示する。
- -h
- カレントプロセスとその先祖のプロセスを強調表示する。
- -H*プロセスID*
- 指定した PID のプロセスを強調表示する。
$ pstree -anph
init,1
┠tq(migration/0,2)
┠tq(ksoftirqd/0,3)
┠tq(watchdog/0,4)
┠tq(events/0,5)
┠tq(khelper,6)
┠tq(kthread,7)
┃ ┠tq(kblockd/0,10)
┃ ┠tq(kacpid,11)
┃ ┠tq(cqueue/0,68)
┃ ┠tq(khubd,71)
┃ ┠tq(kseriod,73)
┃ ┠tq(khungtaskd,134)
┃ ┠tq(pdflush,135)
┃ ┠tq(pdflush,136)
┃ ┠tq(kswapd0,137)
―以下省略―
プロセスツリーの一部を表示する
プロセスツリーの一部分のみを表示したい場合は、対象となるプロセスのプロセスID(PID) を指定する。
pstree -anp プロセスID
→ pstree コマンドに anp
オプションと対象とするプロセスID(PID) を指定する。
$ pstree -anp 32309
sshd,32309
┠sshd,32311
┠bash,32312
┠pstree,1392 -anp 32309
部分表示では特に強調表示は必要ないと思われるので、-H
オプションは省略する。