WindowsとUNIX系OSのコマンド比較

# はじめに
WindowsとUNIX系のコマンドについてまとめました。

・普段Windowsを使用していてLinux/MacなどのUNIX系OSのコマンドがわからない…
・OSによって使えるコマンドが混ざってしまう…
という方のお役に立てればと思います。

オプションはよく使うものを紹介しています。

※PC環境によって結果が異なるコマンドがあります。


# 1. カレントディレクトリを表示する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|cd/chdir|pwd|

|**オプション**|Windows|UNIX|
|-|-|-|
|シンボリックリンクのターゲットに移動|-|-P|
|シンボリックリンクに移動（デフォルト）|-|-L|
```:Windows
cd 
（例 
C:\Users\rtakei>cd
C:\Users\rtakei　　　　
```

```
pwd
（例
rtakei@***:~/test$ pwd
/home/rtakei/test    
```

# 2. ディレクトリを移動する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|cd/chdir|cd|

|**オプション**|Windows|UNIX|
|-|-|-|
|ドライブも変更する|/D|-|
|シンボリックリンクのターゲットに移動|-|-P|
|シンボリックリンクに移動（デフォルト）|-|-L|

```:Windows
cd [オプション] [ディレクトリ]
（例 
C:\Users\rtakei>cd C:\Users\rtakei\desktop
C:\Users\rtakei\Desktop>
```

```:UNIX
cd [オプション] [ディレクトリ]
（例 
rtakei@***:~$ cd test
rtakei@***:~/test$ 
```

# 3. カレントディレクトリにあるファイルを一覧表示
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|dir|ls|

|**オプション**|Windows|UNIX|
|-|-|-|
|すべて表示|Windowではでデフォルト|-a|
|ファイルの詳細も表示する|-|-l|
|属性でフィルターをかける|/a<br>d（フォルダ）<br>h（隠しファイル）<br>s（システムファイル）<br>r（読み取り専用ファイル）<br>a（アーカイブの準備ができているファイル）<br>‐：(否定※)|-|
|表示順を指定|/O<br>D：古い日時順<br>E：拡張子順<br>G：グループ順<br>N：名前順<br>S:サイズ順<br>‐：(否定※)|-|

```:Windows
dir [ドライブ:][パス][ファイル名][オプション]
dir /a:-d　//※属性＋”-”は否定を表し、この例ではフォルダ以外を一覧表示します。
（例 
C:\Users\rtakei>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 6A6E-0607 です

 C:\Users\rtakei のディレクトリ

2022/09/29  18:10    <DIR>          .
2022/05/06  09:06    <DIR>          ..
2022/05/10  09:50             9,246 .bash_history
2022/04/20  15:46    <DIR>          .config
2022/04/21  17:01    <DIR>          .dotnet
（省略）

```
```:UNIX
ls [オプション][ディレクトリ]
（例 
rtakei@***:~$ ls -la
total 20
drwxr-xr-x  4 rtakei rtakei 4096 Sep 30 15:39 .
drwxr-xr-x 10 rtakei rtakei 4096 Sep 30 15:36 ..
(省略)
```
# 4. 中身のないファイルを作成する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|type nul|touch|

|**オプション**|Windows|UNIX|
|-|-|-|
|日時を指定する|-|-t|

```:Windows
type nul > [ファイルパス]
（例 
C:\Users\rtakei\Desktop>type nul > new.txt　　
//カレントディレクトリに空ファイルが作成される
//カレントディレクトリへの操作はパスを省略できる。(他のコマンドも同様に)
```
```:UNIX
touch [オプション][ファイル名]
（例 
rtakei@***:~$ touch new.txt　//返答なし
```
# 5. フォルダを作成する　
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|md/mkdir|mkdir|

|**オプション**|Windows|UNIX|
|-|-|-|
|アクセス許可を設定する|‐|-m|
```:Windows
md [フォルダパス]
（例 
C:\Users\rtakei\Documents>md new_folder　　
//カレントディレクトリに空フォルダが作成される
```

```:UNIX
mkdir [オプション][フォルダパス]
（例 
rtakei@***:~$ mkdir new_folder　//返答なし
```
# 6. ファイルやフォルダを移動する
|OS|Windows|UNIX|
|-|-|-|
||move|mv|

