Linuxのコマンド

`個人用のリマインダなので注意`

# Linux基本コマンド

**詳細なコマンドの使い方や仕様、オプションなどについては各コマンド用のファイルにまとめる**

| コマンド | 概要 | **Sample Code** |
|---|---|---|
| cd | `change directory` <br> ディレクトリ移動 | `cd /var/log` |
| ls | `list` <br> ディレクトリ内のファイル/フォルダをリスト形式で表示 <br> `-h`で人が読みやすい形式に整形 | `ls /bin/` |
| mv | `move` <br> ファイル/フォルダ移動 | `mv /tmp/sample.txt /usr/local/` |
| cp | `copy` <br> ファイル/フォルダコピー | `cp /tmp/sample.txt /usr/local/` |
| clear | コンソールをまっさらにする <br> ログとかで見辛くなった時に使う | `clear` |
| mkdir | `make directory` <br> ディレクトリ作成 | `mkdir folder1` |
| touch | ファイル作成 | `touch README.md` |
| rmdir | `remove directory` <br> 空のフォルダを削除する | `rmdir /usr/local/temporary` |
| rm | `remove` <br> ファイル/フォルダ削除 | `rm /var/log/sample.log` |
| pwd | `print working directory` <br> 現在のディレクトリの絶対パスを表示 | `pwd` |
| find | ファイル検索 | `find sample.txt` |
| cat | `concatnate` <br> ファイル内容をコンソール出力 <br> ファイル名連結で同時に出力可能 | `cat sample1.txt sample2.txt`  |
| diff | `difference` <br> 2ファイルの内容の差分表示 | `diff db.conf BackUp/20181020_db.conf` |
| grep | `global regular expression print` <br> ファイル全体から正規表現に一致する行を表示 | `grep *ERROR* /var/log/*` <br> "ERROR"を含む行を"/var/log/内のファイルから検索 |
| chmod | `change mode` <br> ファイル/フォルダのアクセス権限(パーミッション)を変更 | `chmod 777 work/sample.sh` <br> 権限の詳細についてはLinuxパーミッションなどで検索して調べる |
| chown | `change owner` <br> ファイル/フォルダのオーナーやグループの変更 | `chown smikun work/sample.txt` |
| history | コマンド履歴の表示 | `history` |
| ln | `link` <br> ファイル/フォルダにリンクを設定 | `ln test/DBLN001.sh DB001` <br> DBLN001.shのリンクファイル"DB001"を作成 |
| man | `manual` <br> コマンドのマニュアルを表示 | `man cat` <br> catコマンドのマニュアルを表示 |
| apropos | manページの内容を検索する | `apropos [キーワード]` |
| less | テキストファイルの閲覧 | `less sample.txt` |
| more | ファイルをページ単位で閲覧 | `more sample.txt` |
| top | システム全体の情報 <br> プロセス、CPU、メモリ、スワップなど | `top` |
| lsof | `list open files` <br> ポートやプロセスID/プロセス名などを元にポートが何のプロセスに利用されているかなどを確認する | `lsof -i:[ポート番号]` |
| ss | 接続待ちのポート番号を調べる <br> `-t` : TCPポートを調べる <br> `-u` : UDPポートを調べる | `ss -antu` |
| ps | 動作中のプロセスを表示する <br> grepと組み合わせて任意の単語を含むプロセス名のみ絞り込むことも可能 | `ps -aux` |
| pstree | プロセスの親子関係をツリー表示する | `pstree -p [親プロセスのID]` |
| which | 実行コマンドのフルパスを表示 | `which mackerel-agent` <br> ⇒ `/usr/local/bin/mackerel-agent` |
| yum | パッケージの統合管理システム | `yum install [パッケージ名]` とか <br> `yum update [パッケージ名]` とか |
| scp | scp通信でファイル転送 <br> ディレクトリのコピーの場合`-r`オプション | `scp [接続先:コピー元] [コピー先]` <br> ※接続先に鍵認証が必要な場合は `-i [公開鍵のパス]` をつける |
| uptime | Load Average(システムの負荷情報)を表示 <br> 左から**直近1分, 5分, 15分間**の計測結果 | `uptime` |
| w | 現在誰がシステムにログインしているかを表示 | `w` |
| tail | 指定したファイルの末尾指定行を表示 | `tail -n 20 [ファイル名]` <br> 末尾20行表示 |
| tailf | 指定したファイルの末尾10行を**リアルタイム**で表示 <br> ※行数指定ができない | `tailf [ファイル名]` |
| df | ディスク使用量を確認する <br> `-h`オプションで人が読みやすい形に整形 | `df [オプション] [ファイル]` |
| du | ディレクトリ/ファイルを指定してディスク使用量を確認する <br> `-h`オプションで人が読みやすい形に整形 | `du [オプション] [ファイルまたはディレクトリ]` |
| free | 物理メモリ/スワップメモリの使用量、空き容量の確認 <br> `-m`オプションでメガバイト単位に整形(`-k`,`-g`なら当然...) | `free ` |
| tcpdump | ネットワーク通信の生のデータを取得 | `tcpdump -i [インタフェース名]` |
|  |  |  |
|  |  |  |

# RedHat系

| コマンド | 概要 | **Sample Code** |
|---|---|---|
| service | サービス(デーモン)のステータスを確認する | オプションと併用して使用 |
|  |  |  |
|  |  |  |
|  |  |  |

# 小技

コマンドのオプションなどを使って出来る便利な機能

| 技名 | コマンド |
|---|---|
| ファイル/フォルダの詳細情報を表示 <br> 作成日時やパーミッションなど | `ls -l [フォルダ名]` |
| メモリ使用率の多い順のプロセス一覧 | `top -a` |
| すべてのサービス(停止中も含め)を確認 | `service --status-all` |
| カーネルのバージョン確認 | `cat /proc/version` |
| AmazonLinux バージョン確認 | `cat /etc/system-release` |
| yumのパッケージ管理履歴を見る | `sudo yum history` <br> 全履歴 : `yum history list all` |
| yumの設定済みリポジトリ一覧を表示 | `yum repolist all` <br> ※`/etc/yum.conf`に色々設定がある |
| yum historyの指定した履歴の詳細を表示 | `yum history info [ID]` |
| プロセスの起動時刻を調べる | `ps -eo lstart,pid,args` <br> `grep [プロセス名]` <br> パイプで連結する。 |
| scp通信が出来る端末か確認 <br> ※scpのデーモン稼動確認 | `ps aux`  `grep [s]shd` |
| grep時に対象行の前後の行も見たい | `grep -[行数] [検索キーワード]` |
| ディスク容量調査時に調べるディレクトリの深さ指定 | `du --max-depth=1 -h [調査元のディレクトリパス]` |
| 結果の頭n行のみ表示 | `head -n [行数]` |