【初心者向け】Linuxコマンドの練習ってどうやったらいいの？効果的な練習方法とは？

こんにちは、
[InfraAcademy](https://engineer-ninaritai.com/infraacademy/)というインフラ学習サービスを作成しております、ryuと申します。
InfraAcademyはインフラエンジニアを目指す方やインフラの学習したい方にご利用いただいているサービスです。

https://engineer-ninaritai.com/infraacademy/

学習サポートをしていると、このような質問をよく受けます。
**「Linuxコマンドを覚えるためにはどうしたらいいの？」**
**「Linuxコマンドってどうやって練習したらいいの？」**
**「参考書を読んだけどLinuxコマンドが使えない...」**

Linux初心者の方には、共通のお悩みがあります。
**そこで、今回はLinuxコマンドの練習をどうやったらいいのかについて解説したいと思います。**
Linuxコマンドを効果的に練習して、実務で使えるようになりましょう！

## Linuxコマンドの練習ってどうやったらいいの？
ここからは、**Linuxコマンドの練習をどのようにやったらいいのか、効果的な方法を解説します。** これは、私個人がLinux初学者にアドバイスしている内容です。
### まずは目標を決めよう
Linuxコマンドの練習をする前に、まずは目標を決めましょう。目標とは、Linuxをどのくらい勉強するのかを決めることです。

例えば、以下のような目標があります。
- 「インフラエンジニアとして転職したい」
- 「LPIC101試験に合格したい」
- 「Webサービスを公開するために、Webサーバーを構築したい」
- 「Linuxについて軽く知りたい」

目標は人それぞれです。目標によって、どのくらい勉強するのか、どのような内容を勉強するのかが変わってきます。
インフラエンジニアを目指す方であれば、実務で使うコマンドを中心に学習しましょう。LPIC合格を目指す方であれば、試験に出題されるコマンドを練習しましょう。このように目指すレベル感によって、練習する内容が変わります。
どのコマンドを練習すればよいかについては後ほど解説します。

:::note info
**Linuxコマンドの練習を始める前に、ご自身がどのような目標なのかを明確にしておきましょう！**
:::

### 内容の理解→実践の繰り返し
次に、具体的にどうやってLinuxのコマンドを練習するのかについて説明します。
Linuxのコマンドの練習は、**内容の理解と実践を繰り返す**ことが重要です。

Linuxコマンドが使えない人の大半は、参考書をサラッと読んだり、動画をサラッと見ただけの人です。今は、YoutubeやUdemyでLinuxについてわかりやすい講座が増えています。しかし、動画を見るだけでは、実践でLinuxコマンドが使えません。

Linuxコマンドを使いこなせるようになるためには、実践が必要です。
コマンドをLinuxで入力して、どのような動作をするのか検証してみましょう。コマンドを入力ということは、手を動かすことです。頭で読んでいるよりは、頭と手を使って体に覚え込ませましょう。
最初のうちは、コマンドを入力するために、調べたり、参考書を読み直したりするかもしれません。しかし、何回もコマンドを入力することで、スラスラとコマンドが打てるようになります！

:::note info
**内容の理解と実践を繰り返すことで、Linuxコマンドがスラスラ打てるようになる**
:::
### 練習する環境を整えよう
Linuxコマンドの練習をする場合、実践が必要になります。コマンドの実践をするためには、Linuxの環境を準備する必要があります。
初心者の場合、環境構築で躓く方が多いです。
参考書では、VirtualBoxをインストールして構築している例が多いです。VirtualBoxは仮想的にLinuxを動作させるシステムです。仮想環境の構築は、いくつかの設定が必要になるため、この設定ができずに挫折する場合があります。（仮想化の設定は機器によって違い、ややこしいです。)

