Linuxコマンド（よく使うオプション付き）

# この記事の説明
この記事では、よく使用するLinuxの標準コマンドを、よく使用するオプションと組み合わせて公開しています。新人の時に「lsコマンド打て！」「はい。(ls)」「違う。(ls -l)」と言うことがあり、標準コマンドだけでなく、オプションの付け方も熟練度に関係しているなと感じたため記事にしました。

## 【cat】 ファイルの中身を出力

```
cat -n 【ファイルパス】
```

| オプション | 説明 |
|:-:|:-|
| -n | 表示する内容に行番号をつける |

## 【head】 ファイルの中身を先頭から指定行数だけ出力
```
head -【表示行数】 【ファイルパス】
```

## 【tail】 ファイルの中身を末尾から指定行数だけ出力
```
tail -【表示行数】 【ファイルパス】
```

## 【vi】 書き込み可能モードでファイルを開く
```
vi -n 【ファイルパス】
```

| オプション | 説明 |
|:-:|:-|
| -n | 表示する内容に行番号をつける |

## 【view】 読み取り専用モードでファイルを開く

```
view -n 【ファイルパス】
```

| オプション | 説明 |
|:-:|:-|
| -n | 表示する内容に行番号をつける |

## 【touch】 ファイルを新規作成
```
touch 【ファイルパス】
```
```
touch -s 1G 【ファイルパス】
```
| オプション | 説明 |
|:-:|:-|
|-s|作成するファイルのサイズを指定する|

## 【diff】 ファイルの差分を出力
```
diff -u 【ファイルパス】 【ファイルパス】
```

| オプション | 説明 |
|:-:|:-|
|-u|削除行に「-」、追加行に「+」をつける|

## 【cp】 ファイルやディレクトリのコピー
```
cp -r 【ファイルパスまたはディレクトリパス】
```
```
cp -p 【ファイルパスまたはディレクトリパス】
```
```
cp -i 【ファイルパスまたはディレクトリパス】
```
```
cp -a 【ファイルパスまたはディレクトリパス】
```

| オプション | 説明 |
|:-:|:-|
|-r|ディレクトリごとコピー|
|-i|同名のファイルが存在する場合には、上書きするかどうかをユーザに確認する|
|-a|コピー元ファイルの構成と属性を可能な限り保持してコピー|
|-p|日付、フラグなどのファイル情報を出来る限りそのままにコピー|

## 【mv】 ファイルやディレクトリを移動

```
mv -i 【移動元ファイルパスまたはディレクトリパス】　【移動先ファイルパスまたはディレクトリパス】
```

| オプション | 説明 |
|:-:|:-|
|-i|同名のファイルが存在する場合に上書き可否の確認をする|

## 【rm】 ファイルやディレクトリの削除
```
rm -i 【ファイルパス】
```
```
rm -ir 【ディレクトリパス】
```
```
rm -f 【ディレクトリパス】
```

| オプション | 説明 |
|:-:|:-|
|-i|削除するかどうかをユーザに確認|
|-r|ディレクトリを削除する場合につける|
|-f|削除するか確認しない（取扱注意）|

## 【find】 ファイルやディレクトリを検索

```
sudo find / -name 【ファイルパスまたはディレクトリパス】 -type 【dまたはf】
```
| オプション | 説明 |
|:-:|:-|
|-name|検索する名称を指定|
|-type|フォルダ名検索：「d」　ファイル名検索：「f」|

:::note info
「sudo」でroot権限を使用すると全ファイル・全ディレクトリを検索できるので「sudo」を先頭に追加する場合が多い
:::

## 【mkdir】　ディレクトリ作成
```
mkdir 【ディレクトリパス】
```


## 【cd】カレントディレクトリの変更
```
cd 【ディレクトリパス】
```

## 【pwd】カレントディレクトリの絶対パスを表示
```
pwd
```


## 【ls】 ファイルやディレクトリを一覧出力
```
ls -l 【ファイルパスまたはディレクトリパス】
```
```
ls -la 【ファイルパスまたはディレクトリパス】
```
| オプション | 説明 |
|:-:|:-|
|-l|最終更新日時やオーナーやパーミッションなどを表示|
|-a|隠しファイルも表示|

## 【chmod】 パーミッション変更
```
chmod 【3桁の数字(755など)】 【ファイルパスまたはディレクトリパス】
```

## 【chown】 所有者（オーナー）の変更
```
chown 【所有者名】 【ファイルパスまたはディレクトリパス】
```
```
chown 【所有者名】:【グループ名】 【ファイルパスまたはディレクトリパス】
```
```
chown -R 【所有者名】 【ディレクトリパス】
```
| オプション | 説明 |
|:-:|:-|
|-R|ディレクトリ内もまとめて反映|

:::note info
【所有グループ名】を変えたい場合に [:【グループ名】] を指定する。
:::

## 【>>】 コマンド実行による出力内容をファイルにも出力（追記形式）
```
【任意のコマンド】 >> 【ファイルパス】
```
:::note info
「>」が１つの場合は、上書き形式となり、コマンド実行前に同名のファイルがある場合は、ファイルの内容を削除し、実行結果を上書きします。本来は用途に応じて使い分けますが、間違えた場合にファイル内容が削除されるリスクがあるため、今回は「>>」の場合のみを記載しています。
:::

## 【su】 ユーザー切り替え
```
su - 【ユーザー名】
```
:::note warn
警告
「-」がなくてもユーザー切り替えができますが、プロファイルのリロードが行われません。（中途半端なユーザ切り替えになります。）
特段理由のない場合は「-」をつけてください。
:::

## 【echo】指定した内容を画面上に表示
```
echo $?
```
:::note info
上記は、直前に実行したコマンドの戻り値を表示
:::

## 【clear】画面上のコンソールログをクリアする
```
clear
```

## 【history】 起動中のプロセス情報を表示

```
history
history 【表示行数】
```

| オプション | 説明 |
|:-:|:-|
|【表示行数】|表示する行数の数字（末尾からカウント）|

## 【helpオプション】 コマンドの説明を表示
```
【任意のコマンド】 --help
```

## 【vmstat】 仮想メモリやCPUの使用状況を表示

```
vmstat -n 【数字】 | awk '{print strftime("%Y/%m/%d %H:%M:%S"), $0}
```
```
vmstat -n 1 | awk '{print strftime("%Y/%m/%d %H:%M:%S"), $0} {fflush()}' >> 【ファイルパス】
```

| オプション | 説明 |
|:-:|:-|
|-n|最初のみ見出しを表示|
|【数字】|何秒間隔で情報を取得するか（未指定の場合1回のみ）|





# 以下は編集中
:::note warn
ここから下は編集中です。
:::
## 【ps】 起動中のプロセス情報を表示

```
ps -aux | grep '【プロセス名】'
```
```
ps -ef | grep '【プロセス名】'
```

| オプション | 説明 |
|:-:|:-|
|-a||
|-u||
|-x||
|-e||
|-f||

## 【df】 
```
df -h
```

## 【free】 
```
free -m
```