Windowsで使えるLinuxコマンド

Linux

「プログラミングの勉強でLinuxコマンドを覚えたい」
「エンジニアの仕事でLinuxスキルが必要になった」
「サーバー管理の勉強をしているけれど、Linuxは難しそう」
「Windowsを使いながらLinuxの操作も学びたい」

こんな理由でLinuxコマンドを学びたいと思ったことはありませんか?

実は、Windows を使いながらLinuxコマンドを実際に試すことができる環境があります。

この記事では、Windows でLinuxコマンドを使う方法と、覚えておくと便利な基本的なコマンドをわかりやすく詳しく説明します。

スポンサーリンク

WindowsでLinuxコマンドを使う方法

方法1:Windows Subsystem for Linux(WSL)

WSLとは
WSL(Windows Subsystem for Linux)は、Microsoft が開発した技術で、Windows 上でLinuxのコマンドライン環境をネイティブに実行できる仕組みです。

WSLの特徴

  • 軽量で高速な動作
  • Windows ファイルシステムとの連携
  • 本格的なLinux環境を提供
  • 開発ツールの豊富なサポート

WSL1とWSL2の違い

  • WSL1:システムコールをWindows APIに変換
  • WSL2:実際のLinuxカーネルを仮想化(推奨)

WSL2のインストール手順

事前要件の確認

  • Windows 10(ビルド19041以降)またはWindows 11
  • 管理者権限でのアクセス
  • 仮想化機能が有効(通常は自動で有効化)

簡単インストール(Windows 11/Windows 10 最新版)

  1. 管理者権限でPowerShellまたはコマンドプロンプトを開く
  2. 以下のコマンドを実行:
wsl --install
  1. コンピューターを再起動
  2. 自動的にUbuntuがインストールされ、初期設定画面が表示される

手動インストール(古いWindows 10)

  1. 「設定」→「アプリ」→「プログラムと機能」→「Windowsの機能の有効化または無効化」
  2. 以下の項目にチェックを入れる:
    • Windows Subsystem for Linux
    • 仮想マシンプラットフォーム
  3. コンピューターを再起動
  4. Microsoft Store からLinuxディストリビューションをダウンロード

おすすめのLinuxディストリビューション

  • Ubuntu:最も人気で初心者におすすめ
  • Ubuntu 20.04 LTS:安定版を重視する場合
  • Debian:軽量でシンプル
  • openSUSE:企業環境に近い体験

初期設定の実行

ユーザーアカウントの作成

  1. インストールしたLinuxディストリビューションを起動
  2. 初回起動時に以下を設定:
    • ユーザー名:英数字とハイフン、アンダースコアのみ使用可能
    • パスワード:入力時は画面に表示されない(セキュリティ機能)
    • パスワード確認:同じパスワードを再入力

システムの更新

sudo apt update && sudo apt upgrade -y

最新のパッケージ情報を取得し、システムを更新

方法2:Git Bash

Git for Windows に含まれるBashシェル プログラミングでGitを使用している場合、Git Bashが利用できます。

特徴

  • 軽量で起動が早い
  • 基本的なLinuxコマンドが使用可能
  • Gitコマンドとの親和性が高い
  • WSLより機能は限定的だが学習には十分

方法3:PowerShell でのLinux風コマンド

Windows PowerShell の活用 PowerShell には、Linuxコマンドに似たエイリアス(別名)が設定されています。

利用可能なLinux風コマンド

ls       # Get-ChildItem のエイリアス
cat      # Get-Content のエイリアス
pwd      # Get-Location のエイリアス
cd       # Set-Location のエイリアス

基本的なLinuxコマンド一覧

ファイル・ディレクトリ操作

ls – ファイル一覧表示

ls                    # 基本的な一覧表示
ls -l                 # 詳細情報付きで表示
ls -la                # 隠しファイルも含めて詳細表示
ls -lh                # ファイルサイズを人間が読みやすい形式で表示

使用例と説明

# 現在のディレクトリのファイル一覧
ls

# 結果例
Documents  Downloads  Pictures  Videos

cd – ディレクトリ移動

cd /home/username     # 絶対パスで移動
cd Documents         # 相対パスで移動
cd ..                # 一つ上のディレクトリに移動
cd ~                 # ホームディレクトリに移動
cd -                 # 直前のディレクトリに戻る

pwd – 現在のディレクトリ表示

pwd
# 結果例: /home/username/Documents

mkdir – ディレクトリ作成

mkdir new_folder              # 新しいフォルダを作成
mkdir -p path/to/deep/folder  # 深い階層のフォルダを一度に作成

