シェルコマンド横断検索
Linux (bash) / コマンドプロンプト / PowerShell のコマンドを横断比較
比較メモ: cmd では cd を引数なしで実行すると現在のディレクトリが表示される
Rename-ItemRename-Item [-Path] 旧名 [-NewName] 新名
Rename-Item old.txt new.txt
old.txt を new.txt にリネーム
💡 エイリアス: ren, rni
公式ドキュメントNew-Item比較メモ: Linux の touch は既存ファイルのタイムスタンプ更新にもよく使われる
直接対応するコマンドなし
直接対応なし。more コマンドの組み合わせで代替可能
Get-ContentGet-Content ファイル -Tail 行数 [-Wait]
Get-Content log.txt -Tail 10 -Wait
末尾10行をリアルタイム監視
💡 -Wait は tail -f に相当
公式ドキュメント比較メモ: tail -f のリアルタイム監視は Get-Content -Wait で再現可能
findstrfindstr [/オプション] 文字列 ファイル
findstr /s /n "TODO" src\*.txt
src 以下の txt から TODO を検索
💡 /r で正規表現対応
公式ドキュメントSelect-StringGet-ChildItem -Recurse | Select-String -Pattern パターン
Get-ChildItem -Recurse -Filter *.txt src/ | Select-String -Pattern "TODO"
src 以下で TODO を再帰検索
💡 エイリアス: sls。正規表現をデフォルトでサポート
公式ドキュメント比較メモ: grep は正規表現がデフォルト。findstr は /r を付けないとリテラル検索
sed直接対応するコマンドなし
PowerShell や外部ツール(sed for Windows)で代替
-replace(Get-Content ファイル) -replace '旧','新'
(Get-Content file.txt) -replace 'foo','bar' | Set-Content file.txt
file.txt 内の foo を bar に置換
💡 -replace 演算子は正規表現対応
公式ドキュメント比較メモ: sed の -i オプション(in-place)は Linux/macOS で動作が異なる。macOS では -i "" が必要
awkawk '{パターン}' ファイル
awk -F: '{print $1, $3}' /etc/passwdpasswd から ユーザー名とUID を抽出
💡 gawk も広く使われる
公式ドキュメント直接対応するコマンドなし
for /f で簡易的な列処理は可能
ForEach-Objectコマンド | ForEach-Object { $_.プロパティ }
Get-Process | ForEach-Object { "$($_.Name): $($_.CPU)" }プロセス名と CPU 使用率を表示
💡 PowerShell はオブジェクトベースなので列番号ではなくプロパティ名でアクセス
公式ドキュメント比較メモ: awk はテキスト列を番号($1, $2...)で参照。PowerShell はオブジェクトのプロパティ名で参照するため設計思想が異なる
直接対応するコマンドなし
sort の後に findstr や for /f で代替可能だが煩雑
Get-UniqueSort-Object | Get-Unique
Get-Content data.txt | Sort-Object | Get-Unique
ソート後に重複行を削除
💡 Sort-Object -Unique でも可
公式ドキュメント比較メモ: uniq も Get-Unique も事前にソートが必要。Sort-Object -Unique なら1コマンドで完結
find /cMeasure-ObjectGet-Content ファイル | Measure-Object -Line -Word -Character
Get-Content access.log | Measure-Object -Line
access.log の行数を表示
直接対応するコマンドなし
for /f "tokens=1,3 delims=," で代替可能
-splitコマンド | ForEach-Object { ($_ -split '区切り')[インデックス] }
Get-Content data.csv | ForEach-Object { ($_ -split ',')[0,2] -join ',' }CSV の1列目と3列目を抽出
比較メモ: CSV処理には Import-Csv(PowerShell)がより適切。cut はバイト位置指定(-b)も可能
Compare-ObjectCompare-Object (Get-Content ファイル1) (Get-Content ファイル2)
Compare-Object (Get-Content old.txt) (Get-Content new.txt)
行単位で差分を比較
比較メモ: diff は行単位・文字単位の差分を多彩な形式(unified, context 等)で出力可能。fc はシンプルな比較のみ
dir /sGet-ChildItemGet-ChildItem -Path パス -Filter パターン -Recurse
Get-ChildItem -Path C:\Projects -Filter *.log -Recurse
Projects 以下の .log を再帰検索
💡 エイリアス: gci, ls, dir
公式ドキュメント比較メモ: find は名前・サイズ・日付・権限など高度な条件を組み合わせ可能。-exec でマッチしたファイルにコマンド実行も可
xargs直接対応するコマンドなし
for /f で代替: for /f %i in ('command') do command %i
ForEach-Objectコマンド | ForEach-Object { 処理 }
Get-ChildItem -Filter *.tmp | ForEach-Object { Remove-Item $_.FullName }.tmp ファイルを一括削除
💡 エイリアス: %, foreach
公式ドキュメント比較メモ: xargs は並列実行(-P オプション)が可能。PowerShell は ForEach-Object -Parallel(PS 7+)で同様のことが可能
直接対応するコマンドなし
直接対応なし。PowerShell の Tee-Object を使うか、2回実行で代替
Tee-Objectコマンド | Tee-Object -FilePath ファイル
Get-ChildItem | Tee-Object -FilePath filelist.txt
画面に表示しつつ filelist.txt にも保存
💡 エイリアス: tee
公式ドキュメント|コマンド1 | コマンド2
Get-Content log.txt | Select-String ERROR | Measure-Object -Line
ログからERROR行を抽出して行数をカウント
比較メモ: Linux/cmd はテキスト(バイト列)を受け渡す。PowerShell はオブジェクトを受け渡す点が根本的に異なる
Out-File / >>コマンド | Out-File ファイル / コマンド >> ファイル
"log entry" | Out-File -Append app.log
app.log に追記
💡 > は Out-File、>> は Out-File -Append のエイリアス。Add-Content でも追記可能
公式ドキュメント比較メモ: PowerShell の > はデフォルトで UTF-16 出力。UTF-8 にするには Out-File -Encoding utf8 を使う
taskkillStop-ProcessStop-Process -Id PID [-Force]
Stop-Process -Id 12345 -Force
PID 12345 のプロセスを強制終了
💡 エイリアス: kill, spps。-Name でプロセス名指定も可
公式ドキュメント直接対応するコマンドなし
taskmgr(タスクマネージャー GUI)で代替
直接対応するコマンドなし
Get-Process をループで実行して代替: while($true){ Get-Process | Sort CPU -Desc | Select -First 10; Start-Sleep 2; Clear-Host }
比較メモ: htop(Linux)はより見やすいインタラクティブ版。Windows は GUI のタスクマネージャーが標準的
Start-JobStart-Job -ScriptBlock { コマンド }
Start-Job -ScriptBlock { python server.py }サーバーをバックグラウンドジョブとして起動
💡 Receive-Job で結果を取得。& 演算子も PS 7+ で使用可能
公式ドキュメントStart-ProcessStart-Process コマンド [-WindowStyle Hidden]
Start-Process python -ArgumentList "server.py" -WindowStyle Hidden
非表示ウィンドウでプロセスを起動
比較メモ: Linux では tmux や screen も長時間実行のプロセス管理によく使われる
schtasksschtasks /create /tn 名前 /tr コマンド /sc 頻度
schtasks /create /tn "Backup" /tr "backup.bat" /sc daily /st 02:00
毎日2時にバックアップを実行
Register-ScheduledTaskRegister-ScheduledTask -TaskName 名前 -Trigger トリガー -Action アクション
Register-ScheduledTask -TaskName "Backup" -Trigger (New-ScheduledTaskTrigger -Daily -At 2am) -Action (New-ScheduledTaskAction -Execute "backup.ps1")
毎日2時にバックアップを実行
比較メモ: crontab は「分 時 日 月 曜日」の5フィールド形式。schtasks / ScheduledTask はGUIからも設定可能
Test-ConnectionTest-Connection -TargetName ホスト [-Count 回数]
Test-Connection -TargetName google.com -Count 4
google.com に4回 ping を送信
💡 ping エイリアスも使用可能
公式ドキュメント比較メモ: Linux は -c(回数指定しないと無限)、cmd は -n(デフォルト4回)と動作が逆
curlcurlcurl [オプション] URL
curl -s https://api.example.com/data
API を呼び出してレスポンスを表示
💡 Windows 10 以降は curl.exe を同梱
公式ドキュメントInvoke-WebRequestInvoke-WebRequest -Uri URL
(Invoke-WebRequest -Uri https://api.example.com/data).Content
API を呼び出してレスポンス本文を表示
💡 エイリアス: iwr。JSON には Invoke-RestMethod が便利
公式ドキュメント比較メモ: PowerShell の curl は Invoke-WebRequest のエイリアスなので、curl.exe を使いたい場合は curl.exe と明示する
wgetcurlcurl -o ファイル名 URL
curl -o output.zip https://example.com/file.zip
file.zip をダウンロード
💡 bitsadmin でも可能だが非推奨
公式ドキュメントInvoke-WebRequestInvoke-WebRequest -Uri URL -OutFile ファイル名
Invoke-WebRequest -Uri https://example.com/file.zip -OutFile output.zip
file.zip をダウンロード
sshEnter-PSSessionEnter-PSSession -ComputerName ホスト [-Credential ユーザー]
Enter-PSSession -ComputerName Server01
Server01 に PowerShell リモーティングで接続
💡 SSH も使用可能: Enter-PSSession -HostName host -UserName user
公式ドキュメント比較メモ: Enter-PSSession は PowerShell リモーティング(WinRM)。SSH とは別プロトコル。PS 7+ では SSH 経由の PSSession も可能
Copy-ItemCopy-Item -Path ローカル -Destination リモート -ToSession セッション
$s = New-PSSession Server01; Copy-Item -Path file.txt -Destination C:\temp\ -ToSession $s
PSSession 経由でリモートにコピー
💡 scp コマンドも PS から直接使用可能
公式ドキュメントGet-NetTCPConnection比較メモ: Linux では ss(socket statistics)が netstat の後継。Windows では netstat がまだ現役
Get-NetIPAddress比較メモ: Linux では ifconfig は非推奨で ip コマンドが後継。ipconfig /flushdns は DNS キャッシュクリアによく使われる
Resolve-DnsNameResolve-DnsName ドメイン [-Type タイプ]
Resolve-DnsName google.com -Type A
google.com の A レコードを問い合わせ
比較メモ: dig はより詳細な出力で開発者に好まれる。nslookup は全OS共通で使える
[Environment]::OSVersion[System.Environment]::OSVersion
[System.Environment]::OSVersion
OS のバージョン情報を表示
💡 $PSVersionTable で PowerShell バージョンも確認可能
公式ドキュメントGet-DateGet-Date [-Format フォーマット]
Get-Date -Format "yyyy-MM-dd HH:mm:ss"
2026-04-12 15:30:00 のような形式で表示
比較メモ: date コマンドのフォーマット指定子は Linux(%Y)と PowerShell(yyyy)で異なる
export$env:$env:変数名 = "値"
$env:API_KEY = "abc123"
API_KEY 環境変数を設定
💡 現在のセッションのみ有効。永続化は [Environment]::SetEnvironmentVariable() を使用
公式ドキュメント比較メモ: いずれもセッション限定。永続化するには Linux は .bashrc、cmd は setx、PS は [Environment]::SetEnvironmentVariable を使う
直接対応するコマンドなし
systeminfo | find "Memory" でメモリ情報を取得可能
Get-CimInstanceGet-CimInstance Win32_OperatingSystem | Select *Memory*
Get-CimInstance Win32_OperatingSystem | Select FreePhysicalMemory,TotalVisibleMemorySize
物理メモリの合計と空き容量を表示
wmicwmic logicaldisk get size,freespace,caption
wmic logicaldisk get size,freespace,caption
各ドライブのサイズと空き容量を表示
💡 wmic は非推奨。PowerShell の Get-PSDrive を推奨
公式ドキュメントGet-PSDriveSet-AclSet-Acl -Path パス -AclObject ACL
$acl = Get-Acl file.txt; $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Everyone","Read","Allow"); $acl.SetAccessRule($rule); Set-Acl file.txt $aclEveryone に読み取り権限を付与
比較メモ: Linux は数値(755)やシンボリック(u+x)で簡潔に指定可能。Windows の ACL はより細かい制御ができるが記述が複雑
chownchown [ユーザー]:[グループ] ファイル
chown www-data:www-data /var/www/html
Web ディレクトリの所有者を www-data に変更
Set-Acl$acl = Get-Acl パス; $acl.SetOwner(ユーザー); Set-Acl パス $acl
$acl = Get-Acl file.txt; $acl.SetOwner([System.Security.Principal.NTAccount]"DOMAIN\User"); Set-Acl file.txt $acl
所有者を変更
比較メモ: takeown は自分自身への所有権取得のみ。他ユーザーへの変更は icacls や Set-Acl が必要
runasStart-ProcessStart-Process コマンド -Verb RunAs
Start-Process powershell -Verb RunAs
管理者権限で新しい PowerShell を起動
比較メモ: Linux は sudo で現在のシェルから昇格可能。Windows は新しいプロセスを管理者として起動する方式
useraddNew-LocalUserNew-LocalUser -Name 名前 -Password (ConvertTo-SecureString パスワード -AsPlainText -Force)
New-LocalUser -Name "newuser" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)
新しいローカルユーザーを追加
tartar [オプション] アーカイブ名 [ファイル...]
tar czf backup.tar.gz ./project/
project ディレクトリを gzip 圧縮して tar 作成
tartar [オプション] アーカイブ名 [ファイル...]
tar czf backup.tar.gz project\
project ディレクトリを tar.gz 作成
💡 Windows 10 以降で利用可能(bsdtar 同梱)
公式ドキュメント直接対応するコマンドなし
tar.exe は PowerShell からも呼び出せるが、ネイティブ cmdlet はなし。Compress-Archive は ZIP のみ対応
比較メモ: Linux の tar は gzip/bzip2/xz 圧縮を統合。Windows の tar は Windows 10 (1803) 以降で同梱
zip直接対応するコマンドなし
PowerShell の Compress-Archive か、tar -a -cf archive.zip で代替
Compress-ArchiveCompress-Archive -Path 元パス -DestinationPath ZIP名
Compress-Archive -Path ./project/ -DestinationPath backup.zip
project ディレクトリを ZIP 圧縮
unzip直接対応するコマンドなし
PowerShell の Expand-Archive か、tar -xf archive.zip で代替
Expand-ArchiveExpand-Archive -Path ZIP名 -DestinationPath 展開先
Expand-Archive -Path backup.zip -DestinationPath ./restore/
restore ディレクトリに展開
直接対応するコマンドなし
dir /s で合計サイズは表示されるが個別ディレクトリのサイズ比較は困難
Get-ChildItem + Measure-Object(Get-ChildItem -Recurse パス | Measure-Object Length -Sum).Sum
(Get-ChildItem -Recurse ./logs | Measure-Object Length -Sum).Sum / 1MB
logs ディレクトリの合計サイズを MB で表示
比較メモ: du -sh は最も簡潔。PowerShell ではパイプラインで計算する必要がある
mklinkmklink [/d] リンク名 リンク先
mklink app.log C:\var\log\app.log
app.log へのシンボリックリンクを作成
💡 管理者権限が必要(開発者モード有効時は不要)
公式ドキュメントNew-ItemNew-Item -ItemType SymbolicLink -Path リンク名 -Target リンク先
New-Item -ItemType SymbolicLink -Path app.log -Target C:\var\log\app.log
app.log へのシンボリックリンクを作成
💡 管理者権限が必要(開発者モード有効時は不要)
公式ドキュメント比較メモ: Windows ではシンボリックリンク作成に管理者権限または開発者モードが必要。Linux では一般ユーザーで作成可能
Get-HistoryGet-History [-Count 件数]
Get-History | Select-String git
git 関連のコマンド履歴を検索
💡 エイリアス: h, history。PSReadLine で永続化される
公式ドキュメント比較メモ: Linux の history は .bash_history に永続保存。cmd の doskey /history はセッション限り。PS は PSReadLine モジュールで永続化
aliasdoskeySet-AliasSet-Alias -Name 別名 -Value コマンド
Set-Alias -Name ll -Value Get-ChildItem
ll で Get-ChildItem を実行できるように設定
💡 永続化は $PROFILE に記述。引数付きエイリアスは function で定義
公式ドキュメントbash / ./script.shbash スクリプト名 / ./スクリプト名
bash deploy.sh
deploy.sh を bash で実行
💡 実行権限(chmod +x)を付ければ ./script.sh で直接実行可能
公式ドキュメント.\script.ps1比較メモ: PowerShell はセキュリティのためデフォルトでスクリプト実行が制限されている。Set-ExecutionPolicy RemoteSigned で解除可能
直接対応するコマンドなし
Windows のバッチファイル(.bat/.cmd)は実行権限の概念がない
Set-ExecutionPolicySet-ExecutionPolicy ポリシー [-Scope スコープ]
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
現在のユーザーに対してローカルスクリプトの実行を許可
💡 Restricted(デフォルト)→ RemoteSigned が推奨
公式ドキュメント比較メモ: Linux はファイル単位の実行権限。PowerShell はシステム/ユーザー単位の実行ポリシーで制御する
よくある質問
Linux・コマンドプロンプト・PowerShell の違いは何ですか?
Linux シェル(bash/zsh)は macOS/Linux で使われる標準シェルです。コマンドプロンプト(cmd)は Windows に古くから搭載されている CUI 環境で、バッチファイル(.bat)を実行できます。PowerShell は Microsoft が開発した高機能シェルで、オブジェクトベースのパイプラインが特徴です。Windows 10 以降では PowerShell が標準となりつつあります。
コマンドプロンプト(cmd)はまだ使われていますか?
はい、Windows のバッチファイル(.bat/.cmd)は企業の自動化スクリプトとして現在も広く使われています。レガシーシステムとの互換性維持のため、cmd を使い続けている現場は多数あります。ただし、新規開発では PowerShell への移行が推奨されています。
PowerShell のエイリアスとは何ですか?
PowerShell では ls(Get-ChildItem)、cat(Get-Content)、rm(Remove-Item)など、Linux コマンドに似たエイリアスが多数定義されています。これにより Linux に慣れたユーザーが移行しやすくなっていますが、動作は PowerShell のネイティブ cmdlet に準じるため、完全に同じ挙動ではありません。
Windows で Linux コマンドを使う方法はありますか?
WSL(Windows Subsystem for Linux)を利用すれば、Windows 上で Linux シェル環境を使えます。また、Git for Windows に付属する Git Bash でも基本的な Linux コマンドが使えます。PowerShell にも ls, cat, rm 等の Linux 風エイリアスがあります。
データはいつ更新されますか?
最終更新日: 2026-04-12。各シェルの主要コマンドを網羅的に掲載しています。新しいコマンドや変更があれば随時更新します。
難易度はどのように決まりますか?
「基本」は最初に覚えるべき必須コマンド、「中級」は日常的に使う実用コマンド、「応用」は特定の場面で役立つ上級コマンドです。まずは「基本」から覚えるのがおすすめです。
Linux のコマンドと PowerShell のコマンドはどう違いますか?
根本的な違いはパイプラインの仕組みです。Linux のパイプ(|)はテキスト(バイト列)を次のコマンドに渡しますが、PowerShell のパイプはオブジェクト(構造化データ)を渡します。そのため PowerShell では grep のようなテキストパターンマッチではなく、プロパティ名でデータにアクセスする設計になっています。
開発者ツール一覧
すべて見るAWS・GCP・Azure サービスマッピング
AWS / GCP / Azure の同等サービスを横断検索・比較。クラウド移行・マルチクラウド設計に。
使う →
AIコーディングアシスタント コマンド検索
Claude Code・Codex CLIのスラッシュコマンドを横断検索・比較。カテゴリ・重要度フィルター付き。
使う →
CI/CD設定構文 横断比較
GitHub Actions・GitLab CI・CircleCI・AWS CodeBuildの設定構文を「やりたいこと」で逆引き横断比較。移行・転職時に便利。
使う →
JSON整形・検証
JSONを整形・フォーマット。構文エラーも検出。コピーボタン付き。
使う →
このツールについて
使い方
- 検索欄にコマンド名(例: grep)や操作内容(例: ファイル削除)を入力する
- 「Linux」「cmd」「PowerShell」のフィルターで見たいシェルに絞り込む
- カテゴリドロップダウンでファイル操作・ネットワーク等の種類別に絞り込む
- 難易度フィルター(基本・中級・応用)で自分のレベルに合ったコマンドを探す
このツールの特徴
- ✓3つのシェル環境を横断比較:Linux (bash)・コマンドプロンプト・PowerShell の同じ操作に対応するコマンドを並べて表示します。OS間の移行や併用時に「あのコマンド、このOSではなんだっけ?」をすぐ解決できます
- ✓「やりたいこと」から逆引き:「ファイル一覧を表示したい」「プロセスを終了したい」など、操作の目的からコマンドを検索できます
- ✓構文と実行例をセットで掲載:各コマンドに基本構文(syntax)と具体的な実行例を掲載しているため、コピー&ペーストですぐ使えます
- ✓公式ドキュメントへのリンク付き:man ページ(Linux)、Microsoft Docs(cmd/PowerShell)への直リンクで、詳細な仕様をすぐ確認できます
- ✓比較メモで違いを解説:同名コマンドでもOS間で動作が異なる箇所(例: ping の回数指定オプション)を比較メモで補足しています
こんなときに便利
- •Linux に慣れていて、Windows(cmd/PowerShell)での対応コマンドを知りたい
- •Windows から macOS/Linux に移行して、対応するコマンドを探している
- •コマンドプロンプトから PowerShell に移行したい
- •クロスプラットフォームのスクリプトを書く際に、各OS での書き方を確認したい
- •「ls に相当する Windows コマンドは?」のような疑問をすぐ解決したい
なぜ「シェルコマンド横断検索」が必要なのか
開発者は日常的に複数の OS 環境を行き来しています。ローカル開発は macOS、CI/CD は Linux、社内ツールは Windows——こうした環境で「grep に相当するコマンドは cmd だと findstr、PowerShell だと Select-String」といった知識が必要になりますが、毎回検索するのは非効率です。
既存のコマンドリファレンスは「Linux コマンド一覧」「PowerShell コマンドレット一覧」のように単一のシェル環境に特化したものがほとんどです。3つのシェル環境を横断的に比較し、「やりたい操作」をキーにしてコマンドを逆引きできるツールはほとんど存在しません。
このツールは「操作の目的」を起点に、3つのシェル環境のコマンドを一覧比較することで、OS間の移行コストを最小化することを目指しています。
各シェル環境の概要
- •Linux シェル(bash / zsh):macOS と Linux の標準シェル。テキスト処理に強く、パイプラインで小さなコマンドを組み合わせる「UNIX 哲学」に基づいた設計です。シェルスクリプト(.sh)で自動化できます。
- •コマンドプロンプト(cmd.exe):Windows に古くから搭載されている CUI 環境。MS-DOS 時代からの互換性を維持しており、バッチファイル(.bat / .cmd)による自動化が可能です。機能は限定的ですが、企業の既存スクリプトで現在も広く使われています。
- •PowerShell:Microsoft が開発した次世代シェル。最大の特徴はオブジェクトベースのパイプラインで、コマンドの出力をテキストではなく構造化されたオブジェクトとして受け渡します。.NET フレームワークと統合されており、Windows 管理タスクに特に強力です。PowerShell 7 以降はクロスプラットフォーム対応で macOS/Linux でも動作します。