Linuxの基本コマンドをまとめてみた

## はじめに
Linuxコマンドは数が多く、オプションも豊富にあるため、何をどれだけ覚えれば良いか分からないという人も多いのではないでしょうか。そこで本記事では、基本的なLinuxコマンドに焦点を当て、それぞれのコマンドの用途と基本的な使い方についてまとめてみました。<br>
本記事では以下のコマンドを取り上げています。どれもよく使うコマンドばかりです。まずはこれらの簡単なコマンドを使って、Linuxコマンドに体を慣らしていきましょう。

1. cd
1. pwd
1. ls
1. mkdir
1. rmdir
1. cat
1. less
1. tail
1. touch
1. rm
1. mv
1. cp
1. ln
1. find
1. chmod
1. chown
1. ps
1. kill

## 1. cd
cd コマンドは "Change Directory" の略で、ディレクトリを変更するために使用されます。

```bash
cd ディレクトリのパス
```

例:
```bash
cd Documents
```

## 2. pwd
pwd コマンドは "Print Working Directory" の略で、カレントディレクトリのパスを表示します。

```bash
pwd
```

## 3. ls
ls コマンドは "List" の略で、ディレクトリ内のファイルとディレクトリの一覧を表示します。

```bash
ls オプション ディレクトリのパス
```

例:

```bash
ls -l /home/user
```

### オプション
- 詳細な情報の表示:

```bash
ls -l
```
ファイルやディレクトリの詳細な情報（パーミッション、所有者、サイズなど）を表示します。
<br>

- 隠しファイルも表示:

```bash
ls -a
```
隠しファイルも含めて全てのファイルやディレクトリを表示します。
<br>

- サイズ順に表示:

```bash
ls -S
```
ファイルサイズの大きい順に表示します。


## 4. mkdir
mkdir コマンドは "Make Directory" の略で、新しいディレクトリを作成します。

```bash
mkdir ディレクトリの名前
```

例:

```bash
mkdir Documents
```

### オプション
- 親ディレクトリも作成:
```bash
mkdir -p path/to/new/directory
```
必要に応じて親ディレクトリも作成しながら、指定したディレクトリを作成します。


## 5. rmdir
rmdir コマンドは "Remove Directory" の略で、空のディレクトリを削除します。空でないディレクトリを削除しようとするとエラーになります。

```bash
rmdir ディレクトリの名前
```

例:

```bash
rmdir Documents
```

## 6. cat
cat コマンドは "Concatenate" の略で、ファイルの内容を表示します。

```bash
cat ファイルの名前
```

例:

```bash
cat file.txt
```

### オプション
- 行番号の表示:

```bash
cat -n file.txt
```
各行に行番号を付けてファイルの内容を表示します。
<br>

- 逆順で表示:

```bash
tac file.txt
```
ファイルの内容を逆順で表示します。


## 7. less
less コマンドは、ファイルの内容を閲覧するためのページャーです。通常、大きなファイルを開くときに有用です。

```bash
less ファイルの名前
```

例:

```bash
less largefile.txt
```

### オプション
- 行番号の表示:

```bash
less -N ファイルの名前
```
各行の行番号を表示します。
<br>

- 検索:

/検索語: 検索語を入力して Enter キーを押すと、次の一致する箇所に移動します。<br>
?検索語: 後ろ向きに検索します。
<br>

- ファイル内検索のハイライト:

```bash
less -p 検索語 ファイルの名前
```
検索語がハイライト表示されます。



## 8. tail
tail コマンドは、ファイルの終わり部分を標準出力します。オプションをつけない場合、末尾から10行を出力します。

```bash
tail オプション ファイルの名前
```

例:

```bash
tail -n 10 logfile.txt
```

### オプション
- リアルタイムでの表示:

```bash
tail -f ファイルの名前
```
ファイルの末尾をリアルタイムで表示し、新しい内容が追加されるたびに更新します。
<br>

- 行数の指定:

```bash
tail -n 行数 ファイルの名前
```
指定した行数の内容を表示します。
<br>

- バイト数の指定:

```bash
tail -c バイト数 ファイルの名前
```
指定したバイト数の内容を表示します。
<br>

- 複数ファイルの同時表示:

```bash
tail ファイル1 ファイル2
```
複数のファイルを同時に表示します。



## 9. touch
touch コマンドは、ファイルのタイムスタンプを更新したり、空のファイルを作成したりします。

```bash
touch ファイルの名前
```

例:

```bash
touch newfile.txt
```
### オプション
- 指定した日時にタイムスタンプを更新:

```bash
touch -t タイムスタンプ ファイルの名前
```
指定した日時にタイムスタンプを更新します。


## 10. rm
rm コマンドは、ファイルやディレクトリを削除します。

```bash
rm オプション ファイルまたはディレクトリの名前
```

例:

```bash
rm file.txt
```

### オプション
- ディレクトリの削除:

```bash
rm -r ディレクトリの名前
```
ディレクトリを再帰的に削除します。
<br>

- 確認プロンプトの表示:

