EnvaderでLinuxを学ぶ
Linuxを学ぶには、Linuxを自分のPCにインストールして環境を作る必要がある。WindowsであればWSLを使う手もある。それ以外では、VirtualBoxなどをインストールし、仮想環境へLinuxをインストールすることになる。どの方法がいいかはお好きな方法でとしかいえない。いずれにしても、Linuxを学ぶことは、Web系やネットワークやサーバー関係の仕事をする上では必要なスキルであるといえる。
さて、Linuxをインストールしたはいいが、どうしたらいいのか戸惑うことだろう。LinuxはGUIが使えるとはいえ、基本的にはターミナルからコマンドラインの操作が主要なものとなる。Homeディレクトリ(WindowsのMy Documentsのようなもの)内の操作であれば、ディレクトリの作成、削除、ファイルの作成や削除などマウスで行えるが、それ以外のディレクトリは管理者権限になるため、基本的にマウスで操作することはできない。すべてコマンドラインからの操作になる。したがって、Linuxを学ぶということは、様々なコマンドを覚えるということである。
Linuxのコマンドを覚えることはわかった、では「どこで学んだらいいんだい?」ということになろう。方法は2つある。ひとつは書籍、もうひとつは学習サイトである。書籍による学習は、操作をミスしたときに取り返しつかないことが起きる可能性がある。管理者権限コマンドで誤って、大事なフォルダやファイルを削除してしまったら目も当てられない。もし、あなたが初めてLinuxを学ぶなら学習サイトをおすすめする。なぜなら、操作ミスしても全く問題がないからである。
Envaderというオンライン学習サイトについて
Linuxを学ぶ学習サイトのひとつであるプログラミングスクールRareTECHが運営するEnvaderを紹介しよう。RareTECHはなかなかおもしろいプログラミングスクールだ。ここでは希少型エンジニアの育成を目標としており、「量産型エンジニアはやらないよ、すぐに稼ぎたければ他のスクールにいってね」とまでいってしまうあたり、ユニークで突き抜けたプログラミングスクールである。
さて、Envaderはプログラミング学習サイトが多い中、Linuxに特化するというめずらしいオンライン学習プラットフォームである。ここではLinuxのコマンドをとおしてサーバー構築やネットワーク、サイバーセキュリティなどの仕組みの基礎を学ぶことができる。開始から2ヶ月という日は浅いものの会員はすでに1,600人を超えており、これからの成長が期待できる学習サイトである。
Envaderの特徴
特徴としては、学習する上で、操作ミスによる損失がないということであろう。Linuxコマンドを利用するには、操作ミスが常につきまとう。rmコマンドでファイルやディレクトリを削除するとき、iオプションをつけ忘れてしまうと有無を言わずに削除されてしまう。削除したファイルやディレクトリはゴミ箱へということではないのである。とくに管理者権限では何でもできてしまうため、十分な注意が必要であり、削除の操作ミスは致命的なことになりかねない。
その点、Endaverではコマンドで操作ミスしても何度でもやりなおすことができ、しっかりとコマンドの使い方をまなぶことができる。これが学習サイトを利用する最大のメリットなのである。
学習の進め方
Envaderに限らず、どの学習サイトでもそうだが会員登録するところから始まる。
会員登録
rareTECH受講者以外ではGoogleアカウントが必要である。ログイン項目は2つあり、Googleのアカウントとユーザー名だけですぐに学習を始めることができる。2回目以降はサイトにアクセスするだけである。
受講するコースを選択する
コースは全部で5コースある。
- Linux基礎コース(無料)
- Linux応用コース
- Database基礎コース
- セキュリティ基礎コース(無料)
- ターミナルカスタマイズコース
このうちLinux基礎コースとセキュリティ基礎コースは無料だが、それ以外のコースは有料(2,000円)となる。ただ、月額課金制ではなく、支払いは1回のみであり、購入する形になっている。コース内容はエンジニアにとって必要なものばかりである。もちろんエンジニアを目指さないユーザーにとっても、Web系の仕事で役に立てることができ、VPSの運用においても必要なる。またローカル環境で開発したWebアプリをWebサーバーへデプロイするときなど、必要となるもので必ず学習しておきたい内容となっている。
受講内容を選択する
コースの中でなにを受講したいのか選択する。左側には受講の進行度、終了した受講内容にはチェックマークが付く。どこまで終わったのかひと目でわかるようになっている。
学習を始める
なにを受講をしたいのか選択する。なれる意味から、チュートリアルは最初に学習しておこう。学習は2〜3つの問題で構成される。それぞれ問題をクリアしていくことで学習していく。理解できなかったら、何度でも繰り返すことができるようになっている。
学習スタート時には、なにを学習するのかというガイドが表示される。読んだら[START]をクリックして開始する。
学習するときの基本画面だ。画面左側に問題、右側にターミナルが表示されている。操作ミスしてやり直したいときは[再起動]でやり直すことができる。
連続して学習したいときは、上のメニューから≡[シナリオ一覧]クリックする。いちいち戻らなくてもよい親切設計になっている。
全体的に学習始めるまでのステップが少ないという感じである。これ以外にも、完了しないまま終了した場合、次にサイトにアクセスした際に案内が表示され、ワンクリックで簡単に移動できるのも親切といえよう。
コースの解説
各コースの学習内容について簡単に解説していこう。
Linux基礎コース
ディレクトリやファイルの基本的な操作から始まって、SSHコマンドと認証まで全27回に渡って学ぶことができるコースだ。基礎コースだけあって非常に学習量が多いといえる。ここで学ぶコマンドはLinuxのディストリビューションに依存したものではなく、Linux標準のコマンドである。どれも重要なものばかりなのでしっかりと学習したい。
1.チュートリアル | 15. Vim入門 |
2. 基本的なコマンド練習(cd/ls/cat編) | 16. ユーザー管理について |
3. 基本的なコマンドの練習(pwd/rm/mkdir/rmdir編) | 17. 権限管理の基本 |
4. 基本的なコマンドの練習(mv/cp編) | 18. 環境変数について |
5. root権限の使い方 | 19. 基本的なコマンドの練習(find編) |
6. 基本的なコマンドの練習(touch編) | 20. 正規表現について |
7. 基本的なコマンドの練習(file編) | 21. 基本的なコマンドの練習(sort/uniq/diff編) |
8. リダイレクトについて | 22. 便利な文字の置き換え方 |
9. 標準入力・標準出力・標準エラー出力 | 23. 基本的なコマンドの練習(cut編) |
10. プロセス管理 – 1 | 24. IPアドレス/Macアドレス |
11. プロセス管理 – 2 | 25. サーバーと通信してみよう |
12. バージョンの確認 | 26. シンボリックリンク |
13. PATHの使い方 | 27. SSHコマンドと認証 |
14. 実行ファイルについて |
Linux応用コース
Linux基礎コースと較べると学習量は少ないが、重要なものばかりである。Linuxを学ぶものにとっては、特にWeb情報の扱い方<GET>、パッケージ管理位、Webサーバーを立ててみよう、Gitの使い方あたりをしっかりとおさえておくとよい。Windowsで簡単に使えていたものが、Linuxでは少し難しくなることが多々あるからだ。たとえば、Gitは、Windowsならインストーラがあるが、Linuxにはなくコマンドでインストールする。しかもバージョンが古すぎるため、安定版や最新版にバージョンアップしなければならないなど手間がかかるのである。
ここでは、ApacheやNginxのインストールが入っていない。理由は推測だが、インストール方法がLinuxのディストリビューションによって異なるためと思われる。インストールしなくてもすでにインストールされているLinuxもある。ただ、ワンラインコマンドで簡単にインストールできるので、興味があるのであれば検索してみるといいだろう。なお、WebサーバーはApacheかNginxのどちらかを選択する。
1. チュートリアル | 7. パッケージ管理入門 |
2. ファイルの転送 | 8. Webサーバーを立ててみよう① – Apache |
3. ゲートウェイと疎通確認 | 9. Webサーバーを立ててみよう② – Nginx |
4. DNSサーバーについて知ろう | 10. Gitの使い方① |
5. ウェブ情報の扱い方<GET> | 11. Gitの使い方② |
6. ウェブ情報の扱い方<POST> | 12. Gitの使い方③ |
Database基礎コース
MySQLのインストールからSQLによるデータベースの操作について学ぶコースである。Linuxでは、WindowsのようにXAMPPをインストールということはまずしない。基本的にLAMP、つまりWebサーバーのApache、データベースのMySQL、プログラミング言語であるPHPをそれぞれコマンドを使って個別にインストールする。さらにいえば、phpMyAdminまでインストールすることもある。
ここでは、コマンドラインからMySQLを起動してデータベースの操作を学ぶことになる。ここでもコマンドラインである。データベースクライアントソフトウェアでもあればいいが、基本的に英語である。それにクライアントソフトを起動して使うよりコマンドによる操作が早い。
データベース操作言語であるSQLを利用してCRUDについて学ぶことができる。CRUDというのは、Create、Read、Update、Deleteのことを指す。SQLにたとえると、INSERT→Create、SELECT→Read、UPDATE→Update、DELETE→Deleteということになる。
データベースについては、データベースエンジニアのスタートアップとして、ここで学ぶ基礎的な学習で十分である。
1. チュートリアル | 8. INSERTの基本 |
2. MySQLの世界へようこそ | 9. UPDATEの基本 |
3. データベースの作成 | 10. DELETEの基本 |
4. データベースの修正と削除 | 11. テーブルの作成 |
5. データベースを使ってみよう | 12. テーブルの修正と削除 |
6. SELECTの基本① | 13. 内部結合にチャレンジ! |
7. SELECTの基本② | 14. 外部結合にチャレンジ! |
セキュリティ基礎コース
Windowsと較べると、Linuxに対するウィルス等の攻撃はWindowsに較べると少ない。それよりもDos/DDosやLDAPインジェクション、ブルートフォースアタックなどにより、WebサーバーやWebサイトが狙われることも多く、セキュリティについて学んでおくことは非常に重要な事項である。このコースは、シーザー暗号とSSHに対する攻撃の2つしかないが、これは仕方がないことである。専門的になってしまうと、基礎を超えてしまうことになる。深い知識と設定を学習することになる。このあたりは、まだできてはいないが応用コースで学ぶことができると思われる。
1. チュートリアル |
2. シーザー暗号について |
3. SSHによる攻撃 |
ターミナルカスタマイズコース
ターミナルにはShellがある。Shellは利用者とLinuxの橋渡しの役目を持つソフトウェアである。Linuxのコマンドを使う上で重要なものである。Shellが動作するにはターミナルというソフトウェアがある。このコースでは、.bashrc、alias、zsh、fzf、tmuxなどを導入してターミナルの利便性を高め、ターミナル操作の使い勝手の向上を図ることを目的としたコースとなっている。一見すると、地味なことに思えるかもしれないが、コマンドを使う上で、ターミナルの使いやすさがモノをいうので習得しておきたいコースではある。
1. チュートリアル | 6. fishを使ってみよう |
2. aliasを設定しよう | 7. shを使いこなそう |
3. zshを使いこなそう | 8. tmuxを使いこなそう |
4. fzfを設定しよう | 9. dotfilesを作ろう |
5. 便利なコマンドを使いこなそう |
最後に
全5コースを紹介してきたが、Linuxを学ぶ上で必要なことを十分に学ぶことができる学習サイトと言える。欲を言わせてもらえば、セキュリティ基礎コースだろう。まだスタートしたばかりなので今後に期待したいところである。コースの少なさを感じるかもしれないが、Linuxについていえば実際はそれほど多く学ぶことはない。サーバーエンジニアになるのなら、Linuxを学ぶ以上にネットワークやサーバー設計・運用・保守など学ぶことが非常に多い。基礎的な知識であれば、ここで紹介したコース内容で十分なのである。
前述したようにEnvaderはLinuxに特化したオンライン学習サイトである。ここで学んだことは、自分のPCにLinuxをインストールしたとしても役に立てることができるものばかりである。今後はぜひLinuxをインストールして、素敵なLinuxライフをおくってほしいと願いつつ紹介を終わる。