圖樂資訊
Windows PowerShell 和 VPS 終端怎麼分?我把 Linux 指令輸錯視窗的經歷
發布時間:2026/7/17
作者:沈嘉怡
我在部署網站時,曾把 VPS 的 Linux 指令輸入 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 資料消失,只是我把正確的指令放進了錯誤的終端視窗。
如何分辨目前是哪一個終端?
後來我學會先檢視每一行指令前面的提示文字。
如果畫面顯示:
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。
進入 VPS 後才執行伺服器指令
更新檔上傳完成後,我再使用 SSH 連線 VPS。看到提示文字變成:
root@srv1740812:~#
便能確認接下來的指令會在遠端伺服器執行。
這時才適合輸入:
cd /root/source-code
進入網站目錄後,我可以解壓更新包、執行資料庫更新、重新建立 Docker 容器,以及檢視容器狀態。
例如,以下操作都屬於 VPS:
- 進入
/root/source-code網站目錄。 - 解壓上傳到
/root的更新包。 - 執行
docker compose up -d --build。 - 使用
docker compose ps檢視容器。 - 檢視網站日誌。
- 備份 MySQL 資料庫。
- 檢查伺服器中的網站檔案。
這次重新建立完成後,應用程式容器顯示 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 即可。密碼不會顯示,是為了避免旁邊的人看出密碼長度。
我現在採用的操作順序
為了避免再次混淆,我現在按照以下順序操作:
- 在本機完成網站程式修改。
- 把更新包儲存到
C:\projects\dulepic\updates。 - 確認終端顯示
PS C:\...>。 - 在 Windows PowerShell 使用
scp上傳更新包。 - 使用 SSH 連線 VPS。
- 確認提示文字變成
root@伺服器名稱。 - 進入
/root/source-code。 - 在 VPS 解壓更新包並重新建立 Docker 容器。
- 檢查應用程式和 MySQL 容器狀態。
- 完成後輸入
exit返回本機 PowerShell。
這次錯誤讓我學到的事情
Windows PowerShell 和 Linux VPS 終端不是同一個環境。即使它們出現在同一個 Windows Terminal 視窗中,能存取的路徑、檔案和可執行的指令仍然不同。
本機 PowerShell 負責處理電腦中的檔案並把更新包上傳出去;VPS 終端則負責解壓更新包、管理 Docker、操作資料庫和執行網站服務。
現在每次輸入指令前,我都先檢視提示文字,確認自己位於本機還是 VPS。這個簡單習慣可以避免很多看似嚴重、實際上只是輸錯視窗的錯誤。