圖樂資訊

Windows PowerShell 和 VPS 終端怎麼分?我把 Linux 指令輸錯視窗的經歷

發布時間:2026/7/17

作者:沈嘉怡

我在部署網站時,曾把 VPS 的 Linux 指令輸入 Windows PowerShell,因而出現找不到路徑和無法執行命令的錯誤。本文整理兩種終端的辨認方式、正確用途,以及我後來採用的操作流程。

Windows PowerShell 和 VPS 終端怎麼分?我把 Linux 指令輸錯視窗的經歷-圖片1
把 Linux 的 root 路徑輸入 Windows PowerShell 後出現找不到路徑錯誤

我把 VPS 指令輸入了錯誤的視窗

最近我在電腦上修改自己的網站,完成程式更新後,需要把更新檔上傳到 VPS,再進入伺服器重新建立 Docker 容器。

操作過程中,我同時開著 Windows PowerShell 和 VPS 的 SSH 終端。兩個視窗都可以輸入指令,而且外觀看起來十分相似,所以我曾經把它們混在一起。

當時我準備進入 VPS 的網站目錄,直接輸入:

cd /root/source-code

畫面卻顯示找不到以下路徑:

C:\root\source-code

一開始我以為 VPS 裡的網站資料夾被刪除了,或者之前使用的路徑已經改變。後來才發現,這條指令根本不是在 VPS 執行,而是輸入了本機的 Windows PowerShell。

Windows 看到 /root/source-code 後,會嘗試把它理解成本機磁碟中的路徑,因此才會尋找 C:\root\source-code。我的電腦本來就沒有這個資料夾,所以顯示找不到路徑是正常的。

這次錯誤不是網站損壞,也不是 VPS 資料消失,只是我把正確的指令放進了錯誤的終端視窗。

退出 VPS 後在本機 Windows PowerShell 使用 scp 上傳更新檔

如何分辨目前是哪一個終端?

後來我學會先檢視每一行指令前面的提示文字。

如果畫面顯示:

PS C:\Users\PC>

或者:

PS C:\Windows\System32>

代表目前位於本機的 Windows PowerShell。這個視窗可以存取電腦中的 C:\projects、下載資料夾和其他 Windows 檔案。

如果畫面顯示:

root@srv1740812:~#

或者:

root@srv1740812:~/source-code#

代表我已經透過 SSH 進入 VPS。這個視窗操作的是遠端 Linux 伺服器,可以存取 /root/source-code、Docker 容器和伺服器中的檔案。

上傳檔案要在本機執行

我製作完成的網站更新包位於電腦中的:

C:\projects\dulepic\updates

因此,使用 scp 上傳更新包時,指令必須在本機 Windows PowerShell 執行。VPS 無法直接讀取我電腦的 C:\projects 路徑。

如果我目前仍在 VPS,可以先輸入:

exit

看到畫面返回 PS C:\...> 後,再執行上傳指令。

這次我退出 VPS,回到 Windows PowerShell,重新執行 scp。輸入 VPS 的 root 密碼後,更新檔成功上傳,並顯示 100%

從這次操作以後,我不會只看終端視窗的顏色,而是先檢查提示文字。看到 PS C:\ 就知道正在操作本機;看到 root@伺服器名稱 才代表已經進入 VPS。

在 Linux VPS 終端檢查 Docker Compose 容器執行狀態

進入 VPS 後才執行伺服器指令

更新檔上傳完成後,我再使用 SSH 連線 VPS。看到提示文字變成:

root@srv1740812:~#

便能確認接下來的指令會在遠端伺服器執行。

這時才適合輸入:

cd /root/source-code

進入網站目錄後,我可以解壓更新包、執行資料庫更新、重新建立 Docker 容器,以及檢視容器狀態。

例如,以下操作都屬於 VPS:

這次重新建立完成後,應用程式容器顯示 Started,MySQL 顯示 Healthy。這代表更新已經在 VPS 上完成,而不是隻修改了本機檔案。

不要把提示文字一起複製

我也曾經把終端畫面中的整行文字全部複製,例如:

root@srv1740812:~/source-code# docker compose ps

實際需要輸入的只有:

docker compose ps

前面的 root@srv1740812:~/source-code# 是系統顯示的提示文字,不是指令的一部分。如果一起貼上,Linux 可能會把它當成檔名或命令,然後顯示找不到檔案。

因此,我現在複製指令時,會從提示符號後面的第一個字開始,不會把 PS C:\...>root@...# 一起複製。

密碼輸入時看不到文字是正常的

使用 SSH 或 scp 時,系統會要求輸入 VPS 的 root 密碼。

輸入密碼的過程中,終端通常不會顯示文字、星號或圓點。第一次遇到時,我以為鍵盤沒有反應,其實密碼已經正常輸入。

輸入完成後直接按 Enter 即可。密碼不會顯示,是為了避免旁邊的人看出密碼長度。

我現在採用的操作順序

為了避免再次混淆,我現在按照以下順序操作:

  1. 在本機完成網站程式修改。
  2. 把更新包儲存到 C:\projects\dulepic\updates
  3. 確認終端顯示 PS C:\...>
  4. 在 Windows PowerShell 使用 scp 上傳更新包。
  5. 使用 SSH 連線 VPS。
  6. 確認提示文字變成 root@伺服器名稱
  7. 進入 /root/source-code
  8. 在 VPS 解壓更新包並重新建立 Docker 容器。
  9. 檢查應用程式和 MySQL 容器狀態。
  10. 完成後輸入 exit 返回本機 PowerShell。

這次錯誤讓我學到的事情

Windows PowerShell 和 Linux VPS 終端不是同一個環境。即使它們出現在同一個 Windows Terminal 視窗中,能存取的路徑、檔案和可執行的指令仍然不同。

本機 PowerShell 負責處理電腦中的檔案並把更新包上傳出去;VPS 終端則負責解壓更新包、管理 Docker、操作資料庫和執行網站服務。

現在每次輸入指令前,我都先檢視提示文字,確認自己位於本機還是 VPS。這個簡單習慣可以避免很多看似嚴重、實際上只是輸錯視窗的錯誤。