はじめに
コマンドライン(CLI:Command Line Interface)とは、映画のハッカーが使用している真っ黒い画面に文字がばーっと並んでいる画面のことです。直感的に操作するGUI(グラフィカル・ユーザー・インターフェース)に比べて一見とっつきにくいですが、コマンドを覚えると大量の処理を驚くほど早く操作ができます。
とくにディレクトリ(フォルダ)操作はCLIの基礎でありながら、OSによって微妙な違いがあるため、クロスプラットフォームで作業する人にとって重要なポイントになります。
この記事では、Windowsのコマンドプロンプト(cmd.exe)、Macのターミナル(Unixベースのbash/zsh)、Linuxシェル(主にbash/zsh)におけるディレクトリ操作を徹底比較し、初心者から上級者まで役立つ情報をお届けします。
1. ディレクトリ構造の違いを理解する
1.1 Windowsのパス構造
Windowsはドライブレター方式(C:\、D:\など)を採用しています。これにより複数の物理ストレージを明確に区別できます。
例:
C:\Users\username\Documents
- 区切り文字:
\
(バックスラッシュ) - ドライブごとにルートが存在
- UNCパス(例:
\\Server\Share
)も使える
1.2 Unix系(Mac / Linux)のパス構造
Unix系OSでは、すべてのファイルシステムが1つのルート「/」からツリー構造として接続されます。
例:
/Users/username/Documents
- 区切り文字:
/
(スラッシュ) /
がファイルシステム全体のルート- デバイスもファイルとして扱われる(例:
/dev/sda1
)
2. 基本コマンド比較表(ディレクトリ操作)
操作内容 | Windows(cmd) | Mac / Linux(bash/zsh) | 備考 |
---|---|---|---|
カレントディレクトリ表示 | cd / chdir | pwd | Unix系ではcd は移動専用 |
ディレクトリの移動 | cd ディレクトリ名 | cd ディレクトリ名 | 共通コマンド |
一階層上に移動 | cd .. | cd .. | 共通(.. は親ディレクトリ) |
ルートに移動 | cd \ | cd / | ルート記号が異なる |
ユーザーディレクトリに移動 | cd %USERPROFILE% | cd ~ または cd | 環境変数 or チルダ(~) |
ディレクトリ一覧表示 | dir | ls | Unix系ではls -l やls -a も活用 |
ディレクトリ作成 | mkdir フォルダ名 | mkdir フォルダ名 | 共通。親ディレクトリが無いと失敗 |
階層つき作成 | mkdir フォルダ\サブ | mkdir -p フォルダ/サブ | -p で親もまとめて作成 |
ディレクトリ削除(空) | rmdir フォルダ名 | rmdir フォルダ名 | 共通 |
ディレクトリ削除(中身あり) | rmdir /s フォルダ名 | rm -r フォルダ名 | -r はrecursiveの略 |
3. コマンド補完とエイリアスの違い
3.1 タブ補完機能
ほとんどのシェルではTabキーによる補完機能が使用可能です。たとえば cd Doc
と入力してTabを押すと Documents
に自動補完されます。
OS | デフォルト動作 | コメント |
---|---|---|
Windows(cmd) | 基本対応 | ファイルやフォルダ名で補完 |
PowerShell | 高機能補完 | パラメータやコマンド名も補完可能 |
Mac/Linux | 高機能補完 | bash-completion により高度な補完 |
3.2 エイリアスとショートカット
Unix系ではalias
を使ってコマンド短縮が可能。Windowsではdoskey
コマンドで近い機能が使えます。
- Linux例:
alias ll='ls -la'
- Windows例:
doskey ls=dir
4. 実用例:よく使うパターン集
4.1 サブディレクトリをまとめて作成・移動
mkdir -p ~/Projects/Blog/Images
cd ~/Projects/Blog
Windowsなら:
mkdir Projects\Blog\Images
cd Projects\Blog
4.2 一覧取得+フィルタリング(WindowsとUnixの思想の違い)
Unix系(パイプとフィルタの哲学)
ls -l | grep "Jul"
Windows(findやforと組み合わせる)
dir | find "07/26"
5. 裏技・小技いろいろ
5.1 cd -(直前のディレクトリに戻る)
- Unix系限定
cd -
5.2 pushd / popd(スタック形式で戻る)
OS | pushd | popd |
---|---|---|
Windows | 対応 | 対応 |
Unix系 | 対応 | 対応 |
pushd /etc
# 作業
popd # 元のディレクトリに戻る
5.3 パスにスペースがあるときの注意
例 | 備考 |
---|---|
cd "My Documents" | ダブルクオート必須 |
cd My\ Documents | Unixではバックスラッシュでエスケープ |
6. 環境変数とパス解決の違い
OS | ユーザーディレクトリ | システムパス確認 |
---|---|---|
Windows | %USERPROFILE% | echo %PATH% |
Mac / Linux | $HOME | echo $PATH |
7. GUIではわからないCLIの強み
CLIを使うメリット:
- キーボードだけで高速操作
- 複数のコマンドを連携できる
- 自動化(バッチ・シェルスクリプト)が可能
- SSHでリモートディレクトリ操作も簡単
8. よくあるトラブルとその対処
トラブル | 原因 | 対処法 |
---|---|---|
cd で「ファイルが見つかりません」 | パスのスペルミス or 大文字小文字ミス | ls やdir で中身確認、補完使用 |
mkdir で作成できない | 親フォルダが存在しない | mkdir -p で階層ごと作成 |
rm -r で全削除してしまった | オプションを誤用 | -i (確認付き)を使うと安全 |
まとめ
CLIによるディレクトリ操作は、OSごとの違いを理解すれば一気に自由度が広がります。Windowsのcmdから始まり、MacやLinuxのbash/zshを使いこなせるようになると、ファイル操作、スクリプト作成、サーバ操作、Gitなど多くの作業で役立ちます。
学習のポイントは、課題となる問題を見つけて実際に手を動かしてコマンドを打つこと。
闇雲にやっていても、つまらないし上達している感覚が得られない。まず自分が何がしたいかを見つけることが大事です。
このブログ記事が、皆さんのコマンドライン習得の一助となれば幸いです。
コメント