【コピペOK】基本的なLinuxコマンド集【18選】

<br>

最近、LAMP環境構築を行っているのですが、その中でLinuxコマンドに多く触れる機会があり、知識のストックも溜まってきたので、今回はコマンドの中でも頻出のものを解説していこうと思います。
<br>
<br>

## 予備知識
#### ディレクトリ
簡単に言えばフォルダのこと。

#### ルートディレクトリ
そのコンピュータ内の全ディレクトリ、ファイルを格納しているディレクトリ。

#### ホームディレクトリ
ユーザーが抱える全ディレクトリ、ファイルを格納しているディレクトリ。

#### カレントディレクトリ
現在作業しているディレクトリ。

#### 絶対パス
ルートディレクトリから見たファイルパス。

#### 相対パス
現在作業中のディレクトリから見たファイルパス。
<br>
<br>
<br>

## 参照系

### pwd
ホームディレクトリから、現在作業中のファイルパスを表示。

【記述例】

```html
$ pwd
```
<br>

【出力例】

```html
/Users/username
```
<br>
<br>

### ls
現在作業中のディレクトリの、保存されているファイルやディレクトリの一覧を表示。

【記述例】

```html
<!-- 一覧を表示 -->
$ ls

<!-- 隠しファイル(. から始まる)も含めて表示 -->
$ ls -a

<!-- 権限などの詳細情報を表示 -->
$ ls -l

<!-- 隠しファイルも含めて権限などの詳細情報を表示 -->
$ ls -la
```
<br>

【出力例】

```html
<!-- ls -->
Desktop				Sinatra
Documents			Sites
...

<!-- ls -a -->
.Trash				Documents
.bundle				Downloads
...

<!-- ls -l -->
drwx------@  5 username  username   160 11 14 16:12 Applications
drwx------@  9 username  username   288 11 24 19:55 Desktop
...

<!-- ls -la -->
drwx------   2 username  username     64 11 21 14:01 .Trash
drwxr-xr-x   4 username  username    128 10 20 23:12 .bundle
...
```
<br>
<br>

### cat
ファイルの中身を表示。スクロールはできないので、1画面に収まるような分量の内容の場合に使用。

【記述例】

```html
$ cat exampleFile
```
<br>

【出力例】

```html
<!-- exampleFileの中身の記述 -->
これは見本です。
```
<br>
<br>

### less
ファイルの内容を表示。スクロールが可能。1画面以上の分量の内容の場合に使用。

【記述例】

```html
$ less exampleFile
```
<br>

【出力例】

```html
<!-- exampleFileの中身の記述 -->
これは見本です。
.
.
.
```
<br>
<br>

### history
実行したコマンドの履歴を表示。

【記述例】

```html
<!-- コマンドの履歴を表示 -->
$ history

<!-- 最新のコマンドを5つ表示(数字は任意) -->
$ history 5

<!-- historyで表示されたナンバリングに対応するコマンドを実行(数字は任意) -->
$ !5

<!-- historyで表示されたナンバリングに対応するコマンドを履歴から削除(数字は任意) -->
$ history -d 5
```
<br>

【出力例】

```html
<!-- history -->
  .
  .
  .
  848  pwd
  849  pwd
  850  ls
  851  ls -a
  852  ls -l
  853  ls -la
  854  cat
  855  ls

<!-- history 5 -->
  851  ls -a
  852  ls -l
  853  ls -la
  854  cat
  855  ls

<!-- !855(上記なら ls を実行) -->
Desktop				Sinatra
Documents			Sites
...

<!-- history -d 853 -->
<!-- 853 ls -laを削除 -->
  .
  .
  .
  851  ls
  852  ls -a
  853  ls -l
  854  cat
  855  ls
```
<br>
<br>
<br>

## 作成系

### mkdir
カレントディレクトリ内に、ディレクトリを新規作成。

【記述例】

```html
$ mkdir exampleFile
```
<br>
<br>

### touch
カレントディレクトリ内に、ファイルを新規作成。

【記述例】

```html
$ touch exampleFile
```
<br>
<br>
<br>