そこで、簡単にLinux環境を準備する方法があります。
**それば、ブラウザでのシミュレーターを使うことです。**
宣伝で申し訳ないのですが、弊社サービスの[InfraAcademy](https://engineer-ninaritai.com/infraacademy/)を使うと簡単にLinux環境を準備することができます。
![スクリーンショット-2024-03-08-11.08.21-1024x550.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3577925/e7f8c91e-11ca-4e66-6c5f-0b8a7d362520.png)

そのほかには、以下のようなシミュレーターもあります。
- [copy.sh](https://copy.sh/v86/?profile=archlinux)
- [JSLinux](https://bellard.org/jslinux/vm.html?url=alpine-x86.cfg&mem=192)
- [Killercoda](https://killercoda.com/)

これらのツールを使うと、Linuxの練習できる環境が簡単に作成できます。30秒もかかりません。

また、本番環境で実行できないコマンドも、シミュレーターでは練習することができます。
例えば、rm -rf /*のようなファイルやディレクトリを全削除する危険なコマンドなども試すことができます。Linuxを壊しても、すぐにやり直せるのがシミュレーターのメリットです。

Linuxの環境構築に手こずっている方は、ぜひ参考にしてください！

### 実践的な内容で練習する
Linuxの練習環境が準備できたら、練習を始めましょう。
Linuxコマンドの練習は、実践的な内容で行うことを心がけましょう。

実践的な内容とは、コマンドをどのような場面で使うのかを想定しながら使うということです。
例えば、ファイルのアクセス権限の変更を例にとってみましょう。

通常の参考書であれば、chmodコマンドやchownコマンドの使い方を学習するだけです。しかし、これだけでは不十分です。

実際に、実務でアクセス権限を編集する場合、カレントディレクトリの移動、ファイルの作成やコピー、権限の確認、所有ユーザーやグループの作成など、アクセス権限を変更するだけで、複数のコマンドを実行することになります。
このように、アクセス権限の変更だけでも、事前準備のコマンドや確認のコマンドが必要になります。

**具体的に上記の例でコマンドを練習してみましょう。**
まず、練習用にディレクトリを作成して、カレントディレクトリを移動します。
```
mkdir /testdir
cd /testdir
```
続いて、ファイルの作成を行います。
```
touch file.txt
```
現状のアクセス権限を確認します。
```
ls -l file.txt
```
続いて、アクセス権限を変更してみます。
```
chmod 777 file.txt
```
最後に、アクセス権限が変更できているのかを再度確認します。
```
ls -l file.txt
```
これは、コマンド練習の１例です。
このような流れで実践的にコマンドを練習しましょう。

## どのLinuxコマンドを練習したらいいの？
続いて、どのようなLinuxコマンドを練習したらいいのかについて解説します。
目標設定の部分でも述べたように、目指す場所によって練習内容は変わっていきます。
ここでは、目標に合わせて、どのようなLinuxコマンドを練習するのかについて解説します。

### Linux初心者向けのコマンド
まずは、Linux初心者向けのコマンドです。
Linux初心者の方は、ファイルやディレクトリの操作をできるようになりましょう。
ファイルの編集やカレントディレクトリの移動、ファイルの表示などです。それらを実行するためのコマンドの一例は以下の通りです。
| コマンド | 説明 |
|---------|------|
| ls | ディレクトリの内容を表示します。 |
| cd | ディレクトリを移動します。 |
| pwd | 現在の作業ディレクトリを表示します。 |
| mkdir | 新しいディレクトリを作成します。 |
| rmdir | 空のディレクトリを削除します。 |
| rm | ファイルを削除します。 |
| cp | ファイルやディレクトリをコピーします。 |
| mv | ファイルやディレクトリを移動します。 |
| cat | ファイルの内容を表示します。 |
| touch | 空のファイルを作成します。|
| vi | ファイルを編集します。 |

### インフラエンジニアになりたい方向けのコマンド
インフラエンジニアになりたい方の場合、サーバーの構築や運用保守などをすることがあります。上記の基本的なコマンドに加えて、以下のようなコマンドも練習しておきましょう。
| コマンド | 説明 |
|---------|------|
| ssh | セキュアなシェルでリモートサーバーに接続します。 |
| scp | ファイルをセキュアにコピーします（SSH経由）。 |
| wget | インターネット上のファイルをダウンロードします。 |
| curl | URLを使用してデータを転送します。 |
| grep | ファイル内のパターンに一致する行を検索します。 |
| tail | ファイルの末尾を表示します。ログファイルなどで使用されます。 |
| head | ファイルの先頭を表示します。 |
| apt | Debian系のパッケージ管理。 |
| yum | CentOS系のパッケージ管理。 |
| systemctl | サービスの起動、停止、再起動などを行います。（systemdを使用している場合）。 |
| service | サービスの起動、停止、再起動などを行います。 |

### LPICの資格試験を目指す方向けのコマンド
次にLPICの資格試験で合格を目指す方向けのコマンドです。LPICでは、さまざさなコマンドが出題されます。
普段使わないようなマニアックなコマンドも知っておく必要があります。
LPICで出題されるコマンドの一部をご紹介します。
| コマンド | 説明 |
|---------|------|
| find | ファイルやディレクトリを検索します。 |
| awk | テキスト処理とパターンスキャンを行うためのツール。 |
| sed | テキストのストリーム編集を行うためのツール。 |
| xz | ファイルの圧縮や解凍をします。 |
| iptables | ファイアウォールの設定を管理します。 |
| uptime | システムの稼働時間や平均負荷を表示します。 |
| lsof | ファイルシステムに関する情報をリストします。 |
| umask | デフォルトのアクセス権を設定します。 |
| tar | アーカイブの作成や解凍を行います。 |
| dd | ディスクのバックアップや復元など、ディスク操作を行います。 |

このようにLinuxコマンドは多くあるので、自分がやりたいことに合わせてコマンドを練習しましょう。

## コマンド練習のための教材や参考書は？
ここまで、Linuxのコマンド練習方法や、どのようなコマンドを練習すれば良いのかについて解説しました。
では、どのような教材を選べば、効果的に練習ができるのでしょうか？
### InfraAcademy(インフラアカデミー）
**１つ目は、InfraAcademy(インフラアカデミー)です。**
InfraAcademyは私が個人で開発したサービスであり、Linuxコマンドの習得に悩んだ経験からできたサービスです。

InfraAcademyには、Linux入門講座、Linux中級講座、サーバー構築講座、LPIC講座があり、Linuxに必要な知識をコマンドを実行しながら学ぶことができます。
先ほども解説した通り、シミュレーターも用意しているので、簡単にLinuxの練習をすることができます。

一部の講座は無料でお試しすることができるので、興味のある方はぜひ使ってみてください！
[InfraAcademy-実践しながらLinux・ネットワークが学べるインフラ学習サイト](https://engineer-ninaritai.com/infraacademy/)
### Udemy
２つ目はUdemyです。
Udemyは、多くの教材が集まったプラットフォームです。Linuxに関する講座も豊富にあります。
Linuxコマンド練習のためにおすすめの講座は、以下の通りです。
- [もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ！】](https://www.udemy.com/course/linux100test/)
- [もう怖くないLinuxコマンド。手を動かしながらLinuxコマンドラインを5日間で身に付けよう](https://www.udemy.com/course/unscared_linux)


### 参考書
Linuxの参考書であれば、以下のものがおすすめです。レベル別で分けています。
- 【入門者向け】いちばんやさしい Linuxコマンド 入門教室
- 【入門者向け】ゼロからわかる　Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう！
- 【初心者〜中級者】新しいLinuxの教科書
- 【中級者向け】 LPICあずき本

## Linux初心者がLinuxコマンドの練習で挫折する理由は？
ここまで、Linuxコマンドの効果的な練習方法や教材などを解説しました。
しかし、多くの方がLinuxコマンドの練習を続けることができずに挫折してしまいます。
それはなぜでしょうか？

挫折する方には、以下のような特徴があります。
- レベルの高すぎる教材
- 環境構築ができない
- エラーが対処できない
- モチベーションが続かない

### レベルの高すぎる教材
**挫折する方の特徴の1つめは、レベルの高すぎる教材を選んでしまうことです。**
Linux入門用の本を買ったけど、全く理解できなかったり、ページ数が多すぎて最後まで読めないことがあると思います。
私自身、Linuxを勉強する際に参考書を購入しましたが、全く役に立ちませんでした。Linux入門用なのに、難しい単語多く、文章が理解できませんでした。

参考書や教材を購入する前に、自分のレベルにあったものなのかを確認しましょう。いきなり教材を購入するのではなく、本屋での立ち読みや、お試し利用などで体験してみると良いでしょう。
ただ、簡単すぎる教材を買っても意味はありません。自分のレベルより、少し高めの教材をおすすめします。
### 環境構築ができない
**挫折する方の特徴の2つめは、環境構築ができない点です。**
特にVirtualBoxやDockerで環境構築しようとして、エラーに躓く人が多いです。
これらのエラーは初心者には対処できないものが多いです。
また、参考書が発売された時期とは、インストール方法が変わっている場合もあります。古い参考書を購入すると、環境構築の手順が現在と全く違うことも。
このような方は、先ほどご紹介したブラウザで動くLinuxシミュレーターを使ってLinuxコマンドの練習をしましょう。
### エラーが対処できない
**挫折する方の特徴の3つめは、エラーが対処できないことです。**
エラーは、何か不具合やミスがあると発生します。
しかも、エラーは英語で出力されるため、何が書いてあるのかさっぱり分からないと思います。

教材通りに進めたけど、エラーが出て先に進めない。
そして、学習を諦めてしまいます。

このような方のために、エラーが出た場合にどうすれば良いのかを簡単に説明します。
エラーが出たら、以下のことを実施してみましょう。
1. エラーの内容を翻訳する
2. Google検索
3. ChatGPTに聞く
4. 先輩エンジニアに聞く

エラーが発生したら、まずはどのようなエラーなのかを翻訳して理解しましょう。
その後、GoogleやChatGPTで解決策を探しましょう。8割くらいのエラーはこれで解決します。
しかし、どうしても解決できない場合は、先輩エンジニアに聞いてみましょう。
先輩エンジニアが身近にいない場合は、X(旧Twitter)やMentaなどのサービスを使って探してみるのも良いでしょう。

エラーで躓くと、多くの時間を浪費します。せっかく学習や練習をしようと思っても、エラーで時間を無駄にしてしまうのは勿体無いです。上記のような対策を実施して、エラーで躓かないようにしましょう!
### モチベーションが続かない
**挫折する方の特徴の4つめは、モチベーションが続かないこと**

モチベーションの維持は難しいことです。Linux学習は数ヶ月~数年かかる場合があります。
長期間の学習意欲を保つためには、以下のようなことを実践するといいと思います。

- 目標を持つ
- 同じ仲間を見つける
- 小さく続ける
- 学習に投資する

目標を持つことは、一番最初に述べた通りです。
また、Linuxを学習している仲間を見つけることもモチベーション維持につながります。XやLINEのオープンチャット、discordなど、探してみるといくつかのコミュニティーがあります。またリアルイベントに参加して、仲間を見つけることもできます。[connpass](https://connpass.com/)や[TECH PLAY](https://techplay.jp/)といったサービスにイベント情報が記載されているので、Linux関連のものがあれば参加してみましょう。

学習は1日に8時間や10時間とまとめるのではなく、小さくつづけることを意識してみましょう。
もちろん、1日に8時間や10時間できる方は引き続き継続しましょう。(私個人は1~2時間が限界です。。。)
学習を継続するためには、休憩も重要ですので、意識的に学習しない期間も取りましょう。

また、人によってはある程度コストをかけた方が良い場合もあります。お金をかけているからこそ、やらねばならないという気持ちになる方が当てはまります。　スクールに通って数十万円をかける必要はありませんが、教材などへの投資はしてみてもいいと思います。

このような方法を使って、Linuxコマンドの練習のモチベーションを維持していきましょう！
Linuxの学習で挫折する理由については、こちらの記事でさらに詳しく解説しています。興味ある方は是非ご覧ください。

https://qiita.com/ryu235464345/items/5924ab732af223b7fafe

## まとめ
今回は、Linuxコマンドの練習について解説しました。
今回の内容をまとめます。

:::note info
 - **Linuxコマンドの練習を始める前に、目標を明確にしましょう**
 - **内容の理解と実践を繰り返しましょう**
 - **コマンドを練習する環境を整えよう**
 - **実践的な内容で練習しよう**
:::

Linuxをこれから学習する方や、Linuxコマンドがなかなか覚えられないという方は是非参考にしてみてください！
ここまでお読みいただきありがとうございました！
記事にいいねしていただけると幸いです。