```bash
rm -i ファイルの名前
```
ファイルを削除する前に確認プロンプトを表示します。
<br>

強制的な削除:

```bash
rm -f ファイルの名前
```
ファイルを確認せずに強制的に削除します。




## 11. mv
mv コマンドは、ファイルやディレクトリを移動させたり、名前を変更したりします。

```bash
mv オプション ソース ディレクトリまたはファイルの名前
```

例:

```bash
mv file.txt /path/to/destination/
```

### オプション
- 上書き確認:
```bash
mv -i ソース ディレクトリまたはファイルの名前
```
移動先に同名のファイルが存在する場合に確認プロンプトを表示します。


## 12. cp
cp コマンドは、ファイルやディレクトリをコピーします。

```bash
cp オプション ソース ディレクトリまたはファイルの名前
```

例:

```bash
cp file.txt /path/to/destination/
```

### オプション
- ディレクトリのコピー:

```bash
cp -r ディレクトリの名前 コピー先のディレクトリ
```
ディレクトリを再帰的にコピーします。
<br>

- 進捗表示:

```bash
cp -v ソース ディレクトリまたはファイルの名前
```
コピーの進捗を表示します。
<br>

- 上書き確認:

```bash
cp -i ソース ディレクトリまたはファイルの名前
```
コピー先に同名のファイルが存在する場合に確認プロンプトを表示します。


## 13. ln
ln コマンドは、リンク（ハードリンクやシンボリックリンク）を作成します。

```bash
ln オプション ソース リンクの名前
```

例:

```bash
ln file.txt link.txt
```

### ハードリンクとシンボリックリンク
- ハードリンク:

```bash
ln ソース ハードリンクの名前
```
同じiノード（データの実体を指す情報）を共有するハードリンクを作成します。オリジナルが変更されても、リンクも影響を受けます。
<br>

- シンボリックリンク:

```bash
ln -s ソース シンボリックリンクの名前
```
ソースへのパスを持つ新しいファイルを作成し、それを指すシンボリックリンクを作成します。



## 14. find
find コマンドは、ファイルやディレクトリを検索し、見つかったものに対してアクションを実行します。

```bash
find 検索先 -オプション 検索条件 アクション
```

例:

```bash
find /home/user -name "*.txt" -print
```

### オプション
- 名前で検索:

```bash
find 検索先 -name "検索条件"
```
ファイルやディレクトリの名前で検索します。
<br>

- タイプで検索:

```bash
find 検索先 -type ファイルの種類
```
指定した種類のファイルを検索します。
<br>

- 検索条件の否定:

```bash
find 検索先 ! -条件
```
指定した条件に一致しないものを検索します。
<br>

- アクション:

```bash
find 検索先 -exec コマンド {} \;
```
検索結果に対して指定したコマンドを実行します。


## 15. chmod
chmod コマンドは、ファイルやディレクトリのパーミッション（権限）を変更します。

```bash
chmod オプション パーミッション ファイルまたはディレクトリの名前
```

例:

```bash
chmod 755 script.sh
```

### 基本的な使用法
- 数値による指定:

```bash
chmod 数値 ファイルまたはディレクトリの名前
```
数値でパーミッションを指定します。
<br>

- 記号による指定:

```bash
chmod 記号 パーミッション ファイルまたはディレクトリの名前
```
記号を使用してパーミッションを指定します。

### オプション
- 再帰的な変更:

```bash
chmod -R パーミッション ディレクトリの名前
```
ディレクトリ内のすべてのファイルとサブディレクトリのパーミッションを再帰的に変更します。
<br>

- 特定のユーザーに対する変更:

```bash
chmod ユーザー=パーミッション ファイルまたはディレクトリの名前
```
特定のユーザーに対してパーミッションを変更します。


## 16. chown
chown コマンドは、ファイルやディレクトリの所有者を変更します。

```bash
chown オプション 新しい所有者:新しいグループ ファイルまたはディレクトリの名前
```

例:

```bash
chown user:group file.txt
```

### オプション
- 再帰的な変更:
```bash
chown -R 新しい所有者:新しいグループ ディレクトリの名前
```
ディレクトリ内のすべてのファイルとサブディレクトリの所有者とグループを再帰的に変更します。


## 17. ps
ps コマンドは、実行中のプロセスの情報を表示します。

```bash
ps オプション
```

例:

```bash
ps aux
```

### オプション
- 全てのプロセスの表示:

```bash
ps aux
```
すべてのユーザーの実行中のプロセスを表示します。
<br>

- ツリー表示:

```bash
ps f
```
プロセスのツリー形式で表示します。


## 18. kill
kill コマンドは、プロセスにシグナルを送信してプロセスを終了させます。

```bash
kill シグナル プロセスID
```

例:

```bash
kill -9 1234
```

### オプション
- 強制終了:

```bash
kill -9 プロセスID
```
プロセスを強制的に終了します。
<br>

- シグナルの指定:

```bash
kill -シグナル プロセスID
```
特定のシグナルを使用してプロセスを終了します。
<br>