rmdir – 空のディレクトリ削除

rmdir empty_folder    # 空のフォルダを削除

ファイル操作コマンド

touch – 空ファイルの作成

touch newfile.txt           # 空のファイルを作成
touch file1.txt file2.txt   # 複数のファイルを一度に作成

cp – ファイル・ディレクトリのコピー

cp file1.txt file2.txt      # ファイルをコピー
cp file1.txt /path/to/dest/ # ファイルを指定ディレクトリにコピー
cp -r folder1 folder2       # ディレクトリを再帰的にコピー

mv – ファイル・ディレクトリの移動・名前変更

mv oldname.txt newname.txt  # ファイル名を変更
mv file.txt /path/to/dest/  # ファイルを移動
mv folder1 folder2          # ディレクトリを移動・名前変更

rm – ファイル・ディレクトリの削除

rm file.txt              # ファイルを削除
rm -i file.txt           # 削除前に確認
rm -r folder             # ディレクトリを再帰的に削除
rm -rf folder            # 強制的に削除(注意して使用)

ファイル内容の表示・編集

cat – ファイル内容の表示

cat file.txt             # ファイル全体を表示
cat file1.txt file2.txt  # 複数ファイルを連結して表示

less/more – ページ単位でファイル表示

less large_file.txt      # 大きなファイルをページ単位で表示
# q キーで終了、スペースキーで次ページ

head/tail – ファイルの先頭・末尾表示

head -n 10 file.txt      # ファイルの最初の10行を表示
tail -n 5 file.txt       # ファイルの最後の5行を表示
tail -f log_file.txt     # ファイルの末尾をリアルタイム監視

nano/vim – テキストエディター

nano file.txt            # 初心者向けエディター
vim file.txt             # 高機能エディター(習得に時間が必要)

検索・フィルタリング

grep – テキスト検索

grep "search_term" file.txt        # ファイル内の文字列を検索
grep -i "search_term" file.txt     # 大文字小文字を区別しない検索
grep -r "search_term" /path/       # ディレクトリ内を再帰的に検索
grep -n "search_term" file.txt     # 行番号付きで表示

find – ファイル・ディレクトリ検索

find /path -name "*.txt"           # 拡張子.txtのファイルを検索
find /path -type f -name "test*"   # "test"で始まるファイルを検索
find /path -type d -name "temp*"   # "temp"で始まるディレクトリを検索

which – コマンドの場所を確認

which python3           # python3コマンドの場所を表示
which git               # gitコマンドの場所を表示

システム情報・管理

ps – 実行中のプロセス表示

ps                       # 現在のユーザーのプロセスを表示
ps aux                   # すべてのプロセスを詳細表示
ps aux | grep python     # pythonに関連するプロセスを検索

top/htop – システム監視

top                      # リアルタイムでプロセス監視
htop                     # より見やすいプロセス監視(要インストール)

df – ディスク使用量確認

df -h                    # 人間が読みやすい形式でディスク使用量表示

du – ディレクトリサイズ確認

du -sh /path/to/dir      # 指定ディレクトリのサイズを表示
du -sh *                 # 現在ディレクトリ内の各項目のサイズ表示

free – メモリ使用量確認

free -h                  # メモリ使用量を人間が読みやすい形式で表示

権限・ユーザー管理

sudo – 管理者権限でコマンド実行

sudo apt update          # 管理者権限でパッケージ情報を更新
sudo nano /etc/hosts     # 管理者権限でシステムファイルを編集

chmod – ファイル権限変更

chmod 755 script.sh     # ファイルに実行権限を付与
chmod +x script.sh      # より簡単な実行権限付与方法

chown – ファイル所有者変更

sudo chown user:group file.txt  # ファイルの所有者とグループを変更

パッケージ管理コマンド(Ubuntu/Debian)

apt コマンドの基本

パッケージの更新

sudo apt update          # パッケージリストを更新
sudo apt upgrade         # インストール済みパッケージを更新
sudo apt update && sudo apt upgrade -y  # 両方を一度に実行

パッケージのインストール・削除

sudo apt install package_name    # パッケージをインストール
sudo apt remove package_name     # パッケージを削除
sudo apt purge package_name      # 設定ファイルも含めて完全削除

パッケージの検索・情報確認

apt search keyword               # パッケージを検索
apt show package_name           # パッケージの詳細情報を表示
apt list --installed           # インストール済みパッケージの一覧

よく使うパッケージのインストール例

開発ツール

