bash

シンボリックリンクの切れたファイルを削除

#!/bin/bash for i in `find ./ -type l`; do if test -e $i; then echo "o "$i; else echo "x "$i; rm -rf $i; fi done; if 文と test コマンド - UNIX & Linux コマンド・シェルスクリプト リファレンス

ファイルの拡張子一覧を作成する

$ perl -wnl -e '/\.\/.*(\..*)$/ and print $1;' files.txt | sort | uniq findを使う $ find ./ -type f | perl -wnl -e '/\.\/.*(\..*)$/ and print $1;' | sort | uniq

標準エラー出力を捨てる

$ (fgrep -rl aaa.gif * > /dev/pts/1 ) >& /dev/null 標準出力を file1 に、標準エラー出力を file2 に、などと振り分けるには、 % ( command > file1 ) >& file2 とする。これを応用して、標準エラー出力を全く表示させず、標準出力だけを見るには % ( com…

bashで計算

expr ×の時はエスケープ(\*)が必要。

.screenrc

$ cat .screenrc escape ^Zz vbell off startup_message off autodetach on hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"

whois

$ whois -h whois.nic.ad.jp whois -h whois.nic.ad.jp whoisもネームサーバひくだけじゃなくて、他にも調べられそう。 次はwhoisを使ってみましょう。もちろんゾーン情報を取得してたとしても、ネームサーバーに書かれていない秘密のサーバー、ルーター、ク…

Linuxディストリビューションを判別する

いまのとここのくらい。 $ cat /proc/version $ cat /etc/redhat-release $ cat /etc/debian_version $ uname -a http://his.luky.org/ML/linux-users.6/msg04819.html

.htaccessをfindしてperlで表示

find ./ -maxdepth 3 -name .htaccess | perl -e 'for (<STDIN>) {print "-" x 40, "\n";print $_;print "-" x 40, "\n";open(FH,"<$_"); print while(<FH>); close(FH);}' | vi -</fh></stdin>

findした結果をすべてvimで開く

$ vi `find ./ -name ".htaccess"` :nで次のファイルが開きます。

.bashrc

set -o vi

コマンドラインをvimのように操作

bashの場合(~/.bashrcを編集):set -o vi [Esc]でとまどいそう。 [Esc]kで履歴もたどれたよ。

netstat

次にTCPの状態遷移図を示しておく。 apache アクセス 集中 - Google 検索はっぴぃ・りなっくす - B-Wiki - apacheチューニング top w free vmstat netstat @IT:Apacheパフォーマンス・チューニングの実践(2/2) sanonosa システム管理コラム集: サーバの…

fgrep -rl test * | grep -v html の代わり

fgrep -rl test --exclude='*.html' --exclude='*.htaccess' --exclude='*.xml' * http://d.hatena.ne.jp/lurker/20070312/1173657802

findで一年以上前に作成されたファイルを削除する

find ./ -mtime +365 -exec rm {} \; http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230777/ http://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html

親ディレクトリがなくてもサブディレクトリを作るには mkdir -p

しかし、-pオプションを付けてmkdirコマンドを実行すると、親ディレクトリが存在しなくても、一気にサブディレクトリを作成できる。

で特定のディレクトリにあるhtmlファイルの文字コードをShift_JISにするスクリプト

#!/bin/bash file=`find ./ -name "*.html"` for i in ${file} do echo $i lv -Os $i > $i".s";mv $i".s" $i done

fgrep で結果を複数行表示する

これで検索結果の判断がしやすくなるねぇ。 fgrep -r -A 5 hoge ./fuga A NUM, --after-context=NUM NUM で指定した行数だけ、パターンにマッチした行の後の行も表示します。

のコマンドラインで入力するときに便利なキー

ここで、さまざまなコマンドをタイプするわけだが、シェルにはいくつかの編集機能が用意されている。Back Spaceキーで直前の文字を消し、カーソルキーでコマンドラインに打ち込んだ文字列の中を移動することができることに気が付いている人も多いだろう。し…

dig @server domain query-type

digコマンド形式……dig @server domain query-type 指定する内容 server:利用するネームサーバ domain:情報を知りたいドメイン名 query-type:知りたい情報のタイプquery-type例 A: ネットワークアドレス (省略時) NS: ネームサーバ MX: メールサーバ…