pipipipi.net

pipipipi.net

約5分で読めます

Linuxコマンド入門(WSL2ユーザー向け)— 基本操作をすぐ使える形で解説

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”を付けると簡単な使い方が表示されるので、合わせて活用してください。

関連記事