Linuxのコマンドの一覧です(CentOSも含む) 確認環境:CentOS 8/7/6
操作のtips
操作 | コマンドと説明 |
---|---|
パスワード等の文字列の貼付け | alt + v |
サイズの大きいファイルをcat等で開いて止まらなくなった時 | ctrl + c。連打も可。サイズの大きいファイルは停止するまでに数十秒以上かかるときあり。 |
操作ログを残す場合で「いつどこで誰が」を記録しておく場合のコマンド | date・・・現在日時 hostname・・・ホスト名 whoami・・・現在のユーザ |
ディレクトリ関連(pwd,cd,mkdir,mv,rmdir,rm,cp)
操作 | コマンドと説明 |
---|---|
現ディレクトリを表示する(pwd) | pwd → /home/testでpwdと入力した場合 /home/testと表示される |
ディレクトリを移動する(cd) | (カレントディレクトリがhomeで、homeの配下にtest1ディレクトリがある場合) cd test1 →/homeから/home/test1に移動する cd .. →/home/test1から/homeに移動する |
ホームディレクトリに移動する(cd) | cd ~ →/etc/varから/home/test1に移動する(test1ユーザ時) |
ディレクトリを作成する(mkdir) | mkdir test → testというディレクトリを作成する |
階層のディレクトリを作成する(mkdir) | mkdir -p test1/test2 → home/testで上記コマンドを実行した場合 /home/test/test1/test2が作成される |
ディレクトリ名を変更する(mv) | mv /home/test1/ /home/test100/ →/home配下のディレクトリ名test1をtest100に変更する |
中が空のディレクトリを削除する(rmdir) | rmdir testdir →ディレクトリの中に何か入っている場合は削除できません |
中が空でない(ファイルあり)ディレクトリを削除する(rm) | rm -rf dir1 →dir1というディレクトリを削除する |
ディレクトリごとコピーする(cp) | cp -r dir1 dir2 → dir2が存在しない場合、dir1をdir2という名前でディレクトリごとコピーする dir2が存在する場合、dir2の中にdir1が作成される(dir2/dir1) |
ファイルの一覧を表示する(ls)
操作 | コマンドと説明 |
---|---|
ファイルやディレクトリを一覧で表示する | ls -l llも同じ表示になる llはls -lのエイリアス |
隠しファイルも表示する | ls -la |
更新日時の降順(新しい順)で表示する | ls -lt → tはtimeのt |
更新日時の昇順で表示する | ls -lrt → rはreverseのr |
ファイルサイズの大きい順(降順)に表示する | ls -lS →ファイルサイズの大きい順に表示される |
1ページで表示する (スクロールさせない) |
ls -l | more →ctrl + cで終了する。エンターで下に移動。 |
ディレクトリだけ表示 | ls -d */ →ディレクトリのみ表示される |
ソートせずに結果を表示する 高速に表示されます |
ls -U →ファイルが大量でlsが返ってこない時等に使用します |
ファイルの内容を表示する(cat,less,more,head,tail,grep,cut)
操作 | コマンドと説明 |
---|---|
ファイルの内容を表示する (cat) | cat test1.txt → test1.txtの内容を表示する |
catコマンドで行番号を表示する(cat) | cat -n test1.txt |
catコマンドでファイルの中身を写す(cat) | cat test1.txt >> test2.txt → test2.txtが存在する場合、test1.txtの内容がtest2.txtに追記される test2.txtが存在しない場合、test1.txtの内容でtest2.txtが作成される |
容量の大きいファイルの内容を表示する (less) | less test1.txt → 上下キーでスクロールしながらファイルを表示する 起動時にファイル全体を読み込みません スラッシュ(/)の後に検索文字列の入力で検索可能です 下方向に検索するときは n 、 上方向に検索するときは N を入力 末尾に移動するときはG、 先頭に移動するときはgを入力 終了する時は、コロン(:)とqを入力する※コロン(:)が表示されているときはコロンの入力は不要 |
lessコマンドで行番号を表示する(less) | less -N test1.txt 終了する時は、コロン(:)とqを入力する※コロン(:)が表示されているときはコロンの入力は不要 |
ファイルの内容を表示する (more) | more test1.txt → test1.txtの内容を表示する 行数が多いときはエンターキーを押すと上から下にスクロールする。1画面ずつ表示される。 |
ファイルの先頭から10(指定可)行表示する(head) | head test.txt → test.txtの先頭10行の内容を表示する head -3 test.txt → test.txtの先頭から3行の内容を表示する |
ファイルの末尾から10(指定可)行表示する(tail) | tail test.txt → test.txtの末尾から10行の内容を表示する tail -3 test.txt → test.txtの末尾から3行の内容を表示する |
ファイルの中の文字列を検索する(grep) | grep test2 test1.txt →test1.txtファイルの中にtest2という文字列を検索しtest2を含む行を表示する。検索した文字列が複数行にあった場合は複数行表示される。 |
ファイルから特定の文字を抜き出す(cut) | cut -b 2-4 test1.txt →test1.txtの2バイト目から4バイト目の文字を表示 |
ファイルを操作する(cp,rm,mv,touch,diff,find,file,ln,echo,wc,iconv)
操作 | コマンドと説明 |
---|---|
ファイルをコピーする(cp) | cp test1.txt test3.txt →test1.txtファイルをコピーしてtest3.txtを作成する |
ファイルを確認して削除する(rm) | rm -i test2.txt test2.txtを削除するか確認してから削除する 確認で削除する場合はy、削除しない場合はnを入力する |
ファイルを確認せず削除する(rm) | rm -rf test2.txt →確認なしで削除される |
ファイル名を変更する(mv) | mv test1.txt test100.txt →ファイル名test1.txtをtest100.txtに変更する |
ファイルを移動する(mv) | mv test1.txt test2.txt /home/test1/testdir/ →現ディレクトリにあるtest1.txtとtest2.txtをtestdirディレクトリに移動する mv /home/test1/testdir/* /home/test1/ →/home/test1/testdirにあるすべてのファイルを/home/test1に移動する |
ファイルを置き換える(mv) | mv -f test1.txt test2.txt →test1.txtの内容がtest2.txtに記述され、test2.txtの元の内容は削除される。 test1.txtは削除され、test2.txtのみ残る。 |
空のファイルを作成する(touch) | touch test.txt → test.txtというファイルが存在しない場合、test.txtという空のファイルを作成する |
ファイルのタイムスタンプを更新する(touch) | touch test.txt → test.txtというファイルが存在する場合、test.txtのタイムスタンプ※を現在の日時に変更する (※アクセス時刻と最終更新時刻) |
ファイルの差分を確認する(diff) | diff test1.txt test2.txt → test1.txtとtest2.txtの差分を表示する 1行のみ差分がある場合、test1.txtの1行とtest2.txtの1行が表示される |
指定のディレクトリ配下のファイルとディレクトリを検索する(find) | find /home -name "test" ※ダブルコーテーションは無くても可 → testというファイルまたはディレクトリをhome配下を再帰的に検索し存在した場合パスを表示する アスタリスクの使用も可能です。 -name "test*" → testで始まるものを検索する |
現ディレクトリ配下のファイルとディレクトリを検索する(find) | find . -name "test" ※ダブルコーテーションは無くても可 → testというファイルまたはディレクトリを現ディレクトリ配下を再帰的に検索し存在した場合パスを表示する アスタリスクの使用も可能です。 -name "test*" → testで始まるものを検索する |
ファイルの種類を表示する/文字コードを確認する(file) | file test1.txt →test1.txt: UTF-8 Unicode text等表示される sjisはNon-ISO extended-ASCII textで表示される |
シンボリックリンクを作成する(ln) | ln -s test1.txt dummy1.dat → test1.txtに対してdummy1.datというシンボリックリンクを作成する Linux シンボリックリンクとは (処理の切替) |
環境変数の文字コードを表示する(echo) | echo $LANG →en_US.UTF-8等が表示される |
ファイルの文字数を表示する(wc) | wc test1.txt →6 12 60 test1.txt等が表示される。数値は前から改行数、単語の数、文字数を表す wcはword countの略 |
ファイルの行数を表示する(wc -l) | cat test1.txt | wc -l とcatとパイプを使うと行数のみが表示される lはlineの略 |
ファイルの文字コードを変換する(iconv) | iconv -c -f utf8 -t sjis test1.txt →文字コードのUTF-8をsjisに変換して表示 iconv -c -f utf8 -t sjis test1.txt > test2.txt →文字コードのUTF-8をsjisに変換してtest2.txtに保存 |
ディスクの使用量関連(df,du,lsblk)
操作 | コマンドと説明 |
---|---|
パーティションごとのディスクの使用容量を表示する(df) | df -h dfはdisk freeの意味。100MB等見やすく表示される |
パーティションごとのディスクの使用容量を表示する(df) | df dfのみの場合、1000000等のバイト数で表示される |
指定ディレクトリ配下の ディレクトリごとの ディスク使用容量を表示する(du) |
du -h /home --max-depth 1 → /home配下のディスク使用量を表示する duはdisk usedの意味 |
ディスク使用容量とファイルの容量を表示する(du) | du -a /home → /home配下のディスク使用量とファイルの容量も表示する |
ディスクのファイルシステムを確認する(df) | df -T →xfsやext4と表示される |
物理ディスクの一覧、サイズ、パーティションを表示(lsblk) | lsblk →以下のように表示される NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 10G 0 disk |- xvda1 202:1 0 10G 0 part / |
OS関連のコマンド
操作 | コマンドと説明 |
---|---|
OSのバージョンを確認する(cat) | cat /etc/redhat-release →CentOS release 6.8 (Final)等が表示される |
OSのバージョンを確認する(cat) | cat /etc/system-release →CentOS Linux release 7.9.2009 (Core)等が表示される |
OSのバージョンを確認する(cat) | cat /etc/os-release |
CPU情報を表示する(cat) | cat /proc/cpuinfo |
メモリ情報を表示する(cat) | cat /proc/meminfo |
パスを表示する(echo) | echo $PATH →/usr/local/bin:/usr/bin:/usr/local/sbin等表示される コロン(:)で区切り |
コマンドの実行時間を計測する(time) | time cp test1.txt test3.txt →以下のように表示されます。realがかかった時間です。 real 0m0.003s user 0m0.000s sys 0m0.001s |
システムの稼働時間を表示する(uptime) | uptime →サーバーがいつ再起動したか確認できる |
OSのリリース番号を表示する(uname) | uname -r →2.6.32-642.el6.x86_64 等表示される |
カーネルのコンパイル日時を表示する(uname) | uname -v →#1 SMP Tue May 10 17:27:01 UTC 2016 等表示される(2016/5/10にコンパイルされた) |
OSの名称を表示する(uname) | uname -s →Linux 等表示される |
プロセッサのタイプを表示する(uname) | uname -p →x86_64 等表示される |
システム情報を表示する(uname) | uname -a →Linux centos-test 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 等表示される |
SELinuxの現在の状態を確認 (getenforce) |
getenforce enforcing・・・SELinuxは有効 permissive・・・アクセス制限は行わない。警告あり disabled・・・SELinuxは無効 |
SELinuxを一時的に無効にする (setenforce) |
setenforce 0 →設定がPermissiveになる |
SELinuxを有効にする (setenforce) |
setenforce 1 →設定がEnforcingになる |
プロセス関連のコマンド
操作 | コマンドと説明 |
---|---|
プロセスの状況を表示する(top) | top →Ctrl + c で終了する |
実行中のプロセスを表示する(ps) | ps aux プロセスを絞る場合はパイプとgrepを追加する ps aux | grep httpd aは全てのプロセスを表示 uはプロセスのユーザ情報を表示 xは全てのプロセスを表示(端末なしも含む) |
実行中のプロセスを表示する(ps) 親子関係を表示 |
ps -ef プロセスを絞る場合はパイプとgrepを追加する ps aux | grep httpd -eは全てのプロセスを表示 fはプロセスの親子関係を表示 |
プロセスを終了する(kill) | kill プロセスID または kill -15 プロセスID または kill -TERM プロセスID SIGTERM=15=終了を意味します。コマンドでは数値またはSIGは省略します。 |
プロセスを強制終了する(kill) | kill -9 プロセスID → 指定したプロセスIDを強制終了する CentOS7:systemctl kill -s 9 ユニット名 →systemctl kill -s 9 httpd.service SIGKILL=9=強制終了を意味します。コマンドでは数値またはSIGは省略します。 |
処理を一時停止する(sleep) | sleep 10 →10秒間処理が停止します。 |
処理をバックグラウンドで実行する(&) | sleep 10 & →&をいれるとバックグラウンドで処理を実行します。 |
日時関連のコマンド
操作 | コマンドと説明 |
---|---|
現在日時を表示する(date) | date Sat Apr 20 22:24:58 JST 2019 等表示される |
現在日を表示する(date) (YYYYMMDDを指定) |
date +"%Y%m%d" 20190420 等表示される |
現在時を表示する(date) (hh:mm:ssを指定) |
date "+%T" 00:08:07 等表示される |
現在日時を表示する(date) (yyyy/MM/dd HH:mm:ssを指定) |
date +"%Y/%m/%d %H:%M:%S" 2019/04/20 22:25:15 等表示される |
日時を変更する(date) | date --set "2021/07/22 14:49:00" 2021/07/22 14:49:00 に変更される |
iso-8601形式で表示(date) | date --iso-8601=seconds →秒まで表示 2023-01-21T07:04:38-0800 date --iso-8601=minutes →分まで表示 2023-01-21T07:05-0800 |
10分前の日時を表示(date) | date --date '10min ago' 2023年 1月 21日 土曜日 06:57:21 PST |
当月のカレンダーを表示する(cal) | cal |
ネットワーク関連のコマンド
操作 | コマンドと説明 |
---|---|
IPアドレスを表示する | CentOS6:ifconfig →inet addr:192.168.64.130等が表示される 注:CentOS7では標準でインストールされていません。非推奨です。 |
CentOS7:ip a (または ip addr) →ens33等がある行にinet 192.168.64.128/24等が表示される 192.68.64.128で接続する enは、ethernet(イーサネット)を指す sは、スロット番号を指す |
|
ホスト名を表示する | hostname →localhost.localdomain等が表示される |
ネットワークが繋がっているか確認する(ping) | ping IPアドレス →ping 192.168.1.1等で疎通確認する |
DNSに問い合わせる(dig) | ドメイン名からIPアドレス、またはIPアドレスからドメイン名を取得できます。 dig ドメイン名 |
使用中のポートを表示する | CentOS6:netstat -an | grep tcp 注:CentOS7では標準でインストールされていません。非推奨です。 |
CentOS7:ss -an | grep tcp | |
使用中のポートのPID/プロセス名を表示する | CentOS6:netstat -ap | grep tcp 注:CentOS7では標準でインストールされていません。非推奨です。 |
CentOS7:ss -ap | grep tcp | |
ネットワークの経路を表示する(traceroute) | traceroute ドメイン名 |
IPルーティングテーブルを表示する | CentOS6:route 注:CentOS7では標準でインストールされていません。非推奨です。 |
CentOS7:ip r (または ip route) | |
ARPテーブルを表示する ARPプロトコル(MACアドレスを取得する) |
CentOS6:arp 注:CentOS7では標準でインストールされていません。非推奨です。 |
CentOS7:ip n (または ip neighbor) | |
ネットワークのプロトコルでデータを送信/取得する(curl) | curlの公式ページのマニュアルです。 https://curl.haxx.se/docs/manual.html |
パケットをキャプチャする(tcpdump) | tcpdumpの公式ページのマニュアルです。 https://www.tcpdump.org/manpages/tcpdump.1.html |
ユーザー関連のコマンド
操作 | コマンドと説明 |
---|---|
ユーザをリストで表示する(cat) | cat /etc/passwd |
グループとユーザをリストで表示する(cat) | cat /etc/group |
ユーザを作成する(useradd) | useradd testuser → testuserというユーザを作成する |
パスワードを設定する(passwd) | passwd testuser → testuserのパスワードを設定する |
パスワードの有効期限を表示する(chage) | chage -l testuser → testuserのパスワード有効期限「Last password change:Jul 15,2022」等表示される |
ユーザのIDを表示する(id) | id testuser → testuserのIDを表示する uid=500(test) gid=500(test) groups=500(test)等表示される |
ユーザの変更を行う(su) | su testuser → testuserに変更されます ※変更したユーザーを終了する時はexitを入力する |
rootユーザに変更する(su) | su →rootユーザに変更されます ※変更したユーザーを終了する時はexitを入力する suとsu -の違い suは、現ユーザの環境変数でrootになります su -は、rootユーザの環境変数でrootになります |
現在のユーザの確認を行う(whoami) | whoami →root等表示される |
ユーザを削除する(userdel) | userdel testuser → testuserを削除する |
指定したユーザーでコマンドを実行する(sudo) | sudo コマンド名 →指定したユーザーでコマンドを実行する 実行するコマンドはsyslogに記録されます。 デフォルトはroot /etc/sudoersファイルにユーザーとコマンドを設定する必要があります。→visudoコマンドで設定します。 |
rootユーザに変更する(sudo) | sudo su - rootユーザになりrootユーザのホームディレクトリに移動する |
ログインユーザの履歴を表示する(last) | last |
ログインユーザの情報を表示する(who) | who |
ログインユーザの情報を表示する(w) | w |
サービス関連のコマンド
操作 | コマンドと説明 |
---|---|
IPルーティングテーブルを表示する | CentOS6:chkconfig --list Linux サービスの自動起動とランレベル(chkconfig) |
CentOS7:systemctl list-unit-files | |
指定したサービスの自動起動の設定を表示する | CentOS6:chkconfig --list サービス名 → chkconfig --list httpd |
CentOS7:systemctl is-enabled ユニット名 → systemctl is-enabled httpd.service |
|
サービスの自動起動の設定を切り替える | CentOS6:chkconfig --level レベル サービス (on/off/reset) → chkconfig --level 35 httpd off (httpdサービスはレベル3と5で自動起動しない) |
サービスの自動起動の設定を追加する(有効化する) | CentOS6:chkconfig --add サービス名 → chkconfig --add httpd |
CentOS7:systemctl enable ユニット名 → systemctl enable httpd.service |
|
サービスの自動起動の設定を削除する(無効化する) | CentOS6:chkconfig --del サービス名 → chkconfig --del httpd |
CentOS7:systemctl disable ユニット名 → systemctl disable httpd.service |
|
apacheのバージョンを表示する | httpd -v → Server version: Apache/2.2.15 (Unix) |
パッケージ関連のコマンド(yum等)
操作 | コマンドと説明 |
---|---|
パッケージがインストールされているか確認する(rpm) | rpm -qa | grep httpd → httpdがインストールされているかを確認する インストールされていればパッケージ名が表示される |
パッケージがインストールされているか確認する(yum) | yum list installed | grep httpd → httpdがインストールされているかを確認する インストールされていればパッケージ名が表示される |
yumでインストールした履歴の一覧を確認(yum) | yum history →以下のように履歴が表示される 2 | -y install mysql | 2022-07-10 04:02 | Install | 1 1 | -y install httpd | 2022-07-08 01:47 | Install | 9 |
yumでインストールした個別のパッケージの履歴の一覧を確認(yum) | yum history package-list mariadb →以下のように表示される。IDがわかる。 ID|Action(s) | Package ---------------------------------------------- 2 |Install | mariadb-1:5.5.68-1.amzn2.x86_64 |
yumでインストール時の詳細を確認 | yum history info 2 →以下のように表示される。IDを指定する。 Transaction ID : 2 Begin time : Sun Jul 10 04:02:35 2022 以下略 |
Javaのバージョンを確認する | java -version →openjdk version "1.8.0_282" |
Javaの切り替えを行う | alternatives --config java →数値を入力してJavaのバージョンを選択する。 |
Pythonのバージョンを確認する | python --version →Python 2.7.5 |
AWS CLIのバージョンを確認 | aws --version aws-cli/1.18.147 Python/2.7.18 Linux/5.10.118-111.515.amzn2.x86_64 botocore/1.18.6等表示される |
圧縮/展開
操作 | コマンドと説明 |
---|---|
tarを作成する(tar) | tar cvf test.tar dir1 → dir1ディレクトリ配下をtest.tarにする |
tarを展開する(tar) | tar xvf test.tar → test.tarを展開する |
ファイルを拡張子gzの圧縮を行う | gzip test1.txt →test1.txt.gzが作成される |
拡張子gzのファイルを展開する (元のファイルが展開される) |
gzip -d test1.txt.gz →test1.txt.gzは削除され、test1.txtになる |
拡張子gzのファイルを展開する (元のファイルは残したまま) |
gzip -dc test1.txt.gz > aaa.txt →test1.txt.gzはそのままで、aaa.txtが生成される |
gzipで圧縮したtarを作成する(tar) | tar zcvf test.tar dir1 → dir1ディレクトリ配下をgzipで圧縮したtest.tarにする 展開はtarを展開するときと同じでいける |
権限
操作 | コマンドと説明 |
---|---|
アクセス権限を変更する(chmod) | chmod 600 test.txt → test.txtのアクセス権限を600に変更する |
実行権限を付与する(chmod) | chmod +x test.sh → test.shに実行権限を付与する test.shのあるディレクトリにいる場合、./test.shという入力で実行できる |
ファイル/ディレクトリの所有者を変更する(chown) | chown testuser test.txt →test.txtの所有者をtestuserに変更する ※変更を行えるのは、そのファイルの所有者または管理者のみ |
ファイル/ディレクトリの所属グループを変更する(chown) | chown testgrp test.txt →test.txtの所属グループをtestgrpに変更する ※変更を行えるのは、そのファイルの所有者または管理者のみ |
ファイル/ディレクトリの所有者と所属グループを変更する(chown) | chown testuser:testgrp test.txt → test.txtの所有者をtestuserにし,所属グループをtestgrpに変更する ※変更を行えるのは、そのファイルの所有者または管理者のみ |
bashのコマンド
操作 | コマンドと説明 |
---|---|
コマンドの構文を確認する(help) | help コマンド名 または コマンド名 --help |
エイリアスの一覧を表示する(alias) | alias |
エイリアスを設定する(alias) | alias ls='ls --color=auto' → lsと入力するとls --color=autoが実行される |
環境変数の一覧を表示する(env) | env |
個別の環境変数の値を表示する(echo) | echoコマンドと$を前につけた環境変数を入力する →echo $HOME |
シェル変数の一覧を表示する(set) | set |
個別のシェル変数の値を表示する(echo) | echoコマンドと$を前につけたシェル変数を入力する → echo $SHELL |
リダイレクト(>) | echo 'test1' > test1.txt → ファイルに書き込む echo 'test1' >> test1.txt → ファイルに追記で書き込む |
パイプ処理を行う | rpm -qa | grep vsftpd → 記号の( | )を使用して、コマンドをつなげる |
bashのバージョンを表示する | bash -version |
サーバー関連のコマンド
操作 | コマンドと説明 |
---|---|
サーバを再起動する | reboot |
サーバをシャットダウンする | shutdown -h now |
関連の記事
Linux bashでログイン時に読み込まれるファイル
Linux rcスクリプトとランレベル毎のシンボリックリンク
Linux bashの主な機能
Linux OpenSSHサーバの設定ファイル(sshd_config)
Linux viのコマンド一覧