sudo apt install git curl wget  # 基本的な開発ツール
sudo apt install build-essential # コンパイラやmakeなど
sudo apt install python3 python3-pip  # Python開発環境

テキスト処理ツール

sudo apt install vim neovim     # 高機能エディター
sudo apt install htop tree      # システム監視とディレクトリ表示

パイプとリダイレクション

パイプ(|)の使用

コマンドの出力を次のコマンドの入力に渡す

ls -la | grep ".txt"            # ファイル一覧から.txtファイルのみ表示
cat large_file.txt | grep "error" # ファイル内容からerrorを含む行を検索
ps aux | grep python            # pythonプロセスのみを表示

複数のパイプを組み合わせ

cat /var/log/syslog | grep "error" | head -10  # エラーログの最初の10行

リダイレクション(>、>>、<)

出力のリダイレクション

ls -la > file_list.txt          # ファイル一覧を新しいファイルに保存
echo "Hello World" >> log.txt   # テキストを既存ファイルに追記

入力のリダイレクション

sort < unsorted_file.txt        # ファイルの内容をソートして表示

実践的な使用例

開発作業での活用

プロジェクトディレクトリの作成

mkdir -p ~/projects/my-app/src
cd ~/projects/my-app
touch README.md
echo "# My App" > README.md

Gitでのバージョン管理

git init                        # Gitリポジトリを初期化
git add .                       # すべてのファイルをステージング
git commit -m "Initial commit"  # 初回コミット

ログファイルの監視

tail -f /var/log/apache2/error.log | grep "404"  # 404エラーをリアルタイム監視

システム管理での活用

ディスク容量の確認

df -h | grep -v tmpfs           # 一時ファイルシステムを除外してディスク使用量表示
du -sh /home/* | sort -hr       # ホームディレクトリ内をサイズ順で表示

プロセス管理

ps aux | grep -v grep | grep python  # pythonプロセスを表示(grepプロセス自体は除外)

ネットワーク確認

ping -c 4 google.com            # Googleに4回pingを送信
curl -I https://example.com     # HTTPヘッダー情報のみを取得

よくある問題と解決方法

WSL関連のトラブル

WSLが起動しない場合

# PowerShellで実行
wsl --status                    # WSLの状態を確認
wsl --shutdown                  # WSLを完全停止
wsl --list --verbose            # インストール済みディストリビューションを確認

Ubuntuが応答しない場合

wsl --terminate Ubuntu          # 特定のディストリビューションを終了
wsl --restart Ubuntu            # 再起動

権限関連のエラー

Permission denied エラー

# ファイルの権限を確認
ls -la filename

# 実行権限を付与
chmod +x filename

# 管理者権限で実行
sudo command_name

ファイルアクセスの問題

# ファイルの所有者を確認
ls -la filename

# 所有者を変更(必要に応じて)
sudo chown $USER:$USER filename

パッケージ管理のエラー

apt update エラー

# キャッシュをクリア
sudo apt clean
sudo apt autoclean

# パッケージリストを再取得
sudo apt update --fix-missing

依存関係の問題

# 壊れた依存関係を修復
sudo apt --fix-broken install

# 不要なパッケージを削除
sudo apt autoremove

ベストプラクティス

よく使うコマンドの組み合わせ

ファイル検索と処理

find /path -name "*.log" -exec grep "error" {} \;  # ログファイルからエラーを検索

システム情報の収集

uname -a && cat /etc/os-release  # システム情報とOS情報を表示

開発環境のセットアップ

sudo apt update && sudo apt install -y git curl python3 python3-pip nodejs npm

セキュリティの注意点

危険なコマンドの理解

rm -rf /                        # 絶対に実行してはいけない(システム全体を削除)
sudo rm -rf /*                  # 同様に危険
chmod 777 -R /                  # セキュリティリスクが高い

安全な実行のための確認

  • コマンドを実行前に意味を理解する
  • 重要なファイルは事前にバックアップ
  • 不明なスクリプトは内容を確認してから実行
  • 管理者権限(sudo)は慎重に使用

まとめ

重要なポイント

  • WSL2の導入で本格的なLinux環境をWindows上で実現
  • 基本的なファイル操作コマンドから段階的に学習
  • パイプとリダイレクションでコマンドの組み合わせを習得
  • 実際のプロジェクトで積極的に活用して経験を積む

効果的な学習方法

  • 毎日少しずつ新しいコマンドを覚える
  • 実際の作業でコマンドラインを使う習慣をつける
  • エラーを恐れずに試行錯誤する
  • オンラインリソースやコミュニティを活用する

コメント

タイトルとURLをコピーしました