Linux/Unix コマンドの一覧

Linux/Unix コマンドの一覧と、その使い方をご紹介します。

目次

  1. オプション
    1. POSIX
    2. GNU
  2. 正規表現
  3. ユーザーコマンド
    1. Atom
    2. awk
    3. basename
    4. bzcmp
    5. bzdiff
    6. bzegrep
    7. bzfgrep
    8. bzip2
    9. bzless
    10. bzmore
    11. cat
    12. chmod
    13. clamscan (Clam AntiVirus)
    14. cmp
    15. code (Visual Studio Code)
    16. curl
    17. cut
    18. date
    19. df
    20. diff
    21. dirname
    22. dmesg
    23. dpkg
    24. du
    25. echo
    26. egrep
    27. expr
    28. fc-list
    29. fgrep
    30. file
    31. find
    32. ftp
    33. fuser
    34. gcc
    35. gcore
    36. gdb
    37. getconf
    38. git (Git)
    39. grep
    40. groupadd
    41. groupdel
    42. groupmod
    43. gunzip
    44. gzip
    45. hostname
    46. ifconfig
    47. ipcs
    48. java
    49. julia
    50. kill
    51. ld
    52. less
    53. ls
    54. lsof
    55. man
    56. mkdir
    57. more
    58. mount
    59. nohup
    60. passwd
    61. perl
    62. ps
    63. ping
    64. pstree
    65. rgrep
    66. rm
    67. route
    68. script
    69. sed
    70. seq
    71. rsync
    72. systemctl
    73. su
    74. Subversion
    75. sort
    76. tar
    77. top
    78. traceroute
    79. traceroute6
    80. uname
    81. uncompress
    82. useradd
    83. userdel
    84. usermod
    85. uuidgen
    86. vi
    87. vim
    88. zcat
    89. zcmp
    90. zdiff
    91. zegrep
    92. zfgrep
    93. zless
    94. zmore
  4. 管理・特権コマンド
    1. apt
    2. apt-get
    3. iptables
    4. mount
    5. netstat
    6. rpm
    7. shutdown
    8. sudo
    9. visudo
    10. vmstat
    11. yum

コマンドのオプション

コマンドに指定できるオプションには、POSIX と GNU の2種類の形式がある。

POSIX

POSIX の場合、オプションはハイフンで始まり、アルファベット1文字で指定する。

command -a -c

POSIX オプションに引数を指定する場合、オプションとその引数の間には空白を入れる。

command -a -b foo -c

複数の POSIX オプションを指定する場合、ひとつに纏めて指定できる。

command -ac

ただし、引数を伴う POSIX オプションをひとつに纏めて指定することはできない。

command -ac -b foo

コマンドに引数を指定する場合、全てのオプションはコマンド引数より先に指定する必要がある。

command -a -b foo -c /home/tsuka

GNU

GNU の場合、オプションはハイフン2つから始まり、複数のアルファベットで指定する。

command --foo --baz

GNU オプションに引数を指定する場合、オプションとその引数の間には等号記号を入れる。

command --foo --bar=foobar --baz

GNU オプションをサポートしている全てのコマンドには、--help 及び --version オプションを指定できる。

command --help

dmesg

カーネル・リング・バッファの表示及び制御

dmesg [options]
dmesg --clear
dmesg --read-clear [options]
dmesg --concole-level level
dmesg --console-on
demsg --console-off

echo

テキストの行を表示する。

echo [ -e | -E ] [ -n ] string...
echo { --help | --version }

以下に示すオプションを echo コマンドに指定できる。

-e
エスケープ文字を有効にする。
エスケープ
エスケープ 説明
\\ バックスラッシュ(円記号)
\a 警告(ベル)
\b バックスペース
\f フォームフィード
\n 改行
\r キャリッジリターン
\t 水平タブ
\v 垂直タブ
-E
エスケープ文字を無効にする。
-n
テキストの末尾に改行を出力しない。
--help
ヘルプを表示して、コマンドを終了する。
--version
バージョン情報を表示して、コマンドを終了する。

