Linuxコマンド入門(WSL2ユーザー向け)— 基本操作をすぐ使える形で解説
WSL2を入れてUbuntuの画面が開いたものの、何から打てばいいか分からない、という段階の人向けにコマンドをまとめました。GUIのファイルエクスプローラーに慣れていると、黒い画面でファイルを操作する感覚がつかみにくいと思います。ここではファイル操作・検索・権限・パッケージ管理という4つのジャンルに絞って、実際に使う形で紹介します。
ディレクトリとファイルの基本操作
まず自分が今どこにいるか確認します。
pwd
現在のディレクトリ(フォルダ)にあるファイル一覧を見るには”ls”を使います。
ls
ドットファイル(.bashrcなど先頭が.のファイル)を含めた詳細表示は”-la”を付けます。
ls -la
“-l”がファイルサイズや権限などの詳細表示、“-a”が隠しファイル表示です。組み合わせて使うことが多いので、まずはこの形で覚えておくと便利です。
ディレクトリを移動するには”cd”を使います。
cd Documents
一つ上の階層に戻る場合は次の通りです。
cd ..
自分のホームディレクトリに戻りたいときは、引数なしの”cd”だけで戻れます。
cd
新しいディレクトリを作るには”mkdir”を使います。深い階層をまとめて作りたい場合は”-p”を付けます。
mkdir -p project/src/components
“-p”を付けないと、途中の階層(この例では”project”や”project/src”)が存在しない場合にエラーになります。
ファイルのコピー・移動・削除
ファイルをコピーするには”cp”を使います。
cp file.txt backup.txt
ディレクトリごとコピーする場合は”-r”(再帰的)を付けます。
cp -r project project_backup
ファイルやディレクトリを移動・リネームするには”mv”を使います。コピー元とコピー先の名前が違えば、移動ではなくリネームとして働きます。
mv old_name.txt new_name.txt
削除は”rm”です。ディレクトリを削除する場合は”-r”を付けます。
rm file.txt
rm -r old_project
“rm”には確認プロンプトがなく、ゴミ箱にも入らずに即座に消えます。特に”-r”と”-f”(強制)を同時に使う”rm -rf”は、指定したパスを問答無用で削除するため、実行前にパスを目視で確認する習慣をつけておくと安心です。
ファイルの中身を見る
ファイルの中身をそのまま表示するには”cat”を使います。
cat README.md
ファイルが長くて画面に収まらない場合は”less”を使うと、スクロールしながら読めます。“q”キーで終了します。
less README.md
ファイルの先頭・末尾だけを見たいときは”head”と”tail”です。デフォルトはどちらも10行です。
head -20 access.log
tail -20 access.log
ログファイルなどをリアルタイムで監視したいときは、“tail”に”-f”を付けます。新しく書き込まれた行がその都度表示され続けます。
tail -f access.log
検索する — grepとfind
ファイルの中身から特定の文字列を探すには”grep”を使います。
grep "error" access.log
よく使うオプションの組み合わせは次の通りです。
grep -rni "error" ./logs
“-r”はディレクトリ内を再帰的に検索、“-n”はマッチした行番号を表示、“-i”は大文字小文字を区別しません。ログ調査やコード内の文字列検索でこの3つを組み合わせる場面が多いです。
ファイル自体を名前で探すには”find”を使います。
find . -name "*.log"
カレントディレクトリ(”.”)以下から、拡張子が”.log”のファイルをすべて探します。
権限管理 — chmodとchown
Linuxではファイルごとに読み取り(r)・書き込み(w)・実行(x)の権限が、所有者・グループ・その他の3種類に分かれて設定されています。権限を変更するには”chmod”を使います。
シェルスクリプトに実行権限を付ける場合は次のようにします。
chmod +x script.sh
数値指定もよく使われます。755はよく使う組み合わせで、所有者に読み書き実行、グループとその他に読み取りと実行を許可します。
chmod 755 script.sh
644は、所有者に読み書き、グループとその他に読み取りのみを許可する設定で、実行不要な通常ファイルによく使われます。
chmod 644 config.txt
ファイルの所有者を変更するには”chown”を使いますが、こちらは管理者権限が必要です。
sudo chown user:group file.txt
パッケージ管理 — apt
Ubuntuではソフトウェアのインストールに”apt”を使います。まずパッケージ一覧を最新化します。
sudo apt update
その上でインストール済みパッケージを最新版にアップグレードします。
sudo apt upgrade -y
新しいソフトウェアをインストールする場合は次の形です。
sudo apt install パッケージ名
“sudo”は管理者権限でコマンドを実行するためのもので、システムに影響する操作(パッケージのインストールや削除、システムファイルの変更など)を行うときに必要になります。パスワードを求められた場合は、WSL2内で設定したUbuntuユーザーのパスワードを入力します。
プロセスの確認と終了
現在動いているプロセスを確認するには”ps”を使います。
ps aux
リアルタイムでCPU・メモリ使用率の高いプロセスを見たい場合は”top”を使います。“q”キーで終了します。
top
応答しなくなったプロセスを終了するには”kill”を使います。まず”ps aux”などでプロセスIDを確認し、そのIDを指定します。
kill プロセスID
WindowsとLinuxのパス表記の違い
WSL2を使う上でつまずきやすいのが、パス表記の違いです。Windows側では”C:\Users\ユーザー名”のようにバックスラッシュ区切りで表記しますが、Linux側では”/mnt/c/Users/ユーザー名”のようにスラッシュ区切りで、ドライブレターは”/mnt/c”のようにマウントされた形になります。
Linux側のホームディレクトリ(“/home/ユーザー名”)は、Windows側のCドライブとは別の場所にあります。Windows側からLinuxのファイルにアクセスする場合は、エクスプローラーのアドレスバーに”\wsl$“と入力すると一覧が表示されます。
日常的な開発作業では、WindowsのファイルをそのままLinux側で編集するより、Linux側のホームディレクトリ内で作業したほうが動作が速くなります。この違いは、ファイルシステムをまたぐアクセスに追加のオーバーヘッドが発生するためです。
まとめ
ここで紹介したコマンドは、WSL2やLinuxを日常的に使う上でまず押さえておきたいものです。最初はオプションの意味を毎回調べることになると思いますが、“ls -la”や”grep -rni”のようによく使う組み合わせは自然と手が覚えていきます。困ったときは各コマンドに”—help”を付けると簡単な使い方が表示されるので、合わせて活用してください。