Linuxコマンド　まとめ

## 目次  
～基本コマンド～  
    - [**ls コマンド**　　 ディレクトリの中身を確認したい！](#ls-コマンド)  
    - [**pwd コマンド**　　パスを確認したい！](#pwd-コマンド)  
    - [**cd コマンド**　　移動したい！](#cd-コマンド)  
    - [**mkdirコマンド**　　ディレクトリ作りたい！](#mkdirコマンド)  
    - [**cp コマンド**　　コピーしたい！](#cp-コマンド)  
    - [**mv コマンド**　　移動させたい！](#mv-コマンド)  
    - [**rm コマンド**　　削除したい！](#rm-コマンド)  
    - [**cat コマンド**　　ファイルの中身を確認したい！](#cat-コマンド)  
    - [**vi コマンド**　　viエディタ使いたい！](#vi-コマンド)  

～実践的コマンド～  
    - [**diff コマンド**　　差分を確認したい！](#diff-コマンド)  
    - [**grep コマンド**　　ファイルの中身のキーワードでファイルを見つけたい！](#grep-コマンド)  
    - [**pgrep コマンド**　　プロセスIDを見つけたい！](#pgrep-コマンド)  
    - [**find コマンド**　　ディレクトリ・ファイルを見つけたい！](#find-コマンド)  
    - [**locate コマンド**　　ディレクトリ・ファイルを見つけたい！](#locate-コマンド)  
    - [**touch コマンド**　　タイムスタンプ編集したい！](#touch-コマンド)  
    - [**shutdown コマンド**　　システムの終了・再起動をしたい！](#shutdown-コマンド)  
    - [**kill killall コマンド**　　実行中プロセスを停止させたい！](#kill-killall-コマンド)  
    - [**history コマンド**　　コマンドの履歴確認したい！](#history-コマンド)  
    - [**ifconfig コマンド**　　ネットワーク確認したい！](#ifconfig-コマンド)  
    - [**ping コマンド**　　ネットワーク経路を確認したい！](#ping-コマンド)  
    - [**netstat コマンド**　　TCP/IPの状態を確認したい！](#netstat-コマンド)  
    - [**curl コマンド**　　ファイルを転送したい！](#curl-コマンド)  
    - [**more コマンド**　　ファイルの内容を見やすく表示したい！](#more-コマンド)  
    - [**tail コマンド**　　ファイルの中身の最後を確認したい！](#tail-コマンド)  
    - [**head コマンド**　　ファイルの中身の最初を確認したい！](#head-コマンド)  
    - [**ps コマンド**　　実行中プロセスを確認したい！](#ps-コマンド)  
    - [**jobs bg fg コマンド**　　実行中ジョブを操作したい！](#job-bg-fg-コマンド)  
    - [**virsh コマンド**　　仮想マシンを管理したい！](#virsh-コマンド)   
    - [**systemctl**　　systemdのサービスを管理したい！](#systemctl-コマンド)  
    - [**参考サイト**　　他のコマンドを探したい！](#参考サイト)  


## ls コマンド
ファイルやディレクトリの情報を確認するコマンド。

### <主な使い方>  

* **ls** :カレントディレクトリ（現在作業中のディレクトリ）の中身を確認できる。
* **ls \[ファイル名orディレクトリ名]** :\[ファイル名orディレクトリ名]の中身を確認できる。  
　　　　　　　　　　　　　　　　例）　ls ./dir1/sample.txt　※「./」はカレントディレクトリ
* **ls -l** :カレントディレクトリの中身を詳細に確認できる。

### ＜書式＞
    ls [オプション] [ファイル名orディレクトリ名]  

### ＜主なオプション＞
| オプション | 説明 |
|:-------------:|:--------------------------|
|-a|ファイルの先頭にピリオドがついたファイルも含めてすべて中身を表示指せる。<br>※先頭にピリオドがついたファイル＝普段簡単には編集されたくない設定ファイル等のこと。|
|-d|ディレクトリの中身ではなく、ディレクトリ自身の情報を表示する。|
|-l|ファイルの詳細（アクセス権や作成日等）も表示する。「-a」オプションと組み合わせて「-la」のように使用することも多い。|
|-1|縦に並べて表示できる。|
|-r|逆順に表示できる。|
|-t|更新時間順に並べて表示できる。|
|-S|ファイルサイズが大きい順に並べて表示できる。「-lS」のように使うとわかりやすい。軽い順だと「-lSr」となる。|
|-X|拡張子ごとに表示できる。「-l」と使うときは「-Xl」。|
|-R|サブディレクトリの中身も同時に並べて表示できる。|
|-m|ファイル名をカンマで区切って表示できる。|  


### ＜リンク＞
[lsコマンドの使い方と覚えたい15のオプション【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux_command_ls#-a)  

***  


## pwd コマンド
カレントディレクトリのパス（絶対パス）を確認するコマンド。  

***  


## cd コマンド
指定したディレクトリに移動するコマンド。  

### ＜書式＞  
    cd [ディレクトリのパス（絶対パスor相対パス）]

### ＜パスで使用する表現＞
* ~ (チルダ)：ホームディレクトリを意味する。　例）~/dir1
* .　：カレントディレクトリを意味する。　例）./dir2
* ..　：親ディレクトリを意味する。　例）../dir3  

***  


## mkdirコマンド
空のディレクトリを作成するコマンド。  

### ＜書式＞
    mkdir　[オプション]　ディレクトリ名

### ＜主なオプション＞
| オプション | 説明  |
| :-----: | --- |
| \-p   |親ディレクトリも同時に作成できる。　例）mkdir -p dir1/dir2/dir3     |  

***  


## cp コマンド
ファイルやディレクトリをコピーするコマンド。  

### ＜書式＞
    cp [オプション] [コピー元（コピーする対象）] [コピー先]

例）cp　(カレントディレクトリにある)sample.txt　./dir1  

**※ディレクトリをコピーする時は、「-r」「-R」がいる！！！**  

### ＜主なオプション＞
| オプション    | 説明                                           |
| :------: | -------------------------------------------- |
| \-p      | コピー元ファイルの属性（所有者、アクセス権、タイムスタンプ等）を保持したままコピーする。 |
| \-r, \-R | ディレクトリをコピーする。                                |  

### ＜ワイルドカード＞
あいまいな文字列やファイルの場合、ワイルドカードの使用が可能。

| ワイルドカード | 意味                   |
| :-------: | -------------------- |
| *       | 任意の文字列（0文字以上）        |
| ?       | 任意の1文字               |
| []      | []に含まれている文字の中のどれか1文字 |
| [!]     | []に含まれてない1文字         |
| ~       | ユーザーのホームディレクトリの絶対パス                     |  

使用例：[「UNIXのワイルドカード」](http://www.edu.tuis.ac.jp/~mackin/java/2008/linux/wildcard.html)  

***  


## mv コマンド
ファイルやディレクトリを移動させるコマンド。
ファイル名の変更にも用いられる。  

### ＜書式＞
    mv　[オプション]　移動元（移動させるファイル）　移動先

### ＜使用例＞
* mv ./sample.txt ./dir3　→sample.txtをdir3に移動
* mv ./sample1.txt sample3.txt　→sample.txtの名前をsample3.txtに変更  

### ＜主なオプション＞
| オプション | 説明  |
| :-----: | --- |
| \-f   | 移動先に同名のファイルがあれば上書きする    |  

***  


## rm コマンド
ファイルやディレクトリを削除するコマンド。  

### ＜書式＞
    rm　[オプション]　ファイル名

### ＜主なオプション＞
| オプション   | 説明              |
| :-------: | --------------- |
| \-f     | ユーザーへの確認なしに削除する |
| \-r、\-R | サブディレクトリも含め、ディレクトリ全体を削除する                |  

※ファイルもディレクトリもまとめて消したいとき・・・　「　rm　-r　*　」  

***  


## cat コマンド
ファイルの内容を表示するコマンド。  

### ＜書式＞
    cat　[オプション]　ファイル名

### ＜主なオプション＞
| オプション | 説明                 |
| :-----: | ------------------ |
| \-n   | 内容に行番号を付ける         |
| \-b   | 空白は飛ばして行番号を付ける     |
| \-s   | 連続した空白行を1行の空白にまとめる |  

### ＜リンク＞
[【Linuxコマンド集】３分でわかるcatコマンドの使い方｜エンジニアの入口](https://eng-entrance.com/linux_command_cat#cat-3)  

***  


## vi コマンド
viエディタでファイルを編集するコマンド。  

### ＜使用例＞
* vi 既存のファイル名　→既存のファイルを編集する
* vi 存在しないファイル名　→指定した名前の新規ファイルを作成し編集する  

***  


## diff コマンド
ファイルの内容を比較して、差異を表示するコマンド。  

### ＜書式＞
    diff　ファイル名　ファイル名

### ＜主なオプション＞
| オプション | 説明                                                    |
| :-----: | ----------------------------------------------------- |
| \-s   | ファイルが異なるかのみチェックする                                     |
| \-q   | ファイルが異なるかのみチェックし、同一の場合は結果を出力しない                       |
| \-c   | 結果を※コンテキスト形式で表示する                                      |
| \-C   | 結果をコンテキスト形式で表示する＋表示する行数を指定できる<br>例）diff -C 行数　ファイル名　ファイル名 |
| \-u   | 結果を※ユニファイド形式で表示する                                      |
| \-y   | 比較した結果を横並びで表示する                                       |
| \-r   | ディレクトリ同士で比較する                                         |  

※コンテキスト形式・・・1つ目のファイルと2つ目のファイルを分けて表示する  
※ユニファイド形式・・・1つ目のファイルと2つ目のファイルを一緒に（1行ごと交互に）表示する  

### ＜リンク＞
[【diff】コマンド（基本編）―テキストファイルの差分を出力する](https://www.atmarkit.co.jp/ait/articles/1704/13/news021.html)  
[ファイルの差分を見る！diffコマンドの詳細とまとめ【Linuxコマンド集】｜エンジニアの入口](https://www.atmarkit.co.jp/ait/articles/1704/13/news021.html)  

***  


## grep コマンド
文字列で検索したファイルの内容を表示するコマンド  

### ＜書式＞
    grep　[オプション]　文字列　ファイル名

### ＜使用例＞
grep　[オプションなし]　TEST　/etc/hosts　→hostsというファイルの中で「TEST」を含む行を表示する  

### ＜主なオプション＞
| オプション | 説明                      |
| :-----: | ----------------------- |
| \-c   | マッチした行数を表示する            |
| \-i   | 大文字小文字を区別しない            |
| \-n   | マッチした文字列の行番号を表示する       |
| \-v   | マッチしない行を表示する            |
| \-r   | ディレクトリ内も検索対象とする<br>　例）grep -r a work/*→workディレクトリの下層ディレクトリ内のすべてのファイルの中から「a」を検索する         |
| \-L   | 検索した結果、該当しなかったファイルを表示する |  

### ＜リンク＞
[grepコマンドの詳細をまとめました【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux-command-grep#-r)  

***  


## pgrep コマンド  
実行中プロセスの中から、プロセス名やユーザー名を基に特定ののプロセスIDを探すコマンド。  
※[psコマンド](#ps-コマンド)でもPID及びプロセス名の検索は可能。  

### ＜書式＞  
    pgrep　[オプション]　検索パターン（オプションによる・正規表現もあり）  

### ＜主なオプション＞  
| オプション | 説明                                                    |
| :-----: | ----------------------------------------------------- |
| なし    | 検索パターンに「プロセス名」を置き、プロセス名から検索する                         |
| \-u   | 検索パターンに「ユーザー名」と「プロセス名」を置き、ユーザー名から検索する                 |
| \-t   | 検索パターンに「端末名」と「プロセス名（「".*"」ですべてのプログラムの意味）」を置き、端末から検索する |
| \-l   | 同時にプロセス名も表示させる                                        |
| \-a   | 同時にコマンドラインも表示させる                                      |  
※ユーザー名や端末名が複数ある場合は「,」で区切る  

### ＜リンク＞  
[【pgrep】コマンド―プロセス名や属性からプロセスＩＤを探す｜@IT](https://www.atmarkit.co.jp/ait/articles/1707/28/news010.html)  
 
***  



## find コマンド  
ファイルやディレクトリを検索するコマンド。  
検索するファイルがない場合はエラーとなる。  

### ＜主なオプション＞  
| オプション         | 説明                                       |
| :-------------: | ---------------------------------------- |
| \-name        | ワイルドカードを使用して、ファイルやディレクトリ名の一部のみ指定した検索ができる<br>例）find　検索先　-name　ファイル名（¥＋ワイルドカード使用可） |
| \-atime       | 任意の日数にアクセスされたファイルやディレクトリを検索する<br>例）find　検索先　-atime　日数<br>※今日が0、昨日が1、n日以内は-n            |
| \-mtime       | 任意の日数に更新されたファイルやディレクトリを検索する             |
| \-empty       | ファイル容量が0のファイルやディレクトリを対象とし検索する<br>例）find　検索先　-empty            |
| \-size        | ファイルの容量を指定し検索する<br>例）find　検索先　-size　ファイル容量（6byte以下なら、-6cと記述する）                          |
| \-type f or d | 「f」なら、ファイルのみを対象として、「d」ならディレクトリを対象として検索する<br>例）find　ファイル名（もしくはディレクトリ名）　-type　f（もしくはd） |
| \-perm        | パーミッションで検索する<br>例）find　検索先　-perm　-対象者＝アクセス権（もしくは、664等）                             |
| \-and         | 複数の条件を使って、すべての条件に当てはまるファイルやディレクトリを検索する<br>例）find　検索先　条件１（-name ¥*2¥*）　-and　条件２（-perm 664）   |
| \-or          | 複数の条件を使って、いずれかの条件に当てはまるファイルやディレクトリを検索する  |
| \-not         | 条件に当てはまらないファイルやディレクトリを検索する<br>例）find　検索先　-not　条件               |  

### ＜リンク＞  
[ファイルなどを検索する！findコマンドの詳細まとめ【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux-command-find#find-5)  

***  


## locate コマンド  
ファイルやディレクトリを高速検索するコマンド。  
※locateコマンドはデータベースの中から検索するため高速。  
※findコマンドと違い、ユーザーや容量での検索はできない。（名前のみ）  

### ＜書式＞  
    find　キーワード（.csvとか）
※直前に作成したファイルを検索する場合、updatedbコマンド実行  
※ファイルのデータベースは、システム起動時等定期的に自動で更新される  

### ＜主なオプション＞  
| オプション | 説明               |
| :-----: | ---------------- |
| \-c   | 検索された数を表示する      |
| \-i   | 大文字小文字を区別しない     |
| \-l   | 検索結果を指定した数まで表示する |
| \-0   | 検索結果を改行しない       |
| \-r   | 正規表現で検索する        |  

### ＜リンク＞  
[locateコマンドについて詳しくまとめました 【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux-command-locate)  

***  


## touch コマンド  
ファイルのタイムスタンプ（アクセス時刻と修正時刻）を、現在時刻か、指定した日時に変更するコマンド。  
※引数に存在しないファイル名を指定すると、空のファイルを作成する。  

### ＜使用例＞  
* touch　既存のファイル　→指定したファイルのタイムスタンプを現在時刻に変更する  
* touch　存在しないファイル　→空の新規ファイルを作成する  

### ＜主なオプション＞  
| オプション | 説明                  |
|:-----: | ------------------- |
| \-d   | 日時を指定する<br>例）touch　-d　"2021-05-25 20:30"　ファイル名             |
| \-c   | ファイルを新規作成しない        |
| \-r   | 他のファイルのタイムスタンプに合わせる<br>例）touch　-r　既存のファイル名　対象のファイル名  |  

### ＜リンク＞  
[touchコマンドについて詳しくまとめました 【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux-command-touch#i)  

***  


## shutdown コマンド  
システム状で動作している様々なプログラムを適切に終了・再起動させるコマンド。  
※管理ユーザーのみ使用可能。  

### ＜書式＞  
    shutdown　[オプション]　時間  
※時間の書き方・・・  

* HH:MM　：HH時MM分に実行  
* +M　：M分後に実行  
* now　：今すぐ実行  

### ＜主なオプション＞  
| オプション | 説明                  |
| ----- | ------------------- |
| \-h   | シャットダウンする（デフォルト）    |
| \-r   | 再起動する　※＝rebootコマンド  |
| \-c   | 実行中のシャットダウンをキャンセルする |  

***  


## kill killall コマンド  
実行中のプロセスを（強制）終了するコマンド。  

### ＜書式＞  
    kill　[-s]　[‐シグナル名または‐シグナル番号]　PID（プロセスID）  
    killall　[-s]　[‐シグナル名または‐シグナル番号]　プロセス名（コマンド名）  
※ pkill \[--signal]　\[‐シグナル名または‐シグナル番号]　プロセス名（コマンド名）も同じ  
※killコマンドはPIDを使用して単一のプロセスにシグナルを送るが、  
　killallコマンドはプロセス名を使用して同じプロセス名のすべてのプロセスにシグナルを送る  

### ＜シグナルの種類＞  
※シグナル＝プロセスに送るメッセージみたいなもの  

| シグナル名          | シグナル番号   | 動作                       |
| -------------- | -------- | ------------------------ |
| HUP（SIGHUP）    | 1        | ハングアップ（端末の切断による終了）       |
| INT（SIGINT）    | 2        | 割り込みによる終了　※ctrl+Cと同じ     |
| KILL（SIGKILL）  | 9        | クリーンアップせずに終了（強制終了）       |
| TERM（SIGTEARM） | 15       | クリーンアップして終了（デフォルト）       |
| CONT（SIGCONT）  | 18（環境依存） | 一時停止のプロセスを再開             |
| STOP（SIGSTOP）  | 19（環境依存） | 一時停止                     |
| TSTP（SIGTSTP）  | 20（環境依存） | 端末から入力された一時停止　※ctrl+Zと同じ |  

### ＜おまけ＞  
以下のコマンドはすべて同じ動作をする。  
例）mycommandを実行しているすべてのプロセスをクリーンアップして終了  

* pkill mycommand  
* killall mycommand  
* killall -15 mycommand  
* killall -TERM mycommand  
* killall SIGTERM mycommand  
* killall -s 15 mycommand  
* killall -s TERM mycommand  
* killall -s SIGTERM mycommand  

### ＜リンク＞  
[Linux-Job/bg/fg/kill](https://www.infraeye.com/study/linuxz17.html)←ジョブの説明  
[プロセスを終了するkillコマンドの使い方まとめ！【Linuxコマンド集】](https://eng-entrance.com/linux-command-kill#-ID)  

***  


## history コマンド  
コマンドの実行履歴を表示するコマンド。  

### ＜主なオプション＞  
| オプション | 説明             |
| :-----: | -------------- |
| \-c   | コマンドの実行履歴を削除する |  

***  


## ifconfig コマンド
ネットワークの接続状況（主にIPアドレス）を確認するコマンド。  
※「ifconfig」のみの場合、有効な（アクティブ）ネットワーク（インターフェース）の状態を表示する。  
※アダプタ（eth0等）を指定する場合は「ifconfig　アダプタ名」となる。  

### ＜各種設定の書式＞  

* アダプタの無効化:　ifconfig　アダプタ名　down
* アダプタの有効化:　ifconfig アダプタ名　up
* IPアドレスの設定:　ifconfig　アダプタ名　IPアドレス  

### ＜主なオプション＞
| オプション | 説明                        |
| :-----: | ------------------------- |
| \-a   | すべてのアダプタを表示する（無効なアダプタも含む） |
| \-s   | 各アダプタの（エラーパケット等の）通信状況を表示する           |  

### ＜リンク＞
[ifconfigコマンドの詳細まとめました【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux-command-ifconfig)  

***  


## ping コマンド
ネットワーク上にあるコンピューターまでの接続経路がきちんと接続されているか確認するコマンド。  
ctrl+Cで強制的に停止できる。  

表示結果）  
    64bytes from 192.168.179.10: icmp_rep=1 ttl=64 time=12.3 ms  
  
* 64bytes：パケットデータサイズ（導通試験のために送信したデータのバイト数）  
* from 192.168.179.10：接続確認先のIPアドレス  
* icmp_req：導通試験の回数（厳密にはICMPパケットデータの何番目のデータかを表している）  
* ttl：Time To Live＝寿命（有効期限）　機器を一つ経由する毎に数字を１減らす  
* time：パケットデータを発してから、相手からのリアクションが戻ってくるまでの時間（通信速度）　←大きな値が出ても数回のうちに安定すれば問題なし  

### ＜主なオプション＞
| オプション | 説明                    |
| :-----: | --------------------- |
| \-c   | pingの回数を設定する<br>　例）ping　-c　回数　接続先          |
| \-i   | pingの間隔を設定する          |
| \-p   | pingの試験するパケット内容を設定する<br>　例）ping　-p　5A5A5A5A　接続先  |
| \-a   | pingの試験するパケットサイズを設定する |
| \-t   | pingの試験するTTLの数を設定する   |  

### ＜注意点＞  
* 物理的接続の確認なのでLANケーブルのコネクタがしっかり接続されているか確認すべし  
* 無線LANは先にifconfigで接続確認すべし  
などなど・・・  

### ＜リンク＞
[pingコマンドについて詳しくまとめました【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux-command-ping)  

***  


## netstat コマンド
TCP/IP通信（TCP接続）の状態を調べるコマンド。  
オプションなしだとソケット（ネットワークアドレス）を表示する。  
  
### ＜リンク＞
コマンドの説明：[TCP/IP通信の状態を調べる「netstat」コマンドを使いこなす｜＠IT](https://www.atmarkit.co.jp/ait/articles/0207/20/news003.html)  
オプション一覧：[netstatコマンドとは？](https://www.atmarkit.co.jp/ait/articles/1412/10/news003.html)  

***  


## curl コマンド  
様々なプロトコルでファイルをダウンロード・アップロード（転送）するコマンド。  

### ＜書式＞
    curl　[オプション]　URL

### ＜主な使い方＞
* curl　http://対象のURL　>　出力先　→HTTPリクエストの実行結果をファイルへ出力  
* curl　-o　出力先パス　http://対象のURL　→同上  
* curl　-s　-o　出力先パス　http://対象のURL　→ファイル出力時の進捗状況を非表示にする（エラーも非表示）  
* curl　-sS　-o 出力先パス　http://対象のURL　→上記でエラーは表示したい場合  
* curl　-x　プロキシサーバー：ポート番号　--proxy-user　ユーザ名：パスワード　http://対象のURL　→プロキシ経由でアクセスする  
* curl　-X　PUT　http://対象のURL　→HTTPメソッドの指定  

### ＜主なオプション＞  
| オプション | 説明                       |
| :-----: | ------------------------ |
| \-L   | リダイレクトがあったらリダイレクト先の情報を取る |
| \-s   | 余計な出力をしない                |
| \-o   | レスポンスボディの出力先を指定する        |  

### ＜リンク＞
[よく使うcurlコマンドのオプション｜Qiita](https://qiita.com/ryuichi1208/items/e4e1b27ff7d54a66dcd9)  
[curlコマンドの使い方メモ](https://qiita.com/yasuhiroki/items/a569d3371a66e365316f)　←難しいけどLGTMが多い  

***  


## more コマンド
テキストファイルを1画面ずつ表示するコマンド。  

### ＜主な使い方＞  
* more　ファイル名　→指定したファイルを1画面ずつ表示する  
* コマンド｜more　→他のコマンドの実行結果を1画面ずつ表示する  

### ＜主なオプション＞  
| オプション | 説明                           |
| :---: | ---------------------------- |
| \-数字  | 画面の行数を指定する                   |
| +数字   | 数字で指定した行から表示する               |
| +/文字列 | 指定した文字列を検索して、見つけた行の2行上から表示する |
| \-s   | 連続した空行を1行にする                 |
| \-l   | 改ページを無視する                    |
| \-u   | 下線の処理を行わない                   |
| \-f   | 画面の行数ではなく、データの行数を表示する        |  

### ＜リンク＞  
[【more】コマンド―長いメッセージやテキストファイルを1画面ずつ表示する｜＠IT](https://www.atmarkit.co.jp/ait/articles/1602/26/news027.html)  
[more【コマンド】｜「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/word11188.html)  

***  


## tail コマンド  
ファイルの最終行から数行（指定がなければ10行）を表示するコマンド。  
※ログファイルにログが追記されていく様子をリアルタイムで見るために使ったりする。  

### ＜主な使い方＞
* tail　[オプション]　ファイル名  
* コマンド｜tail　[オプション]  →ほかのコマンドで指定したファイルの最終行数行を表示する  

### ＜主なオプション＞  
| オプション | 説明           |
| :-----: | ------------ |
| \-c   | 出力する文字数を指定する　※文字数は半角1文字で1、全角1文字で2 |
| \-n   | 出力する行数を指定する  |
| \-q   | ファイル名を表示しない  |
| \-v   | ファイル名を常に表示する |
| \-f   | ファイルの追記を監視する　※終了はctrl+C |  

### ＜リンク＞
[tailコマンドについて詳しくまとめました 【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux-command-tail)  

***  


## head コマンド  
ファイルの最初の数行（指定がなければ10行）を表示するコマンド。  

### ＜主な使い方＞
* head　[オプション]　ファイル名  
* コマンド｜head　[オプション]  

### ＜主なオプション＞
| オプション | 説明           |
| :-----: | ------------ |
| \-c   | 出力する文字数を指定する |
| \-n   | 出力する行数を指定する  |
| \-q   | ファイル名を表示しない  |
| \-v   | ファイル名を常に表示する |  

### ＜リンク＞
[ファイルの先頭から表示するheadコマンドの詳細まとめ【Linuxコマンド集】｜エンジニアの入口](https://eng-entrance.com/linux-command-head)  

***  


## ps コマンド  
実行中のプロセスを確認するコマンド。  

### ＜主な使い方＞  
* **ps　（オプションなし）**：psコマンドを実行した端末で実行されているプロセスを表示する。  
* **ps　ax（aux）**：システム実行されているすべてのプロセスを表示する。（uでユーザー情報も追加する場合もある。）  

### ＜主なオプション＞  
| オプション     | 説明                                                  |
| :-------: | --------------------------------------------------- |
| a         | 他のユーザーのプロセスも表示する<br>（xオプションと併用ですべてのプロセス表示）          |
| f         | プロセスの親子関係をツリー状で表示する<br>（表示形式は異なるがpstreeコマンドでも表示できる） |
| u         | プロセス実行ユーザー名と開始時刻も表示する                               |
| x         | 制御端末のないデーモン（常に稼働している？プログラム）等のプロセスも表示する              |
| \-e       | すべてのプロセスを表示する                                       |
| \-f       | 完全なフォーマットでプロセスを表示する                                 |
| \-p／p／PID | 指定したPID（プロセスID）のプロセス情報を表示する                         |
| \-l／l     | 親プロセスのPID（PPID）や実行優先度を決定するnice値（NI）等も伴わせて表示する       |

※「-」を付けないBSDオプションと、「‐」で始まるUNIXオプションがある  

### ＜ps ax(aux)で出力されるラベルの意味＞  
| 項目      | 説明                 |
| :-----: | ------------------ |
| USER    | プロセスを実行しているユーザー名   |
| PID     | プロセスID             |
| %CPU    | CPU使用率             |
| %MEM    | メモリ使用率             |
| VSZ     | 割り当て済みの仮想アドレス空間サイズ |
| RSS     | 物理メモリ使用量（%MEMに比例）  |
| TTY     | プロセスを実行した端末        |
| STAT    | プロセスの状態　※１         |
| START   | プロセスの起動時刻          |
| TIME    | 消費したCPU使用時間        |
| COMMAND | 実行コマンドまたはプログラム名    |

### ＜STATの代表的な状態＞  
| STATの一文字目 | 意味                           |
| :-------: | ---------------------------- |
| D         | スリープ（CPU放棄）、割り込み不可の状態：I/O待ち  |
| R         | 実行可能（CPU使用中、使用可能）            |
| S         | スリープ（CPU放棄）、割り込み可能な状態：キー入力待ち |
| T         | 停止状態                         |
| Z         | プロセス終了済み状態：ただし、親プロセスの処理待ち    |  

### ＜リンク＞  
[【ps】実行中のプロセスを表示する｜日経XTECH](https://xtech.nikkei.com/it/article/COLUMN/20060227/230860/)  
[プロセスの監視｜Linux‐Process](https://www.infraeye.com/study/linuxz16.html)  

***  


## jobs bg fg コマンド  
* jobs：バックグラウンドで動作中＆一時停止中ジョブを確認するコマンド。  
* bg：一時停止中のジョブをバックグラウンドで実行状態にするコマンド。  
* fg：バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替えるコマンド。    

### ＜jobsコマンドの見方＞  
    例）　$　jobs  
    　　　[１]―　Running　～  
    　　　[２]＋　Stopped　～  
* []内の数字はジョブ番号  
* 「Running」はバックグランドで動作中、「Stopped」は一時停止中  
* 「+」はカレントジョブ（直前にバックグランドで実行された、または直前に一時停止中されたジョブのこと）  

### ＜書式＞  
    bg　ジョブ番号  
    fg　ジョブ番号  
※「ジョブ番号」はjobsコマンドで確認。　　

### ＜リンク＞  
[Linux-Job/bg/fg/kill](https://www.infraeye.com/study/linuxz17.html)  
[実行中のプログラムをバックグラウンドにもっていく。フォアグラウンドに持ってくる（bg、fg）](https://kazmax.zpp.jp/linux_beginner/jobs_fg_bg.html)  

***  


## virsh コマンド  
仮想化ソフトウェアと仮想マシンを管理するコマンド。  

### ＜主なサブコマンド＞  
| サブコマンド   | 説明                                              |
| :------: | ----------------------------------------------- |
| create   | XML形式のファイルから仮想マシンを作成し、新規の仮想マシンを起動する             |
| console  | 仮想マシンのコンソールに接続する                                |
| start    | 仮想マシンを起動する                                      |
| shutdown | 仮想マシンを正常に終了する                                   |
| destroy  | 仮想マシンを強制終了する                                    |
| reboot   | 仮想マシンを再起動する                                     |
| suspend  | 仮想マシンを一時停止する                                    |
| resume   | 仮想マシンを再開する                                      |
| list     | 仮想マシンの一覧を表示（デフォルト：稼働中のみ）<br>※--all：すべての仮想マシンを表示 |
| dumpxml  | 仮想マシンの定義ファイルをXML形式で出力                           |  

### ＜仮想マシンの起動（準備含む）＞  
1. 仮想マシンの定義ファイルをXML形式に変換する　＞　**virsh　dumpxml　定義ファイル名　>　/etc/xen/定義ファイル名.xml**  
2. XML形式の定義ファイルから仮想マシンを起動する　＞　**virsh　create　/etc/xen/定義ファイル名.xml**  

### ＜リンク＞  
[第4回：virshコマンドで仮想かを管理する！（1/3）｜ThinkIT](https://thinkit.co.jp/free/article/0706/10/4/)  

***  


## systemctl コマンド  
systemdが管理する各サービスの稼働状況や起動設定を管理するコマンド。  
※systemdとは、SysVinitを置き換える新しいinitの仕組み。  

### ＜書式＞  
    systemctl　サブコマンド　[Unit名]  
※Unit名に拡張子がない場合、「.service」を持つUnitが指定されたものとみなされる。  

### ＜主なサブコマンド＞  
| サブコマンド          | 用途                      |
| :-------------: | ----------------------- |
| disable         | サービスの自動機能を無効にする         |
| eneble          | サービスの自動機能を有効にする         |
| get-default     | 次回起動時のターゲットを表示する        |
| is-active       | サービスが稼働しているかを表示する       |
| isolate         | 他のUnitを停止して対象のUnitを起動する |
| list-util-files | すべてのUnit定義ファイルを一覧表示する   |
| reload          | サービスの設定ファイルを再読み込みする     |
| restart         | サービスを再起動する              |
| set-default     | 次回起動時のターゲットを設定する        |
| start           | サービスを起動する               |
| atatus          | サービスの状態を表示する            |
| stop            | サービスを停止する               |

### ＜リンク＞  
[systemctlコマンドの使い方と主要オプション](https://shimi-dai.com/centos-systemctl/)  

***  





## 参考サイト
[【Linuxコマンド集】Linuxコマンド詳細含めて総まとめ｜エンジニアの入口](https://eng-entrance.com/category/linux/linux-command)  
[コマンドの使い方（Linux）](https://hydrocul.github.io/wiki/commands/)