fc-list

使用可能なフォントの一覧を表示する。

以下に示すオプションを fc-list コマンドに指定できる。

:lang=lang
指定した言語のフォント一覧を表示する。
$ fc-list :lang=ja
-V
バージョンを表示して、コマンドを終了する。
-h
オプションのサマリを表示する。

gcore

実行中プロセスのコア・ファイルを生成する。

gcore [-a] [-o filename] pid[s]

gdb

GNU デバッガー

gdb [OPTIONS] [prog|prog procID|prog core]

groupadd

新しいグループを作成する。

groupadd [options] group
-h
ヘルプ・メッセージを表示して、コマンドを終了する。 (POSIX)
--help
ヘルプ・メッセージを表示して、コマンドを終了する。 (GNU)

groupdel

グループを削除する。

groupdel [options] GROUP

groupmod

システムのグループ定義を変更する。

groupmod [options] GROUP

ifconfig

ネットワーク・インタフェースを構成する。

ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address ...

ld

GNU リンカー

ld [options] objfile ...

man

システム・リファレンス・マニュアルを表示する。

man [option]... [[section] page ...]
-a
検索条件に一致したすべてのマニュアルページを順番に表示する。 (POSIX)
$ man -a write
--all
検索条件に一致したすべてのマニュアルページを順番に表示する。 (GNU)
-s list
セクションを指定する。コロンまたはカンマで区切って、複数のセクションを指定できる。 (POSIX)
$ man -s 2 write
--sections=list
セクションを指定する。コロンまたはカンマで区切って、複数のセクションを指定できる。 (GNU)
-?
ヘルプメッセージを表示して、コマンドを終了する。 (POSIX)
--help
ヘルプメッセージを表示して、コマンドを終了する。 (GNU)
-V
バージョン情報を表示する。 (POSIX)
--version
バージョン情報を表示する。 (GNU)

使用例

$ man ls

引数

以下に示す引数をmanコマンドに指定できる。

section
マニュアルのセクションを指定する。指定できるセクションはシステムにより異なる。Ubuntu で指定できるセクションを以下に示す。
セクション
セクション 説明
1 user commands
2 system calls
3 library functions
4 special files
5 file formats and filesystems
6 games
7 overview and miscellany section
8 administration and privileged commands
$ man 2 write
page
コマンド名、システムコール名、ライブラリ関数名などを指定する。

mkdir

ディレクトリを作成する。

mkdir [option]... directory...

mkdir コマンドには以下に示すオプションを指定できる。

-m mode
ファイルモードを設定する。 (POSIX)
$ mkdir -m 0644 tmp
$ ls -l
drw-r--r--  2 tsuka tsuka 4096 11月 30 18:20 tmp
--mode=mode
ファイルモードを設定する。 (GNU)
-p
もし親ディレクトリが存在しなくてもエラーとせず、親ディレクトリも作成する。 (POSIX)

たとえば、sub1/sub2 というディレクトリを作成する場合、通常は sub1 ディレクトリが存在しないとエラーが発生する。-p オプションを指定すると、sub1 ディレクトリが存在しなければ作成される。

