サーバ管理
便利なコマンド使用例、使えそうなコマンド、ワンライナーなどなど・・・忘れない程度に記載してみました。どのunixプラットホームにも使用できると思います(多分・・・)。
awkやsedコマンドの使用方法を覚えると作業効率がグッと向上します。最初は構文が長ったらしくて覚えづらいと思いますが、慣れると手放せないツールの一つです。
ユーザuser1のプロセスを一度にkill
% ps -aux | awk '/^user1/{print $2}' | xargs kill -9
9カラム目にwordがある行を表示
% awk '$9 ~ /word/ {print $0}' file
最大値を検索
% cat text | awk '{if ($3 > max){ max = $3;l = NR;}} END {print max; print l}'
カラムの長さチェック
% awk -F, 'length($3) == 3 {print $0}' text
3MB以上のメールボックスを検索
% ls -al /var/mail | awk '$5 > 3000000 {print $0}'
awkで足算
% du -k a* | awk '{s += $1} END {print "total is",s}' % ls -l | sort +4 -rn | head -1000 | awk '{s += $5} END {print "total is",s}' % ls -l | sort +4 -rn | sed -n '500,1500p'| awk '{s += $5} END {print "total is",s}'
置換
% sed -e 's/foo/bar/g' myfile.txt % sed -e '1,10s/enchantment/entrapment/g' myfile2.txt
指定行間表示
% sed -n '42,48p' access_log % sed -n '42,$p' access_log // 42行目から最後
行番号付表示
% sed -n -e '=;p' access_log
行頭がuserの行を削除
% sed 's/^user//g' text > text.tmp
置換 3,4カラムを入れ替え
% sed 's/3,\(.*\),\(.*\),\(.*\),\(.*\)/3,\1,\2,\4,\3/g' text // \Nはメモリ変数
文末の空白を削除
% sed 's/ *$//g' file
文字列を末尾に挿入
:%s/$/<string>/g
空白をタブに変換
:%s/^ */ /g
カーソル以降を削除
dG
タブを空白に変換
% expand file > hoge
2つ以上の空白をタブに変換
% unexpand -a file > hoge
windows/unixの改行変換
% tr -d "\15" <text >text1
小文字から大文字に変換
% tr '[a-z]' '[A-Z]' < hoge
大文字から小文字に変換
% tr '[A-Z]' '[a-z]' < hoge