Windows、Mac、Linuxでターミナルを使うとき、最初に必要になるのは意外と単純です。
- 今どこにいるか
- ここに何があるか
- 別の場所へどう移動するか
この3つです。
同じ目的でも、Windows PowerShellとmacOS/Linuxでは少し考え方が違います。
今回扱うのは次の基本操作です。
| やりたいこと | Windows PowerShell | macOS | Linux |
|---|---|---|---|
| 現在地を確認 | Get-Location |
pwd |
pwd |
| ファイル一覧 | Get-ChildItem |
ls |
ls |
| 移動 |
Set-Location / cd
|
cd |
cd |
| 1つ上へ | cd .. |
cd .. |
cd .. |
| ホームへ | cd ~ |
cd ~ |
cd ~ |
macOSではTerminal.appなどのターミナルアプリから、現在は標準で主にzshを使います。Linuxではbashなどのshellがよく使われます。
まず押さえたいのは、
Terminalは画面を提供するアプリで、shellはそこでコマンドを解釈するもの
という違いです。
1. Windows PowerShellで「今いる場所」を確認する
PowerShellでは、
Get-Location
を使います。
例えば、
Path
----
C:\Users\user\Documents
のように表示されます。
PowerShellでは、Get-Location のような Verb-Noun形式のコマンドレット が基本です。
名前を見ると、
-
Get= 取得する -
Location= 場所
なので、「現在地を取得する」と意味を推測しやすくなっています。
2. Mac / Linuxでは pwd
macOSやLinuxでは、
pwd
を使います。
例えばMacなら、
/Users/user/Documents
Linuxなら、
/home/user/Documents
のように表示されます。
pwd は、
print working directory
の略です。
つまり、
今作業しているディレクトリを表示する
という意味です。
3. ファイル一覧を見る
次に、
今いる場所に何があるか
を確認します。
Windows PowerShell
PowerShellでは、
Get-ChildItem
です。
例えば、
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2026/10/06 19:00 project
-a--- 2026/10/06 18:30 521 memo.txt
のように表示されます。
PowerShellでは、ファイルやフォルダを「現在の場所の子要素」として扱うため、Get-ChildItem という名前になっています。
PowerShellでも ls が使える
PowerShellで、
ls
を入力しても一覧が表示されます。
これはPowerShellで ls が Get-ChildItem へのaliasとして扱われるためです。
つまり、
Get-ChildItem
と、
ls
は同じように見えます。
ただし、ここで注意したいのは、
PowerShellの
lsとUnix系のlsは、名前が同じでも内部的には同じコマンドではない
ということです。
PowerShellでは基本的にオブジェクトを扱います。
macOS/Linuxの ls はUnix系コマンドとしてテキスト形式の出力を返します。
初心者のうちは、
Windows PowerShell
→ Get-ChildItem
Mac / Linux
→ ls
と覚えておくと違いを意識しやすいです。
4. Mac / Linuxでファイル一覧を見る
macOS/Linuxでは、
ls
です。
例えば、
Documents
Downloads
project
memo.txt
のように表示されます。
詳細も見たい場合は、
ls -l
とします。
隠しファイルも含めたいなら、
ls -a
です。
両方なら、
ls -la
とできます。
5. 別のフォルダへ移動する
次にディレクトリ移動です。
Windows PowerShell
PowerShell本来のコマンドレットなら、
Set-Location Documents
です。
ただし、実務では、
cd Documents
もよく使います。
cd はPowerShellで Set-Location のaliasとして利用できます。
Mac / Linux
macOS/Linuxでも、
cd Documents
です。
ここは見た目が同じなので分かりやすいです。
ただしWindows PowerShellでは、
cd
→ Set-Locationへのalias
Mac/Linuxでは、
cd
→ shell builtin
という違いがあります。
操作上は似ていますが、内部の仕組みは同じではありません。
6. . と .. は何を意味する?
3OSともよく使うのが、
.
..
です。
.
現在の場所を表します。
例えば、
./script.sh
なら、
今いる場所にある
script.sh
という意味になります。
..
1つ上の階層です。
例えば、
cd ..
なら、
親ディレクトリへ移動
です。
Windows PowerShellでも、
cd ..
が使えます。
7. 絶対パスと相対パス
パスには大きく2種類あります。
絶対パス
場所を最初から全部指定します。
Windowsなら、
C:\Users\user\Documents\project
Macなら、
/Users/user/Documents/project
Linuxなら、
/home/user/Documents/project
です。
相対パス
今いる場所を基準にします。
現在、
Documents
にいるとして、その中の project へ行くなら、
cd project
で済みます。
1つ上なら、
cd ..
です。
実務では相対パスをかなり使います。
8. ホームディレクトリ
各OSには、ユーザーの基準となるホームディレクトリがあります。
PowerShellでは例えば、
C:\Users\username
macOSなら、
/Users/username
Linuxなら一般的に、
/home/username
です。
多くのshellで、
cd ~
とするとホームディレクトリへ戻れます。
PowerShellでも、
cd ~
が使えます。
9. Windowsには「ドライブ」がある
ここがWindowsとUnix系の分かりやすい違いです。
Windowsでは、
C:
D:
E:
のようにドライブがあります。
例えばPowerShellで、
D:
とするとDドライブへ移れます。
その後、
cd D:\dev\project
のように移動できます。
10. Mac / Linuxは / を頂点にする
macOS/Linuxでは、WindowsのようにCドライブ、Dドライブという見え方ではありません。
基本的に、
/
がファイルシステムの頂点です。
例えば、
/
├─ Users
├─ Applications
├─ System
└─ ...
や、Linuxなら、
/
├─ home
├─ etc
├─ var
├─ usr
└─ ...
という構造です。
つまり、
Windows
→ ドライブを意識する
Mac / Linux
→ / を起点とした1つのツリーとして考える
という違いがあります。
11. 実際に3OSで同じことをすると
例えば、
ホームディレクトリに移動して、現在地を確認し、一覧を見る
ならこうなります。
Windows PowerShell
cd ~
Get-Location
Get-ChildItem
短縮して、
cd ~
pwd
ls
と書ける環境もありますが、PowerShellを理解するなら最初は正式なコマンドレット名を意識した方が分かりやすいです。
macOS
cd ~
pwd
ls
Linux
cd ~
pwd
ls
MacとLinuxはかなり似ています。
このあたりから、
Windows PowerShellとUnix系shellは見た目が似る部分もあるが、考え方が違う
ことが分かってきます。
12. PowerShellとUnix系shellの違いを最初に意識する
今回のコマンドだけを見ると、
cd
ls
pwd
がPowerShellでも使えて、
ほぼ同じでは?
と思えます。
しかしPowerShellの基本思想は少し違います。
PowerShellは、
コマンドレットからオブジェクトを受け渡す
考え方が強いです。
一方、従来のUnix系shellでは、
コマンドのテキスト出力を別のコマンドへ渡して処理する
考え方が中心です。
この違いは、後のプロセス確認やサービス操作でかなり分かりやすくなります。
13. 最初に覚えるならこの3つ
今回の内容を最小限にすると、これだけです。
Windows PowerShell
Get-Location
Get-ChildItem
Set-Location
実務では、
cd
ls
などのaliasもよく使います。
Mac / Linux
pwd
ls
cd
まず、
今どこ?
↓
何がある?
↓
どこへ移動する?
ができれば、コマンドライン操作の入口として十分です。
まとめ
同じ目的で3OSを比較すると、こうなります。
| 目的 | PowerShell | Mac / Linux |
|---|---|---|
| 現在地 | Get-Location |
pwd |
| 一覧 | Get-ChildItem |
ls |
| 移動 | Set-Location |
cd |
| 1つ上 | cd .. |
cd .. |
| ホーム | cd ~ |
cd ~ |
大事なのはコマンドを丸暗記することより、
今いる場所を確認する → 一覧を見る → 必要な場所へ移動する
という流れです。
OSが変わっても「やりたいこと」は同じです。
その目的を基準にすると、Windows / Mac / Linuxのコマンドも比較しながら覚えやすくなります。