$ mkdir sub1/sub2
mkdir: ディレクトリ `sub1/sub2' を作成できません: そのようなファイルやディレクトリはありません
$ mkdir -p sub1/sub2
$ ls
sub1
$ ls sub1
sub2
--parents
もし親ディレクトリが存在しなくてもエラーとせず、親ディレクトリも作成する。 (GNU)
-v
ディレクトリを作成するごとにメッセージを表示する。 (POSIX)
--verbose
ディレクトリを作成するごとにメッセージを表示する。 (GNU)
--help
ヘルプを表示して、コマンドを終了する。 (GNU)
--version
バージョン情報を出力して、コマンドを終了する。 (GNU)

ping

ICMP の ECHO_REQUEST をネットワーク・ホストへ送信する。

ping [-aAbBdDfhLnOqrRUvV46] [-c count] [-F flowlabel] [-i interval]
    [-I interface] [-l preload] [-m mark] [-M pmtudisc_option]
    [-N nodeinfo_option] [-w deadline] [-W timeout] [-p pattern]
    [-Q tos] [-s packetsize] [-S sndbuf] [-t ttl]
    [-T timestamp option] [hop...] {destination}

pstree

プロセスの階層ツリーを表示する。

pstree [-a, --arguments] [-c, --compact-not] [-C, --color attr]
    [-g, --show-pgids] [-h, --highlight-all, -H pid, --highlight-pid pid]
    [-l, --long] [-n, --numeric-sort] [-N, --ns-sort ns] [-p, --show-pids]
    [-s, --show-parents] [-S, --ns-changes] [-t, --thread-names]
    [-T, --hide-threads] [-u, --uid-changes] [-Z, --security-context]
    [-A, --ascii, -G, --vt100, -U, --unicode] [pid, user]
    pstree -V, --version

rm

ファイル又はディレクトリを削除する。

rm [option]... file...

以下に示すオプションを rm コマンドに指定できる。

-i
削除する前に都度確認をとる。
-I
3つ以上のファイルを削除する前に一度だけ確認をとる。
-d
空のディレクトリを削除する。 (POSIX)
--dir
空のディレクトリを削除する。 (GNU)
-r
ディレクトリとそのコンテンツを再帰的に削除する。 (POSIX)
-R
ディレクトリとそのコンテンツを再帰的に削除する。 (POSIX)
-v
何が行われているかを説明する。 (POSIX)
--verbose
何が行われているかを説明する。 (GNU)
--recursive
ディレクトリとそのコンテンツを再帰的に削除する。 (GNU)
--help
ヘルプを表示して、コマンドを終了する。
$ rm --help
--version
バージョン情報を表示して、コマンドを終了する。
$ rm --version

route

IPルーティング・テーブルを表示したり、操作する。

route [-CFvnNee] [-A family |-4|-6]

route  [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw
       Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod]  [dyn]
       [reinstate] [[dev] If]

route  [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask
       Nm] [metric M] [[dev] If]

route  [-V] [--version] [-h] [--help]

useradd

新しいユーザー・アカウントを作成する。

useradd [options] LOGIN

useradd -D

useradd -D [options]

sort

テキストファイルの行を並び替える。

sort [option]... [file]...

以下に示すオプションを sort コマンドに指定できる。

-k
並び替えるキーを指定する。
-n
文字順ではなく、数値順で並び替える。
文字順 数値順
1 1
10 9
9 10
-r
逆順で並び替える。

ファイルの一覧をファイルサイズの昇順で並び替える。

$ ls -l | sort -n -k 5
total 816
-rw-rw-r-- 1 tsuka tsuka  8178 Sep 23  2023 nohup.html
-rw-rw-r-- 1 tsuka tsuka  8958 Sep 23  2023 script.html
-rw-rw-r-- 1 tsuka tsuka  9025 Sep 23  2023 uncompress.html
-rw-rw-r-- 1 tsuka tsuka  9316 Sep 23  2023 du.html
-rw-rw-r-- 1 tsuka tsuka  9411 Oct 15  2023 df.html
-rw-rw-r-- 1 tsuka tsuka  9861 Sep 23  2023 file.html
-rw-rw-r-- 1 tsuka tsuka  9902 Sep 23  2023 shutdown.html
-rw-rw-r-- 1 tsuka tsuka  9969 Sep 23  2023 dpkg.html
-rw-rw-r-- 1 tsuka tsuka 10042 Sep 23  2023 crontab.html
-rw-rw-r-- 1 tsuka tsuka 10085 May  9  2023 seq.html
-rw-rw-r-- 1 tsuka tsuka 10213 Sep 23  2023 expr.html
-rw-rw-r-- 1 tsuka tsuka 10235 Sep 23  2023 kill.html
-rw-rw-r-- 1 tsuka tsuka 10524 Sep 23  2023 yum.html
-rw-rw-r-- 1 tsuka tsuka 10749 Apr 15  2023 dirname.html
-rw-rw-r-- 1 tsuka tsuka 10806 Sep 23  2023 uuidgen.html
-rw-rw-r-- 1 tsuka tsuka 10841 May  2  2023 rpm.html
-rw-rw-r-- 1 tsuka tsuka 10845 Oct 15  2023 find.html
-rw-rw-r-- 1 tsuka tsuka 11021 Sep 23  2023 vmstat.html
-rw-rw-r-- 1 tsuka tsuka 11164 Jul  5  2023 lsof.html
-rw-rw-r-- 1 tsuka tsuka 11290 Dec 19 20:37 cut.html
-rw-rw-r-- 1 tsuka tsuka 11675 Oct 10  2023 fuser.html
-rw-rw-r-- 1 tsuka tsuka 11741 Sep 23  2023 hostname.html
-rw-rw-r-- 1 tsuka tsuka 12450 Apr 28  2023 ipcs.html
-rw-rw-r-- 1 tsuka tsuka 12630 Oct 15  2023 zcat.html
-rw-rw-r-- 1 tsuka tsuka 12637 Jan 22 10:03 basename.html
-rw-rw-r-- 1 tsuka tsuka 12744 Apr 19  2023 su.html
-rw-rw-r-- 1 tsuka tsuka 13024 Sep 23  2023 netstat.html
-rw-rw-r-- 1 tsuka tsuka 13152 Oct  2  2023 apt-get.html
-rw-rw-r-- 1 tsuka tsuka 13294 Sep 23  2023 visudo.html
-rw-rw-r-- 1 tsuka tsuka 13588 Apr 14  2023 top.html
-rw-rw-r-- 1 tsuka tsuka 13650 Sep 23  2023 rsync.html
-rw-rw-r-- 1 tsuka tsuka 13686 Sep 23  2023 sudo.html
-rw-rw-r-- 1 tsuka tsuka 13705 Dec 18 10:51 bzip2.html
-rw-rw-r-- 1 tsuka tsuka 13920 Feb 18 21:52 apt.html
-rw-rw-r-- 1 tsuka tsuka 14854 Apr 28  2023 getconf.html
-rw-rw-r-- 1 tsuka tsuka 14858 Sep 23  2023 ftp.html
-rw-rw-r-- 1 tsuka tsuka 14930 Oct 12  2023 uname.html
-rw-rw-r-- 1 tsuka tsuka 15568 Sep 23  2023 tar.html
-rw-rw-r-- 1 tsuka tsuka 15783 May  2  2023 date.html
-rw-rw-r-- 1 tsuka tsuka 15881 Oct 13  2023 ls.html
-rw-rw-r-- 1 tsuka tsuka 15974 Nov 12 21:39 chmod.html
-rw-rw-r-- 1 tsuka tsuka 16071 Dec 18 10:52 gzip.html
-rw-rw-r-- 1 tsuka tsuka 16188 Sep 23  2023 mount.html
-rw-rw-r-- 1 tsuka tsuka 16668 Apr  6  2023 passwd.html
-rw-rw-r-- 1 tsuka tsuka 17735 Sep 23  2023 ps.html
-rw-rw-r-- 1 tsuka tsuka 19468 Dec 18 10:39 index.html
-rw-rw-r-- 1 tsuka tsuka 20259 May  7  2023 sed.html
-rw-rw-r-- 1 tsuka tsuka 26575 May  1  2023 iptables.html
-rw-rw-r-- 1 tsuka tsuka 28134 Feb 18 21:43 curl.html
-rw-rw-r-- 1 tsuka tsuka 37675 Apr 14  2023 vi.html
-rw-rw-r-- 1 tsuka tsuka 44134 Sep 23  2023 awk.html

traceroute

traceroute は、ノードまでの経路を取得する Unix/Linux コマンドである。traceroute は引数に指定したホストへパケットを送信するが、その際に TTL (Time to Live) を1ずつ増やす。TTL はパケットの生存期間を表し、ルータをひとつ経由するたびに1ずつ減算される。経路をひとつずつ調べることができる。

traceroute [ option... ] host
host
ホスト
$ traceroute www.ichiyoshi.co.jp
 1  _gateway (192.168.42.129)  1.649 ms  1.618 ms  1.605 ms
 2  * * *
 3  172.16.222.10 (172.16.222.10)  72.858 ms  72.811 ms  72.767 ms
 4  172.16.197.253 (172.16.197.253)  72.895 ms  72.746 ms  72.697 ms
 5  103.124.3.21 (103.124.3.21)  72.452 ms 103.124.3.23 (103.124.3.23)  72.758 ms
 6  103.124.3.48 (103.124.3.48)  72.507 ms 103.124.3.28 (103.124.3.28)  68.371 ms
 7  103.124.3.14 (103.124.3.14)  74.314 ms  24.908 ms  24.864 ms
 8  103.124.3.10 (103.124.3.10)  31.063 ms 101.203.88.104 (101.203.88.104)  31.059 ms  30.896 ms
 9  172.29.0.20 (172.29.0.20)  36.632 ms 101.203.88.104 (101.203.88.104)  36.637 ms  36.599 ms
10  as65000.et-0-0-3.tedge0507.newote.bbtower.ad.jp (211.14.17.17)  36.721 ms  36.660 ms  36.516 ms
11  as65000.et-0-0-3.tedge0507.newote.bbtower.ad.jp (211.14.17.17)  36.569 ms  30.816 ms  24.545 ms
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

オプション

以下に示すオプションを traceroute コマンドに指定できる。

-4
IPv4のトレースルーティングを明示的に強制する。
$ traceroute -4 dns.google
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  _gateway (192.168.43.1)  9.319 ms  9.298 ms  9.425 ms
 2  * * *
 3  172.16.222.2 (172.16.222.2)  56.036 ms  55.757 ms  55.670 ms
 4  172.16.197.252 (172.16.197.252)  56.039 ms  61.268 ms  56.644 ms
 5  103.124.3.49 (103.124.3.49)  61.423 ms 103.124.3.31 (103.124.3.31)  55.674 ms 103.124.3.47 (103.124.3.47)  61.186 ms
 6  103.124.3.46 (103.124.3.46)  61.400 ms 103.124.3.22 (103.124.3.22)  40.787 ms 103.124.3.28 (103.124.3.28)  41.765 ms
 7  103.124.3.12 (103.124.3.12)  40.852 ms  44.674 ms 103.124.3.14 (103.124.3.14)  52.346 ms
 8  72.14.203.174 (72.14.203.174)  62.114 ms 74.125.118.122 (74.125.118.122)  62.148 ms 74.125.118.52 (74.125.118.52)  61.524 ms
 9  * * 108.170.248.179 (108.170.248.179)  56.251 ms
10  dns.google (8.8.8.8)  50.398 ms 64.233.175.11 (64.233.175.11)  50.433 ms 209.85.253.59 (209.85.253.59)  56.118 ms
-6
IPv6のトレースルーティングを明示的に強制する。
$ traceroute -6 dns.google
traceroute to 2001:4860:4860::8888 (2001:4860:4860::8888), 30 hops max, 80 byte packets
 1  240b:c010:101:1b55::4 (240b:c010:101:1b55::4)  816.300 ms  816.206 ms  816.158 ms
 2  240b:c010:101:1b55::4 (240b:c010:101:1b55::4)  816.241 ms  816.386 ms  816.150 ms
 3  240b:c010:101:15e5:0:4:0:6f6 (240b:c010:101:15e5:0:4:0:6f6)  815.970 ms  816.246 ms  815.999 ms
 4  240b:c010:105::7124:0:b (240b:c010:105::7124:0:b)  816.484 ms 240b:c010:105::7124:0:3 (240b:c010:105::7124:0:3)  815.784 ms  815.732 ms
 5  * * *
 6  * 240b:c010:115::8223:0:0 (240b:c010:115::8223:0:0)  35.602 ms *
 7  * * *
 8  2404:6800:802e::1 (2404:6800:802e::1)  52.338 ms 2001:4860:0:1::47bd (2001:4860:0:1::47bd)  52.542 ms 2404:6800:8102::1 (2404:6800:8102::1)  52.020 ms
 9  2001:4860:0:1::5fa9 (2001:4860:0:1::5fa9)  52.318 ms * dns.google (2001:4860:4860::8888)  52.239 ms
-I
プローブにICMP ECHOを使用する。 (POSIX)
--icmp
プローブにICMP ECHOを使用する。 (GNU)
-T
プローブにTCP SYNを使用する。 (POSIX)
--tcp
プローブにTCP SYNを使用する。 (GNU)
-f first_ttl
開始するTTLを指定する。デフォルトは1。 (POSIX)
--first=first_ttl
開始するTTLを指定する。デフォルトは1。 (GNU)
-p port
ポート番号を指定する。 (POSIX)
--port=port
ポート番号を指定する。 (GNU)
-V
バージョンを表示して、コマンドを終了する。 (POSIX)
$ traceroute -V
Modern traceroute for Linux, version 2.1.0
Copyright (c) 2016  Dmitry Butskoy,   License: GPL v2 or any later
--version
バージョンを表示して、コマンドを終了する。 (GNU)
--help
ヘルプを表示して、コマンドを終了する。 (GNU)

インストール

UbuntuLinnux Mint など、Debian 系の Linux に traceroute コマンドをインストールするには、apt コマンドを使う。

$ sudo apt install traceroute

userdel

ユーザー・アカウントと関連ファイルを削除する。

userdel [options] login

usermod

ユーザー・アカウントを変更する。

usermod [-c comment] [-d home_dir [-m]] [-e expire_date] login

userdel コマンドには、以下に示すオプションを指定できる。

-c comment
パスワードファイルのコメントフィールドに与える新しい値を指定する。
-d home_dir
新しいログインディレクトリを指定する。-m オプションを用いると、現在のホームディレクトリの中身が新しいホームディレクトリに移動される。新しいホームディレクトリが存在しない場合は、新たに作成される。
-e expire_date
ユーザーアカウントが使用不能になる日付を「YYYY-MM-DD」という書式で指定する。

clamscan

ファイルとディレクトリのウィルスをスキャンする。

clamscan [option]... [path]
--bell
ウィルスを検出したときに、ベルを鳴らす。 (GNU)
-h
ヘルプ情報を表示して、コマンドを終了する。 (POSIX)
--help
ヘルプ情報を表示して、コマンドを終了する。 (GNU)
-i
デフォルトの処理では、スキャン対象のファイルを全て表示する。このオプションを指定すると、感染したファイルのみ表示する。 (POSIX)
--infected
デフォルトの処理では、スキャン対象のファイルを全て表示する。このオプションを指定すると、感染したファイルのみ表示する。 (GNU)
--quiet
デフォルトの処理では、スキャン対象のファイルを全て表示する。このオプションを指定すると、エラーメッセージのみ表示する。 (GNU)
-r
デフォルトの処理では、引数に指定されたディレクトリ内のファイルをスキャンする。このオプションを指定すると、サブディレクトリまで再帰的にスキャンする。 (POSIX)

ホームディレクトリを再帰的にスキャンする例を次に示す。

$ clamscan -r /home/tsuka
--recursive
デフォルトの処理では、引数に指定されたディレクトリ内のファイルをスキャンする。このオプションを指定すると、サブディレクトリまで再帰的にスキャンする。 (GNU)
-V
バージョン番号を表示して、コマンドを終了する。 (POSIX)
--version
バージョン番号を表示して、コマンドを終了する。 (GNU)