|**オプション**|Windows|UNIX|
|-|-|-|
|同名のファイルが存在する場合、上書きの確認する|/Y|-f|
|同名のファイルが存在する場合、上書きの確認しない|/-Y|-i|
```:Windows
move [オプション][移動元フォルダ/ファイル名] [移動先フォルダ/ファイル名]
（例 　
C:\Users\rtakei\Desktop>move C:\Users\rtakei\Desktop\new.txt C:\Users\rtakei\Documents
        1 個のファイルを移動しました。
```
```:UNIX
mv [オプション][移動元フォルダ/ファイル名] [移動先フォルダ/ファイル名]
（例 
rtakei@***:~$ mv new.txt new_folder/　//返答なし
```
# 7. ファイルやフォルダをコピーする
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|copy(ファイル)<br>xcopy(フォルダ)|cp|

|**オプション**|Windows|UNIX|
|-|-|-|
|強制的に上書きする|/Y|-f|
|ディレクトリをコピー|-|-r|
|構成情報をそのままをコピー|-|-p|
|サブフォルダも含めてコピー|/s(xcopy)|-|
```:Windows
copy  [オプション][移動元パス] [移動先パス]　//Windows
（例 
C:\Users\rtakei\Documents>copy new.txt C:\Users\rtakei\Desktop
        1 個のファイルをコピーしました。

xcopy  [オプション][移動元パス] [移動先パス]　//Windows
（例 
C:\Users\rtakei\Documents>xcopy /s doc C:\Users\rtakei\Desktop
doc\test(2).txt
doc\test.txt
doc\doc_sub\test_sub.txt
3 個のファイルをコピーしました
//オプションをつけないとサブフォルダがコピーされない
```
```:UNIX
cp [オプション][移動元パス] [移動先パス]
（例 
rtakei@***:~$ cp -r new_folder copy_folder　//返答なし
```
# 8. ファイルやフォルダを削除する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|del(ファイル)<br>rd(フォルダ)|rm|

|**オプション**|Windows|UNIX|
|-|-|-|
|ディレクトリ配下も削除|/s(rd)|-r|
|強制的に削除|/f(del)<br>/q(rd)|-f|

```:Windows
del [オプション][ファイルパス]　//Windows
（例 
C:\Users\rtakei\Documents>del new.txt //返答なし

rd [オプション][フォルダパス]　//Windows
（例 
C:\Users\rtakei\Documents>rd new_folder  //返答なし
```
```:UNIX
rm  [オプション][ファイル/フォルダパス]
（例 
rtakei@***:~$ rm -r new_folder/　　//返答なし
```
# 9. ファイルの中身を表示する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|type|cat|

|**オプション**|Windows|UNIX|
|-|-|-|
|行番号を表示|‐|-n|
```:Windows
type [ファイルパス]
（例 
C:\Users\rtakei\Documents>type new.txt
Science Park
```
```:UNIX
cat [オプション][ファイル名]
（例 
rtakei@***:~$ cat new.txt
sciencepark　
```
# 10. ファイルを検索する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|where|find|

|**オプション**|Windows|UNIX|
|-|-|-|
|検索対象のディレクトリを指定する|/R [パス]|‐|
|詳細情報も表示|/T|‐|
|指定一致しているファイルを検索|‐|-name|
|-nameの機能に加えて文字の大小を区別しない|‐|‐iname|
```:Windows
where [オプション][ファイル名]
（例 
C:\Users\rtakei\Documents>where new.txt
C:\Users\rtakei\Documents\new.txt
```
```:UNIX
find [検索ディレクトリ][オプション][検索ファイル名]
（例 
rtakei@***:~$ find
.
./new.txt
./test
./dir
```
# ネットワーク系
# 11.ネットワーク情報を確認する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|ipconfig|ip addr show|

|**オプション**|Windows|UNIX|
|-|-|-|
|詳細情報も表示|/all|-|
```:Windows
ipconfig [オプション][ネットワークアダプタ名]
（例 
C:\Users\rtakei>ipconfig

Windows IP 構成

イーサネット アダプター イーサネット:

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: **************************
   IPv4 アドレス . . . . . . . . . . . .: 192.168.*.*
   サブネット マスク . . . . . . . . . .: 255.255.255.0
   デフォルト ゲートウェイ . . . . . . .: 192.168.*.*
   (省略)
```
```:UNIX
ip addr show
　（例 
 rtakei@***:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet *.0.0.*/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
(省略)
default qlen 1000
    link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
    inet *.*.*.*/20 brd *.*.*.* scope global eth0
       valid_lft forever preferred_lft forever
    inet6 *::*:*:*:*/64 scope link
       valid_lft forever preferred_lft forever
```
# 12.ネットワーク接続・応答速度を確認する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|ping|ping|

