Skip to main content

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