はじめに
Web開発の学習を始めると、
npm install
や
git clone
などのコマンドが当たり前のように登場します。
さらに調べていると、
- Linux
- ターミナル
- Ubuntu
- WSL
という言葉も出てきます。
私自身も最初は、
「Linuxって何?」
「Windowsを使っているのに必要なの?」
という状態でした。
今回はLinuxとWSLについて、自分なりに整理してみます。
Linuxとは
LinuxはOS(オペレーティングシステム)の一種です。
OSとは、アプリケーションやハードウェアを管理し、
コンピューターを動かすための基本ソフトウェアです。
普段使われているOSには次のようなものがあります。
- Windows
- macOS
- Linux
なぜWeb開発でLinuxが使われるのか
Web開発ではLinuxがよく利用されています。
理由の一つは、多くのサーバーがLinuxで動いているためです。
例えば、
- AWS
- GCP
- Azure
などのクラウドサービスでもLinuxが広く利用されています。
そのため、開発者もLinux環境に慣れておくメリットがあります。
WSLとは
WSLは
Windows Subsystem for Linux
の略です。
簡単に言うと、
Windows上でLinuxを動かせる仕組み
です。
以前はLinuxを利用するために、
- Linux専用PC
- デュアルブート
- 仮想マシン
などが必要でした。
しかしWSLを利用すると、Windowsを使いながらLinux環境も利用できます。
なぜWindowsユーザーがWSLを使うのか
私も現在はWindows上でWSL(Ubuntu)を利用しています。
例えばNode.jsやGitなどをLinux環境で動かせるため、
技術記事やチュートリアルの手順をそのまま試しやすくなります。
私自身もReactやNext.jsの学習を進める中でWSLを利用するようになりました。
また、
node
npm
git
などもLinux環境で利用できます。
よく使うLinuxコマンド
現在の場所を確認
pwd
ファイル一覧を表示
ls
ディレクトリ移動
cd フォルダ名
フォルダ作成
mkdir sample
ファイル内容表示
cat sample.txt
ファイル検索
find . -name "*.ts"
文字列検索
grep -r "useState" .
WSLを使っていてハマったこと
実際に利用していていくつか詰まったポイントもありました。
git pushが突然失敗した
ある日、
git push
を実行すると、
Missing or invalid credentials.
fatal: Authentication failed
というエラーが発生しました。
原因はWSLではなく、GitHub認証の問題でした。
GitHub CLIを利用して再認証することで解決しました。
詳しい内容は別記事でまとめようと思いますが、
当時は認証が切れていたことが原因でした。
gh auth login
curlが意外と便利だった
APIの動作確認ではThunder Clientを使おうとしていました。
しかし最終的にはcurlを利用することが多くなりました。
GETリクエスト
curl http://localhost:3000/api/health
POSTリクエスト
curl -X POST http://localhost:3000/api/products \
-H "Content-Type: application/json" \
-d '{"name":"りんご"}'
GUIツールがなくても確認できるため便利でした。
code . を知らなかった
最初はVSCodeからフォルダを探して開いていました。
現在はWSLで、
code .
を利用しています。
例えば、
cd ~/dev/web/project
code .
のように実行すると、そのフォルダをVSCodeで開けます。
LinuxとWSLの関係
イメージとしては次のようになります。
Windows
└─ WSL
└─ Ubuntu(Linux)
├─ Node.js
├─ npm
├─ Git
└─ 開発環境
私は現在この環境で、
- React
- Next.js
- TypeScript
などを学習しています。
まとめ
- LinuxはOSの一種
- Web開発ではLinux環境がよく使われる
- WSLを使うとWindows上でLinuxを利用できる
- Linuxコマンドは開発で頻繁に登場する
- GitやNode.jsなどもWSL上で利用できる
最初は難しく感じましたが、実際によく使うコマンドはそれほど多くありません。
私も学習しながら少しずつ慣れてきました。