この広告は、90日以上更新していないブログに表示しています。
いろいろあるLinuxコマンドを区別するためのメモ。
| w | ログイン中のユーザについて、実行中のコマンド名も含め表示する |
| who | ログイン中のユーザについて、ログイン時刻を表示する |
| users | ログイン中のユーザのみを表示する |
| id | 自分の実ユーザ名、実効ユーザ名、所属グループを表示する |
| whoami | 自分の実効ユーザ名のみを表示する |
| last | 成功したログイン履歴を表示する |
| lastb | 失敗したログイン履歴を表示する(要root権限) |
| lastlog | 各ユーザの最終ログイン時刻を表示する |
$ w 22:44:42 up 12:19, 3 users, load average: 0.03, 0.02, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATuser pts/2 192.168.56.1 21:16 2.00s 0.77s 0.00s w$ whouser pts/2 2014-11-11 21:16 (192.168.56.1)$ usersuser
これらのコマンドが標準で読み込むログデータは、/var/run/utmp、/var/log/{wtmp,btmp}にある。
| which | コマンド名から絶対パスを得る |
| readlink | シンボリックリンクを解決する(-eオプションで絶対パスを得る) |
| whereis | コマンド名などから設定ファイルやマニュアルなどのパス一式を得る |
| whatis | コマンド名などから概要をリスト表示する(完全一致) |
| apropos | コマンド名などから概要をリスト表示する(部分一致) |
| man | コマンド名などからマニュアルを表示する |
| mandb | マニュアルのインデックス情報を更新する |
| manpath | マニュアルが置かれているパスを表示する |
| locate | ファイルデータベースから検索する(部分一致) |
| updatedb | ファイルデータベースを更新する(要root権限) |
$ whereis passwdpasswd: /usr/bin/passwd /etc/passwd /usr/bin/X11/passwd /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz$ whatis passwdpasswd (1ssl) - compute password hashespasswd (1) - change user passwordpasswd (5) - the password file$ apropos passwdchgpasswd (8) - update group passwords in batch modechpasswd (8) - update passwords in batch modefgetpwent_r (3) - get passwd file entry reentrantly...
| ps | プロセス一覧を表示(fで親子関係を表示) |
| pstree | プロセスツリーを表示(-aオプションでコマンドライン表示) |
| pidof | プロセス名からプロセスIDを得る(完全一致) |
| pgrep | プロセス名からプロセスIDを得る(部分一致、-aオプションでコマンドライン表示) |
| kill | プロセスIDに対しシグナルを送る |
| killall | 一致するプロセス名すべてにシグナルを送る(完全一致) |
| pkill | 一致するプロセス名すべてにシグナルを送る(部分一致) |
| top | プロセス一覧のリアルタイム表示(-cオプションでコマンドライン表示) |
$ ps auxfUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND...root 930 0.0 0.6 61364 3060 ? Ss 02:30 0:00 /usr/sbin/sshd -Droot 1313 0.6 0.8 103556 4148 ? Ss 02:31 0:00 \_ sshd: user [priv]user 1362 0.0 0.3 103556 1932 ? S 02:31 0:00 \_ sshd: user@pts/0user 1363 2.6 0.9 23036 4592 pts/0 Ss 02:31 0:00 \_ -bashuser 1376 0.0 0.2 18280 1360 pts/0 R+ 02:31 0:00 \_ ps auxf...$ pstreeinit─┬─acpid ├─apache2───2*[apache2───26*[{apache2}]] ├─atd ├─cron ├─dbus-daemon ├─dhclient ├─docker.io───6*[{docker.io}] ├─6*[getty] ├─rsyslogd───3*[{rsyslogd}] ├─sshd───sshd───sshd───bash───pstree ├─systemd-logind ├─systemd-udevd ├─upstart-file-br ├─upstart-socket- └─upstart-udev-br$ pstree -ainit ├─acpid -c /etc/acpi/events -s /var/run/acpid.socket ├─apache2 -k start │ ├─apache2 -k start │ │ └─26*[{apache2}] │ └─apache2 -k start │ └─26*[{apache2}] ├─atd ├─cron ├─dbus-daemon --system --fork ├─dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 ├─docker.io -d │ └─6*[{docker.io}] ├─getty -8 38400 tty4 ├─getty -8 38400 tty5 ├─getty -8 38400 tty2 ├─getty -8 38400 tty3 ├─getty -8 38400 tty6 ├─getty -8 38400 tty1 ├─rsyslogd │ └─3*[{rsyslogd}] ├─sshd -D │ └─sshd │ └─sshd │ └─bash │ └─pstree -a ├─systemd-logind ├─systemd-udevd --daemon ├─upstart-file-br --daemon ├─upstart-socket- --daemon └─upstart-udev-br --daemon$ pidof sh$ pgrep -a sh127 kdmflush130 kdmflush930 /usr/sbin/sshd -D1313 sshd: user [priv]1362 sshd: user@pts/01363 -bashtopコマンドでは、xでソートカラムのハイライト、<、>でソートカラムの移動、cでコマンドラインの表示切り替えができる。
| od | 8進ダンプ(`-Ax -tx1z`で16進ascii view付きダンプ) |
| hexdump | 16進ダンプ、printfライクなフォーマット指定が可能 |
| hd | 16進ascii view付きダンプ(`hd -C`と同じ) |
| xxd | 16進ダンプ、バイナリへの逆変換が可能 |
od -Ax -tx1zとhdはほぼ同じ出力となる。
$ echo hoge | od -Ax -tx1z000000 68 6f 67 65 0a >hoge.<000005$ echo hoge | hd00000000 68 6f 67 65 0a |hoge.|00000005
hexdumpはフォーマット文字列を指定することで、エスケープ文字列の生成などに使える。
$ echo hoge | hexdump -ve '/1 "_%02x"' | sed 's/_/\\x/g'\x68\x6f\x67\x65\x0a
xxdは出力結果をバイナリに戻すことができるため、バイナリ編集に使える。
$ echo hoge | xxd | tee dump.txt0000000: 686f 6765 0a hoge.$ sed 's/6[0-9a-f]/61/g' dump.txt | tee dump2.txt0000000: 6161 6161 0a hoge.$ xxd -r dump2.txtaaaa
| netstat | TCP、UDP、Unixドメインソケットの利用状況(`-an`)、ルーティングテーブル(`-rn`)などを表示 |
| vmstat | メモリ、CPUなどの利用状況を表示 |
| free | メモリ、swapの利用状況を表示 |
$ vmstatprocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 192248 35296 214808 0 0 45 30 42 617 0 1 98 1 0$ free total used free shared buffers cachedMem: 501788 309540 192248 684 35296 214808-/+ buffers/cache: 59436 442352Swap: 524284 0 524284
sysstatパッケージをインストールすると、以下のコマンドも使える。引数を与えることで、定期的に表示させることもできる。
| iostat | CPU、ディスクのIO状況を表示(-pオプションでパーティションごとの詳細も表示) |
| mpstat | CPUプロセッサごとの利用状況を表示(`-P ALL`ですべて表示) |
| pidstat | プロセスごとのCPU、メモリ使用量などを表示 |
$ iostat -pLinux 3.13.0-32-generic (vm-ubuntu64) 11/12/2014 _x86_64_ (1 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 0.36 0.00 0.87 0.66 0.00 98.11Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 1.95 42.92 30.14 239600 168258sda1 0.06 0.21 0.00 1149 6sda2 0.00 0.00 0.00 2 0sda5 1.75 42.58 30.14 237709 168252dm-0 3.17 42.36 30.14 236493 168252dm-1 0.04 0.16 0.00 896 0$ mpstat -P ALLLinux 3.13.0-32-generic (vm-ubuntu64) 11/12/2014 _x86_64_ (1 CPU)04:03:58 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle04:03:58 AM all 0.36 0.00 0.68 0.66 0.19 0.00 0.00 0.00 0.00 98.1104:03:58 AM 0 0.36 0.00 0.68 0.66 0.19 0.00 0.00 0.00 0.00 98.11$ pidstatLinux 3.13.0-32-generic (vm-ubuntu64) 11/12/2014 _x86_64_ (1 CPU)04:04:02 AM UID PID %usr %system %guest %CPU CPU Command04:04:02 AM 0 1 0.01 0.01 0.00 0.02 0 init04:04:02 AM 0 3 0.00 0.00 0.00 0.00 0 ksoftirqd/004:04:02 AM 0 7 0.00 0.01 0.00 0.01 0 rcu_sched04:04:02 AM 0 8 0.00 0.02 0.00 0.02 0 rcuos/0...
| lsof | 各プロセスが開いているファイルの一覧を表示(`lsof -in`でソケット利用状況のみを表示) |
| lsmod | 読み込まれているカーネルモジュールの一覧を表示 |
| lsblk | ブロックデバイスの一覧を表示 |
| lspci | PCIデバイスの一覧を表示 |
| lsusb | USBデバイスの一覧を表示 |
| lscpu | CPUの詳細を表示 |
| lshw | ハードウェアの詳細を表示 |
$ sudo lsofCOMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAMEinit 1 root cwd DIR 252,0 4096 2 /init 1 root rtd DIR 252,0 4096 2 /init 1 root txt REG 252,0 265848 1962283 /sbin/initinit 1 root mem REG 252,0 47712 1051256 /lib/x86_64-linux-gnu/libnss_files-2.19.so...$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 40G 0 disk├─sda1 8:1 0 243M 0 part /boot├─sda2 8:2 0 1K 0 part└─sda5 8:5 0 39.8G 0 part ├─vm--ubuntu64--vg-root (dm-0) 252:0 0 38.8G 0 lvm / └─vm--ubuntu64--vg-swap_1 (dm-1) 252:1 0 1G 0 lvm [SWAP]sr0 11:0 1 1024M 0 rom$ sudo lshwvm-ubuntu64 description: Computer product: VirtualBox () vendor: innotek GmbH version: 1.2...
| host | DNS問い合わせを行う(-aオプションで詳細表示) |
| hostname | 自分のホスト名を表示する(-Iオプションで持っているIPアドレスをすべて表示する) |
| nslookup | DNS問い合わせを行う(非推奨) |
| dig | 詳細なDNS問い合わせを行う(+norecオプションで再帰問い合わせをオフ、+shortで簡易表示) |
$ hostnamevm-ubuntu64$ hostname -I10.0.2.15 192.168.56.2 172.17.42.1$ host www.example.comwww.example.com has address 93.184.216.119$ host -a www.example.comTrying "www.example.com";; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65301;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:;www.example.com. IN ANY;; ANSWER SECTION:www.example.com. 49262 IN AAAA 2606:2800:220:6d:26bf:1447:1097:aa7www.example.com. 41920 IN A 93.184.216.119Received 77 bytes from 192.168.0.1#53 in 15 ms$ dig +norec www.example.com; <<>> DiG 9.9.5-3-Ubuntu <<>> +norec www.example.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58718;; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4000;; QUESTION SECTION:;www.example.com. IN A;; ANSWER SECTION:www.example.com. 51107 IN A 93.184.216.119;; Query time: 17 msec;; SERVER: 192.168.0.1#53(192.168.0.1);; WHEN: Sun Nov 09 07:31:28 JST 2014;; MSG SIZE rcvd: 60$ dig +short www.example.com93.184.216.119
ldnsutilsパッケージをインストールすると、drillコマンドも使える。
| drill | 詳細なDNS問い合わせを行う(DNSSEC用オプションあり) |
$ drill -S good-A.test.dnssec-tools.org @8.8.8.8;; Chasing: good-a.test.dnssec-tools.org. AWarning: No trusted keys specifiedDNSSEC Trust tree:good-A.test.dnssec-tools.org. (A)|---test.dnssec-tools.org. (DNSKEY keytag: 19442 alg: 5 flags: 256) |---test.dnssec-tools.org. (DNSKEY keytag: 28827 alg: 5 flags: 257) |---test.dnssec-tools.org. (DNSKEY keytag: 55926 alg: 5 flags: 257) |---test.dnssec-tools.org. (DS keytag: 28827 digest type: 2) | |---dnssec-tools.org. (DNSKEY keytag: 3147 alg: 5 flags: 256) | |---dnssec-tools.org. (DNSKEY keytag: 34816 alg: 5 flags: 257) | |---dnssec-tools.org. (DS keytag: 34816 digest type: 2) | |---DNSSEC signature not incepted yet:dnssec-tools.org. 21514 IN RRSIG DS 7 2 86400 20141130154950 20141109144950 60764 org. Y81ZkDb5VATulj+EykyOG9lir+mn9t9mMslqxTYc2PabXLXrl+i7H3Qo2i7zazI3uLwqb2Ash0GQVBaaQ5yPyhw+v7mmPw=For RRset:dnssec-tools.org. 21514 IN DS 34816 5 2 bf59736eab4d7080065a8c96a714b86c23383478f69d9f7d887cbe9930b7a7a0With key:org. 448 IN DNSKEY 256 3 7 AwEAAXQRcjCcYDIZTLZZq46iF8oUX+c15GVdbszCa2RrrPz7yWEWAhu1A2ca8fWm9RR5uBS/cO0zC/NQYWrmjp0Ci/h5ENrkFZlTLxOUC39zcKtYkymNXZ1Jv5GQ0D40AO2FYUdkMCR+EDJoGxCjv+W9j96I} | |---org. (DNSKEY keytag: 60764 alg: 7 flags: 256)(snip)You have not provided any trusted keys.;; Chase successful
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。