Linuxの基礎コマンドのまとめ

## はじめに

こんにちは！takimonです！

今回はLinux標準教科書とUdemyを使って、Linuxの基本操作について学習しました。  
学んだ内容の復習もかねて、私なりにまとめてみたいと思います。

これからLinuxを触る方や基本的なコマンドを再確認したい方の参考になれば嬉しいです！

## コマンドについて

### cd

ディレクトリを移動するためのコマンドです。

- 書式
```
cd [オプション] [ディレクトリ]
```

- よく使う特殊なディレクトリ指定

| 指定方法 | 意味 |
|:----------:|:-----------------------------|
| `.`        | 現在のディレクトリ（カレントディレクトリ） |
| `..`       | 一つ上の階層のディレクトリ（親ディレクトリ） |
| `~`        | ホームディレクトリ（例: `/home/ユーザー名`） |
| `/`        | ルートディレクトリ |


### pwd

現在の作業ディレクトリ（カレントディレクトリ）を表示します。今自分がどこにいるか確認したい時に使います。

- 書式
```
pwd [オプション]
```

### ls

ディレクトリ内のファイルやディレクトリの一覧を表示します。

- 書式
```
ls [オプション] [ディレクトリ・ファイル名]
```

- よく使われるオプション

| オプション | 説明 |
|:----------:|:--------------------------|
| `-l`       | ファイルの詳細情報を表示する |
| `-a`       | 隠しファイルも含めて表示する |
| `-F`       | ファイルの種類を表示する（例: `/`がディレクトリ） |


### mkdir

ディレクトリを作成するコマンドです。

- 書式
```
mkdir [オプション] <ディレクトリ名>
```

| オプション | 説明 |
|:----------:|:----------------------------|
| `-p`       | 必要な上位ディレクトリも同時に作成する |


### rmdir

空のディレクトリを削除するためのコマンドです。

- 書式
```
rmdir <ディレクトリ名>
```

| オプション | 説明 |
|:----------:|:--------------------------------|
| `-p`       | 指定した階層までのディレクトリを一括で削除する |


### cat

ファイルの中身を表示するコマンドです。

- 書式
```
cat [オプション] <ファイル名>
```

| オプション | 説明 |
|:----------:|:----------------------|
| `-n`       | 行番号を表示する |


### less

長いファイルの中身をスクロール表示するコマンドです。

- 書式
```
less [オプション] <ファイル名>
```


### tail

ファイルの末尾部分を表示するコマンドです。

- 書式
```
tail [オプション] <ファイル名>
```

| オプション | 説明 |
|:----------:|:--------------------------------|
| `-行数`       | 末尾から指定した行を標準出力する。 |


### touch

空のファイルを作成するコマンドです。

- 書式
```
touch <ファイル名1> <ファイル名2> ...
```

### rm

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

- 書式
```
rm [オプション] <ファイル名1> <ファイル名2> ...
```

| オプション | 説明 |
|:----------:|:------------------------------|
| `-r`       | ディレクトリも削除する |
| `-f`       | 削除時に確認メッセージを表示しない |
| `-i`       | 削除前に確認する |


### mv

ファイルの移動、または名前の変更を行うコマンドです。

- 書式
```
mv [オプション] <元ファイル> <移動先 or 新ファイル名>
```

| オプション | 説明 |
|:----------:|:---------------------------|
| `-i`       | 上書き前に確認メッセージを表示する |


### cp

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

- 書式
```
cp [オプション] <コピー元> <コピー先>
```

| オプション | 説明 |
|:----------:|:---------------------------|
| `-i`       | 上書き前に確認する |
| `-r`       | ディレクトリをコピーする |


### ln

リンクを張るコマンドです。

- 書式
```
ln [オプション] <リンク元> <リンク先>
```

| オプション | 説明 |
|:----------:|:-------------------------|
| `-s`       | シンボリックリンクを張る |

### find

ファイルやディレクトリを検索するコマンドです。

- 書式
```
find <検索開始ディレクトリ> <検索条件> <アクション>
```
| 検索条件 | 説明 |
|:--------:|:-------------------------------|
| `-name`  | ファイル名を**大文字小文字区別あり**で検索 |
| `-iname` | ファイル名**大文字小文字区別なし**で検索 |
| `-type`  | ファイルの種類を指定して検索 |
| `-a`     | 複数の検索条件を指定 |


### chmod

ファイルやディレクトリのアクセス権限を変更するコマンドです。

- 書式
```
chmod [ugoa][+-=][rwx] <ファイル名>
```

- 書式（数値で指定）
```
chmod <8進数のパーミッション> <ファイル名>
```

-  記号モードの構成

| 記号 | 意味 |
|:----:|:------|
| `u` | 所有者（user） |
| `g` | グループ（group） |
| `o` | その他のユーザー（others） |
| `a` | 全ユーザー（all） |
| `+` | 権限を追加 |
| `-` | 権限を削除 |
| `=` | 権限を上書き |
| `r` | 読み取り（read） |
| `w` | 書き込み（write） |
| `x` | 実行（execute） |

-  数値モードの意味

パーミッションは「読み(r)=4」「書き(w)=2」「実行(x)=1」の値を合計して指定します。

| 数値 | 権限 | 説明 |
|:----:|:-----|:----------|
| `0` | --- | 権限なし |
| `1` | --x | 実行のみ |
| `2` | -w- | 書き込みのみ |
| `3` | -wx | 書き込み + 実行 |
| `4` | r-- | 読み取りのみ |
| `5` | r-x | 読み + 実行 |
| `6` | rw- | 読み + 書き |
| `7` | rwx | 全て許可 |

### chown

ファイルやディレクトリの所有者やグループを変更するコマンドです。

- 書式
```
chown [オプション] ユーザー[:グループ] <ファイル名>
```

| オプション | 説明 |
|:----------:|:--------------------------------|
| `-R`       | ディレクトリ以下の所有者を変更する |

### ps

現在実行中のプロセスを表示するコマンドです。

- 書式
```
ps [オプション]
```

| オプション | 説明 |
|:----------:|:------------------------------------|
| `-aux`     | 全ユーザーのプロセスを詳細付きで表示 |


### kill

プロセスを終了させるためのコマンドです。

- 書式
```
kill [オプション] %<ジョブID>
kill [オプション] <プロセスID>
```


## おわりに

今回、Linuxの基本コマンドについてまとめてみました。

使ったことのあるコマンドも多かったのですが、オプションや書式については知らなかったことも多く、非常に勉強になりました！

今後も定期的にUdemyやLinux標準教科書などを活用して、何度も復習して理解を深めていきたいと思います。