## 削除系

### rm
ファイルやディレクトリの削除。通常は出力無しですが、ファイルやディレクトに記述や保存がされている場合、*Y(yes)* か *N(no)* で実行確認を要求されます。

【記述例】

```html
<!-- ファイルの削除 -->
$ rm exampleFile

<!-- ファイルの強制削除(確認無し) -->
$ rm -f exampleFile

<!-- ディレクトリの削除 -->
$ rm -r exampleDirectory

<!-- ディレクトリの強制削除 -->
$ rm -rf exampleDirectory
```
<br>
<br>

## 複製系

### cp
ファイルやディレクトリのコピーを作成。

【記述例】

```html
<!-- exampleFile を exampleFile2 としてコピー作成 -->
$ cp exampleFile exampleFile2

<!-- exampleDirectory を exampleDirectory2 としてコピー作成 -->
$ cp -r exampleDirectory exampleDirectory2
```
<br>
<br>

## 移動系

### cd
カレントディレクトリ(現在作業中のディレクトリ)の移動。絶対パスか相対パスで指定可能。

【記述例】

```html
<!-- ホームディレクトリに移動 -->
$ cd

<!-- exampleDirectory に作業場所を移動 -->
$ cd exampleDirectory

<!-- 一階層上のディレクトリに移動 -->
$ cd ..
```
<br>
<br>

### mv
ファイルの移動や、ファイル名の変更が可能。絶対パスか相対パスで指定可能。

【記述例】

```html
<!-- exampleDirectory1 にある exampleFile1 を exampleDirectory2 に移動 -->
$ mv exampleDirectory1/exampleFile1 exampleDirectory2

<!-- exampleFile2 の名前を exampleFile3 に変更 -->
$ mv exampleFile2 exampleFile3
```
<br>
<br>

## 便利系

### clear
画面をリフレッシュする。

【記述例】

```html
$ clear
```
または「control」+「L」でも可能。
<br>
<br>

### shutdown
OSをシャットダウンする。

【記述例】

```html
$ shutdown -h now
```
<br>
<br>
<br>

## ユーザー系

### useradd
ユーザーの新規追加。(この時、ユーザー用のホームディレクトリも作成される)

【記述例】

```html
<!-- example と言うユーザー名でユーザー新規作成 -->
$ useradd example
```
<br>
<br>

### passwd
新規作成したユーザーのパスワードを新規登録、既存のユーザーのパスワード変更。(本番環境では"鍵認証"と言う別の認証方法を利用する事が多い)

【記述例】

```html
<!-- example と言うユーザー名のパスワードを変更 -->
$ passwd example
```
<br>
<br>

### userdel
ユーザーの削除。

【記述例】

```html
<!-- example ユーザーの削除 -->
$ userdel example

<!-- example ユーザーの削除と、削除したユーザーのホームディレクトリも削除 -->
$ userdel -r example
```
<br>
<br>

### su
ユーザーの切り替え。

【記述例】

```html
<!-- example ユーザーに切り替え(カレントディレクトリは同じ) -->
$ su example

<!-- example ユーザーに切り替え(そのユーザーのホームディレクトリから開始) -->
$ su - example
```
<br>
<br>

### exit
ユーザーのログアウト。多重にログインしている場合は、元のユーザーに戻る。

【記述例】

```html
<!-- 現在使用しているユーザーのログアウト -->
$ exit
```
<br>
<br>
<br>

## まとめ
Linuxディストリビューション(Linux系のOS)での環境構築などをする際は、頻繁にLinuxコマンドを使用するので、解説した基本的なコマンドは、ある程度使い慣れておくと役立ちます。

macなら「ターミナル」
Windowsなら「Power Shell」
これらで実行できますので、ぜひお試しください。

最後までご覧いただき、ありがとうございました！
<br>
<br>
<br>

筆者：yuki｜学習10日目で初案件獲得→現在はフルスタックエンジニア転職に向けて学習中
Qiita：https://qiita.com/yuki4839
Twitter：https://twitter.com/yuki35522891