|**オプション**|Windows|UNIX|
|-|-|-|
|エコー要求メッセージ回数を指定|-n [指定回数]|-c [指定回数]|
```:Windows
ping [オプション][IPアドレス・ホスト名]
（例 
C:\Users\rtakei>ping 192.168.*.*

192.168.*.* に ping を送信しています 32 バイトのデータ:
192.168.*.* からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.*.* からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.*.* からの応答: バイト数 =32 時間 <1ms TTL=128
192.168.*.* からの応答: バイト数 =32 時間 <1ms TTL=128

192.168.*.* の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms　
```
```:UNIX
ping [オプション][IPアドレス・ホスト名]
（例 
rtakei@***:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6218ms
```
# 13.ネットワークの通信経路を確認する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|tracert|tracepath|

|**オプション**|Windows|UNIX|
|-|-|-|
|名前解決なしで実行|-d|-n|

```:Windows
tracert [オプション][通信先のIPアドレス・ホスト名]　//Windows
（例 
C:\Users\rtakei>tracert -d 8.8.8.8

8.8.8.8 へのルートをトレースしています。経由するホップ数は最大 30 です

  1    <1 ms    <1 ms    <1 ms  192.168.*.*
  2     *        *        *     要求がタイムアウトしました。
  (省略)　
```
```:UNIX
tracepath [オプション][通信先のIPアドレス・ホスト名]
（例 
rtakei@***:~$ tracepath 8.8.8.8
1?: [LOCALHOST]                      pmtu 1500
1:  ***                                       0.467ms
1:  ***                                      0.156ms
2:  no reply
3:  no reply
4:  192.168.*.*                                           0.701ms pmtu 1454
(省略)
Too many hops: pmtu 1454
     Resume: pmtu 1454
```
# 14.DNSサーバ名前解決機能を確認する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|nslookup|nslookup|

```:Windows
nslookup [ipアドレス・ホスト名]
（例 
C:\Users\rtakei\Documents>nslookup
既定のサーバー:  ***.co.jp
Address:  192.168.*.*

>
C:\Users\rtakei\Documents>nslookup 192.168.*.*
サーバー:  ***.co.jp
Address:  192.168.*.*

名前:    ***.co.jp
Address:  192.168.*.* 
```
```:UNIX
nslookup [ipアドレス・ホスト名]
（例 
rtakei@***:~$ nslookup 8.8.8.8
8.8.8.8.in-addr.arpa    name = dns.google.
```
# 15.ソケット、インターフェイス接続状況を確認する
|OS|Windows|UNIX|
|-|-|-|
|**コマンド**|netstat|ss※|

※Socket statisticsの略

|**オプション**|Windows|UNIX|
|-|-|-|
|すべての接続を表示|-a|-a|

```:Windows
netstat [オプション]
（例 
C:\Users\rtakei\Documents>netstat -a

アクティブな接続

  プロトコル  ローカル アドレス      外部アドレス           状態
  TCP         0.0.0.0:*            ****           LISTENING
  (省略)
  UDP         0.0.0.0:*            *:*
  (省略)
```
```:UNIX
ss [オプション][フィルター]
（例 
rtakei@***:~$ ss -a
Netid  State    Recv-Q   Send-Q                          Local Address:Port           Peer Address:Port        Process
nl     UNCONN   0        0                                        rtnl:192                        *
nl     UNCONN   0        0                                        rtnl:kernel                     *
(省略)
```
# 参考サイト

* Windowsコマンド虎の巻
https://windows.command-ref.com/cmd-ipconfig.html
* ネットワーク技術者のための技術解説・運用管理ノウハウ提供フォーラム　 
知っておきたい基礎用語
https://atmarkit.itmedia.co.jp/ait/subtop/network/
* Linux コマンド一覧表
https://qiita.com/savaniased/items/d2c5c699188a0f1623ef