iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 24
1

DAY 24 整合式終端機 (Part 2)

設定

在 Linux 和 macOS 系統上,終端機預設會使用環境變數 $SHELL 所指定的 shell,在 Windows 10 上會預設使用 PowerShell,比較舊版的 Windows 預設使用 cmd.exe。你可以透過在使用者設定中的 terminal.integrated.shell.* 來設定。如果你需要傳遞額外參數給終端機的 shell,你可以透過在使用者設定中的 terminal.integrated.shellArgs.* 來設定。

備註:為了安全性著想,這幾個設定在工作區設定中都是無效的,只能寫在使用者設定中。

Windows

對於 Windows 的系統,VS Code 提供了一個很方便的指令讓你可以選擇預設的 Shell,這個指令會嘗試找出安裝在預設路徑的 Shell:「Command Prompt」、「PowerShell」、「PowerShell Core」、「Git Bash」、「WSL Bash」,並且提供一個下拉式選單給你選取預設的 Shell。你可以透過「尋找及執行所有命令」 然後輸入 terminal 尋找並執行「Terminal:選取預設殼層」指令。

就跟其他作業系統一樣,你可以在設定檔中詳細的指定到底要用哪個可執行檔如下:

// Command Prompt
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe"
// PowerShell
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
// Git Bash
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
// Bash on Ubuntu (on Windows)
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"

備註:為了要在整合式終端機中執行,這個 Shell 的可執行檔必須要是一個終端機的應用程式,它的 stdin/stdout/stderr 都需要可以被重新導向。

小技巧:整合式終端機會使用和 VS Code 一樣的權限來執行,如果要需要整合式終端機以系統管理員身份或是其他權限執行,你可以在整合式終端機中使用系統內建的工具,如 runas.exe 等…。

Shell 參數

你可以設定在整合式終端機啟動時,帶什麼參數給它。

舉例來說,想讓 bash 以登入 shell 的方式(也就是會先幫你執行 .bash_profile)執行的話,你需要帶 -l 的參數給它:

// Linux
"terminal.integrated.shellArgs.linux": ["-l"]

使用變數

shellshellArgsenvcwd 這些終端機的參數中都支援使用變數:

// Open the terminal in the currently opened file's directory
"terminal.integrated.cwd": "${fileDirname}"

你可以在這個連結看到完整可用的變數清單。

明天待續…


上一篇
DAY 23 整合式終端機 (Part 1)
下一篇
DAY 25 整合式終端機 (Part 3)
系列文
精通 Visual Studio Code31

尚未有邦友留言

立即登入留言