basic commands usage
よく使う基本的コマンドの使用パターンを記載。
sort
IPv4アドレスのソート例
... | sort -t. -k1n -k2n -k3n -k4n
一部一致した行の行数をそれぞれ数える
awk '{print $2 $3}' filename | uniq -c
uniq
ソートして重複行を除外
... | sort | uniq
seq
通番の範囲で繰り返して実行
for num in `seq 0 7`; do
ping -c 1 192.168.0.1${num}
done
grep
ログ確認
grep -i -E "crit|emer|alert|err|warn" /var/log/messages
dmesg | grep -i -E "crit|emer|alert|err|warn"
コメント行と空行を除く
grep -E -v "^#|^$" file
出力を抑止(リターンコード: マッチしたら0、しなかったら1、エラーは2)
grep -q pattern file
出力の前にファイル名を表示しない
grep -h pattern file1 file2 ....
cat
制御文字(タブ文字、改行文字を含む)を含めて、表示する
cat -vte filename
行番号を表示
cat -n filename
script
作業ログの取得
script [-a] [-c command] filename
nohup
ジョブをバックグラウンドで動かし、ログアウトしても続行させる。(nohupさせないと、ログアウトしたらジョブが終了する。) cshの埋め込みコマンドにも同名のものがある。
nohup command arg1 arg2 ... > logfile 2>&1 &
tail
GNUのtailは複数のファイルを与えることができる
tail -n 5 file1 file2 ...
追加されたデータを表示する
... | tail -f
mkisofs
isoイメージファイル作成
mkisofs -r -J -o filename.iso dirname
col
manの出力からバックスペースを削除してテキストに出力
man man | col -b > outfile
script
scriptでログを取得し、エスケープシーケンスを適切に処理して閲覧する。
script [-c command] [-a] [logfile]
less -R logfile
date
3週間前の日付を表示
date --date "3 weeks ago" "+%Y%m%d"
昨日の日付を表示
date --date yesterday "+%Y%m%d"
or
TEMP_TZ=$TZ
export TZ=JST+15
yesterday=`date +%Y%m%d`
export TZ=$TEMP_TZ