初心者向け！基本的なLinuxコマンドと使い方！

みなさんこんにちわ！

こちらは[https://nokonoko1203.qrunch.io/entries/dSVhxUEcdi3WsU1V](https://nokonoko1203.qrunch.io/entries/dSVhxUEcdi3WsU1V)の再投稿になります

このページを見に来てくれた方で、「Linuxを知らない」という方は少ないと思いますが、Linuxのコマンドを熟知している、という方はかなり少ないのではないかなと思います。

全貌はわかりませんが、こちら（[Linux コマンド 一覧表（manページ一覧）](http://kazmax.zpp.jp/cmd/)）をざっと見ただけでも無数のコマンドが存在することがわかります。

これらを全て把握し、使いこなすのは容易ではありません。

しかし、実際に日常的に使うコマンドはごくわずかで、全て覚える必要はありません！

今回は「最低限必要なコマンド」を厳選して紹介します！

# 基本的なLinuxコマンド一覧
## ①最低限使える必要があるコマンド
- cd：現在のディレクトリの変更
- pwd：現在のディレクトリの表示
- mkdir：ディレクトリの作成
- ls：ファイル・ディレクトリの一覧の表示
- rm：ファイルやディレクトリの削除
- touch：引数で渡された名前のファイルが存在しなかった場合には、空ファイルを作成し、存在した場合には、そのファイルやディレクトリの更新日時を更新
- cp：ファイルやディレクトリのコピー
- mv：ファイルやディレクトリの移動

## ②使えたら便利なコマンド
- find：ファイル・ディレクトリの検索
- nano:CUIに慣れていない方でも使いやすい初心者向けエディター
- cat：複数のファイルの中身を結合して、標準出力に出力
- less：ファイルの中身をページ送りしながら表示
- grep：ファイルや標準入力の中から特定の単語を検索
- chmod：ファイル権限を変更
- echo：第一引数で与えられた文字列を、そのまま標準出力に出力
- read：第一引数で与えられた名前の変数に、標準入力で与えられた文字を代入
- tmux：1つのコンソールで、複数のコンソールを操作したり、コンソールの状態を維持したままにする
- crontab：プログラムを自動実行するスケジュールを設定する

これらのコマンドを2回に分けて解説していきます！

# cd：現在のディレクトリの変更
`cd`はChange Directoryの略で 「現在のディレクトリ（カレントディレクトリ）を変更する」コマンドです。

cdコマンドを使って、[MacにVagrantでLinuxを入れてSSHで接続する方法](-)で作成した`/Users/{Macのログイン名}/vagrant/ubuntu/workspace`に移動してみましょう。

```
local:~ {あなたのユーザー名}$ cd ~/vagrant/ubuntu/workspace

local:workspace {あなたのユーザー名}$
```

`local:○○`の部分の表示が変更されたと思います。これでカレントディレクトリが変更になりました。

これを別なコマンドで確認してみましょう。

# pwd：現在のディレクトリの表示
`pwd`はPrint Working Directoryの略で、名前の通りカレントディレクトリを表示します。

実際にカレントディレクトリを表示してみましょう。

```
$ pwd

/Users/{あなたのユーザー名}/vagrant/ubuntu/workspace
```

このように、`pwd`コマンドは絶対パスが表示されます。

## ワンポイント用語解説

パス：ファイルやディレクトリの位置のこと
絶対パス：ルート（最上位）ディレクトリからのパス
相対パス：カレントディレクトリからのパス

`.` はカレントディレクトリ、`..`はひとつ上のディレクトリを表します。

このため、先ほどの例でカレントディレクトリがubuntu（`/Users/{あなたのユーザー名}/vagrant/ubuntu`）の場合に、`workspace`ディレクトリを示したいとき

```
# 絶対パス
/Users/{あなたのユーザー名}/vagrant/ubuntu/workspace

# 相対パス
./workspace
```

となります！

# mkdir：ディレクトリの作成
`mkdir`はmake directoryの略でディレクトリを作成することが出来ます。

試しに`ubuntu`ディレクトリに`demo`ディレクトリを作成してみましょう。

```
# 現在のディレクトリを表示
$ pwd
/Users/{あなたのユーザー名}/vagrant/ubuntu/workspace

# cdコマンドで一つ上のディレクトリに移動
$ cd ..

#　再度確認
$ pwd

/Users/{あなたのユーザー名}/vagrant/ubuntu

#　ubuntuディレクトリにdemoディレクトリを作成
$ mkdir demo
```

これでdemoディレクトリが作成されました。

`ls`コマンドで確認してみましょう！

# ls：ファイル・ディレクトリの一覧の表示
`ls`はListの略でカレントディレクトリのファイル及びディレクトリを表示します。

早速使ってみましょう。

```
$ ls
demo		workspace
```

と表示されると思います。

ubuntuディレクトリには先ほど作成した`demo`ディレクトリと、最初からあった`workspace`ディレクトリの２つが存在することが確認できますね！

ちなみに、Linuxのコマンドにはオプションをつけることができます。

オプションは何種類もあるのですが、lsコマンドでは`-a`というオプションをつけることで「隠しファイル（ドットファイル）」を見ることができます。

実際に試してみましょう！

```
# ホームディレクトリ（チルダ：~）に移動
$ cd ~

#　ホームディレクトリにあるファイル・ディレクトリが色々表示される
$ ls
Applications			Users
Desktop				home
Documents
・・・

#　-aオプションをつけると「.」のついたファイル・ディレクトリが表示される
$ ls -a
.
..
.Trash
.bash_history			.ssh
.bash_profile			.bashrc
.config				.bundle

・・・

Applications			Users
Desktop				home
Documents
```

このように-aオプションをつけると、「.」のついたファイル・ディレクトリが表示されます。

ドットで始まるファイルはソフトの設定ファイルや一時ファイルであることが多く、`.bash_profile`や`.bashrc`は環境変数の設定、`.ssh`はsshの接続の際に必要な情報等が入っている重要かつ頻繁に修正を加えるものなので覚えておきましょう！

# rm：ファイルやディレクトリの削除
`rm`はremoveの略で、コマンドではファイル及びディレクトリを削除することができます。

しかし、ディレクトリを削除する際には`-r`オプションをつける必要があります。

```
$ pwd
/Users/{あなたのユーザー名}/vagrant/ubuntu

$ ls
demo		workspace

#　-rオプションなし
$ rm demo

# エラーが出る
rm: demo: is a directory

#　-rオプション有り
$ rm -r demo
$ ls
workspace
```

このようにdemoディレクトリが削除されて、workspaceのみが表示されるはずです。

`-r`オプションは「再帰的に」という意味で、ディレクトリの中身を含めて全て消してしまいたい時に使うのですが、ファイルが入っていないディレクトリにもオプションを指定してあげる必要があります。

# touch：引数で渡された名前のファイルが存在しなかった場合には、空ファイルを作成し、存在した場合には、そのファイルやディレクトリの更新日時を更新

`touch`はchange file access and modification timesの略で、ファイルの最終アクセス日時と最終更新日時を変更するコマンドだが、存在しないファイル名を指定することでファイルの新規作成も行える。

今回はubuntuディレクトリにファイルの新規作成を行っていきます。

```
# カレントディレクトリを確認
$ pwd
/Users/{あなたのユーザー名}/vagrant/ubuntu

# tmpファイルを作成
$ touch tmp
$ ls
tmp		workspace
```

これでファイルの新規作成ができました。

# cp：ファイルやディレクトリのコピー
`cp`はcopyの略で、
ファイルやディレクトリをコピーすることができます。第一引数にコピー元のファイル・ディレクトリを、 第二引数にコピー先のファイル・ディレクトリを指定してあげます。

上で作成した、tmpファイルをworkspaceディレクトリに移動しましょう！

```
# 第一引数でコピーしたいtmpファイルを指定、第二引数でコピーしたいパスと、新規作成するファイルの名前(tmp)を指定
$ cp tmp ./workspace/tmp

# workspaceに移動
$ cd ./workspace

# ディレクトリの中身を確認
$ ls
tmp
```

パスの指定など、少し操作が面倒ですがこれでファイルのコピーが出来ます！

ディレクトリをコピーする際には-rオプションを指定して再帰的にコピーする必要があります。

# mv：ファイルやディレクトリの移動

`mv`はmoveの略で、ファイル・ディレクトリを移動することができます！

ubuntuディレクトリでファイルを新規作成して、workspaceに移動させてみましょう！

```
# ディレクトリの中身を確認
$ ls
tmp		workspace

# tmp２ファイルを作成
$ touch tmp2
$ ls
tmp		tmp2		workspace

# workspaceに移動
$ mv tmp2 ./workspace
$ cd ./workspace
$ ls
tmp	tmp2
```

mvコマンドはこの他にも、名前を変更するのに使えます。

```
$ ls
tmp	tmp2

# tmp2のファイル名をdemo_fileに変更
$ mv tmp2 demo_file
$ ls
demo_file	tmp
```

このようにファイルの移動・修正を行うことができます。

どちらも同じコマンドで出来てしまうので注意が必要ですが、非常に便利なコマンドです！


以上、計８個のコマンドの説明をしてきました。

これらはターミナルを使った操作の中でも基本中の基本ですので、ぜひ使ってみて、覚えてみましょう！

紹介した以外にも多数のオプションが存在しますので、色々調べて、試してみてくださいね！

次回はこの他に、使えたら便利なコマンドを紹介していきます！