便利コマンド等まとめ

Last-modified: 2010-12-25 (土) 04:53:36

空ディレクトリを探す?

find ./ -type d -empty

条件にマッチしたファイルに対してコマンド実行その1

find ./ -regex .*\.db -exec rm {} \;

条件にマッチしたファイルに対してコマンド実行その2

find ./ hogehoge -print0 | xargs -0 ls -l

一度にリネーム色々

(例2) 拡張子 .htm を.html に変更する

 $ rename 's/.htm/.html/' *.htm

(例3) 拡張子 .htm を削除する

 $ rename 's/.htm//' *.htm

(例4) 先頭に文字「20070610-」を加える

 $ rename 's/^/20070610-/' *

(例5) 上の2007を2008に変更する

 $ rename 's/2007/2008/' *

bash Ctrl+Dでログアウト 回数

環境変数 IGNOREEOFに警告回数を設定

DiskImage 圧縮しながらバックアップ

dd if=/dev/sda5 | gzip -c > <お好みのイメージファイル名>

DiskImage マウント

ddコマンドで作成したHDD全体イメージのパーティションをマウントするには、パーティションのオフセットを指定する必要があります。
パーティションのオフセットは、fdiskで調べることができます。

fdiskで-uを付けると、セクター単位でパーティションの開始・終了位置を取得できます。

fdisk -l -u hdd.img
Disk www.hda_backup.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = セクタ数 of 1 * 512 = 512 bytes
      デバイス Boot      Start         End      Blocks   Id  System
hdd.img1   *          63      208844      104391   83  Linux
hdd.img2          208845     1847474      819315   82  Linux swap / Solaris
hdd.img3         1847475   156296384    77224455   83  Linux
領域 3 は異なった物理/論理終点になっています:
    物理=(1023, 254, 63) 論理=(9728, 254, 63)

この結果のStartにUnitsのバイト数をかけるとパーティションのオフセット値が算出できます。
例えば、hdd.img3のオフセットは、1847475 * 512 = 945907200です。

hdd.img3をマウントするコマンドは下記のようになります。

mount -o loop,offset=945907200 hdd.img /mnt/hdd

インストール済みパッケージバックアップ

ディレクトリのバックアップ

   /home , /etc , /usr/local

インストール済みパッケージのリストを生成

   $ sudo dpkg --get-selections > install.pkg.lst

リストをセットアップする

   $ sudo dpkg --set-selections < install.pkg.lst

セットされたリストのステータスを実行する(インストール)

   $ sudo apt-get dselect-upgrade

DiskImageの中身を見る

$ head -c 16 backuped-sda1-pbr.img | hexdump -C
00000000  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|
00000010

apt公開鍵追加

gpg --keyserver pgp.mit.edu --recv-keys 07DC563D1F41B907
gpg --armor --export 1F41B907 | apt-key add -

特定ディレクトリのファイル数

find /home/takahashi/www/ -type f | wc -l

wget

--user
ユーザー名
--password
パスワード
-r, --recursive
再帰的にダウンロードする
-l, --level=NUM
再帰的にダウンロードするときの階層数。0なら無限
-x, --force-directories
ディレクトリを強制的に作る
--no-check-certificate
サーバ証明書の検証をしない
--restrict-file-names=nocontrol
文字化け回避
-A, --accept=LIST
ダウンロードする拡張子をコンマ区切りで指定する
-H, --spqn-hosts
再帰中に別のホストもダウンロード対象にする
-nd,--no-directories
ディレクトリを作らない
--limit-rate=100000
帯域制限(単位はbyte/s・例だと100kbyte/sで帯域制限)

ssh ポートフォワード

ssh -N -f -L [LocalHostListenPort]:[ForwardHost]:[RemoteHostPort] user@hostname
-N
リモートホストでコマンドを実行しない
-f
コマンドを実行し、バックグラウンド。一時的にフォワードするなら指定しない方がいいっぽいね
-L [LocalHostListenPort]:[ForwardHost]:[RemoteHostPort] user@hostname
ポートフォワード元、先のポート、ホストの設定
[LocalHostListenPort]
ローカルホストにて何番のポートでListenするか
[ForwardHost]
SSHサーバからみたポートフォワード先のアドレス
[RemoteHostPort]
ポートフォワード先のポート番号

snmp OID確認

snmpwalk -v 2c -c COMMUNITY AGENT [OID]
-v
SNMPのバージョンの指定
-c
コミュニティの指定
  • -Onを指定するとOIDを数字で表示する

samba ログアウト

(Windowsのコマンドプロンプトで)

net use /delete *

ファイル暗号化/復号化

bash の場合

alias crypt="openssl enc -e -aes256 -k "
alias decrypt="openssl enc -d -aes256 -k "

としておくと、

crypt パスワード < ファイル > 暗号を入れたいファイル

というような使い方ができます。

  • -k はパスワードを指定するときのオプションです。-k を使わないときにはパスワードを聞いてきます。

ffserverとffmpegによるライブカメラストリーミング

ffserver -f /etc/ffserver.conf &
ffmpeg -f video4linux2 -s 320x240 -r 30 -i /dev/video0 http://localhost:8090/feed1.ffm

killコマンド

kill [-s SIGNAL] PID
  • -s|シグナルの指定
SIGSTOP
一時停止
SIGCONT
一時停止→継続
KILL
強制終了
TERM
終了
HUP
再起動

DVD Rip & make iso

dvdbackup -M -i /dev/dvd -o /path/to/image_files_dir
mkisofs -udf -dvd-video -o /path/to/image.iso /path/to/image_files_dir/title