Developer Roadmaps にあった DevOps コマンドをまとめておく。
列を抽出する。
$ echo 1 2 3 4|awk '{print $1}'
1
$ echo 1 2 3 4|awk '{print $2}'
2
$0
だとすべて。
$ echo 1 2 3 4|awk '{print $0}'
1 2 3 4
区切り文字の指定もできる。
$ echo 1:2:3:4|awk -F'[:]' '{print $1}'
1
文字列置換。
$ cat test.txt
1 2 3 4 5
$ sed 's/3/333/g' test.txt
1 2 333 4 5
文字列検索。
$ cat test.txt
1
2
3
4
5
$ cat test.txt | grep 3
3
-v
は一致しないものを検索する。
ソートする。
$ cat test.txt
1
12
3
23
55
22
$ sort test.txt
1
12
22
23
3
55
-n
は数値として並べる。
$ sort -n test.txt
1
3
12
22
23
55
-r
は逆順として並べる。
$ sort -n -r test.txt
55
23
22
12
3
1
重複した行を削除。
$ cat test.txt
0123456789
abcdefghij
abcdefghij
ABCDEFGHIJ
9876543210
$ uniq test.txt
0123456789
abcdefghij
ABCDEFGHIJ
9876543210
-i
は大文字小文字を無視する。
$ uniq -i test.txt
0123456789
abcdefghij
9876543210
ファイル出力。
$ cat test.txt
0123456789
abcdefghij
abcdefghij
ABCDEFGHIJ
9876543210
awk で良さそう。
$ cat test.txt
1:2:3
4:5:6
7:8:9
$ cut -f 2 -d ":" test.txt
2
5
8
awk
でやる場合。
$ cat test.txt |awk -F ':' '{print $2}'
2
5
8
文字列を表示する。
$ echo 'aaa'
aaa
整形。
$ cat test.txt
1 2 3
4 5 6
7 8 9
$ fmt test.txt
1 2 3 4 5 6 7 8 9
文字の変換、削除する。
$ cat test.txt
12345
abcde
ABCDE
$ cat test.txt | tr abc XYZ
12345
XYZde
ABCDE
$ cat test.txt | tr -d 123
45
abcde
ABCDE
行数表示できる。
$ nl test.txt
1 12345
2 abcde
3 ABCDE
cat でやるなら -b
を使う。
$ cat -b test.txt
1 12345
2 abcde
3 ABCDE
grep -E
と同じ意味。
拡張正規表現ってのが使える.普通の正規表現と何が違うかはよくわからない。
$ cat test.txt
12345
bar
foo
$ grep -E '^(bar|foo)' test.txt
bar
foo
grep -F
と同じ意味。
正規表現文字をそのまま検索できる。
$ cat test.txt
12345
bar.foo
$ grep -F 'bar.foo' test.txt
bar.foo
行数、単語数を数える。
$ cat test.txt
Hello World!
-m
は文字数を数える。
$ wc -m test.txt
13 test.txt
-w
は単語数を数える。
$ wc -w test.txt
2 test.txt
全プロセスを表示する。
$ ps aux
プロセス、CPU、メモリを表示。
デフォルトだと CPU 使用率順にソート。
-a
でメモリ使用順にソート。
top より見やすい。
Shift + P で CPU 使用率、Shift + M でメモリ使用率順。
top コマンドの代替。
htop のほうが良さそう。
特定のポート番号を待ち受けているか、もしくはファイルを読み込んでいるかを調べるとき。
80 番ポートで実行中のプロセスを調べる。
$ lsof -i:80 -P
特定のファイルを開いているプロセスを調べる。
$ lsof <FILE>
コマンドを指定する。
$ lsof -c <COMMAND>
サーバの開いているポートを調べる。
$ nmap <SERVER>
パケットをキャプチャする。
ホストを指定してキャプチャする。
$ tcpdump host <HOST>
port を指定する。
$ tcpdump host <HOST> and port 22
$ tcpdump host <HOST> or port 22
パケットを送信して通信を確認。
経路と応答を調べる。
<TARGET>
までの経路と応答を調べる。
$ traceroute <TARGET>
経路と応答を調べる. traceroute とだいたい同じ。
ドメイン名に対する IP を調べる。
$ dig www.google.co.jp
ネットワーク関連の情報を表示。
-r
でルーティングテーブルを表示する。
OS のベンチマークをとったりできる。
CPU 使用率と I/O デバイスの使用状況を調べる。
メモリ、プロセス、スワップ、 CPU 等の統計情報を調べる。
仮想メモリや CPU 、ディスク I/O の統計情報を調べる。
実行コマンドをトレースする。
$ strace ls
カーネル名を表示。
-a
で全ての情報を表示する。
$ uname -a
ディスクの空き容量を調べる。
-h
で読みやすく表示。
$ df -h
コマンドの履歴を表示。
-d
で指定した番号の履歴を削除する。
$ history -d 10