Wenn du in einem Codespace arbeitest, kannst du ein neues Terminalfenster mit einer Shell deiner Wahl öffnen, deine Standardshell für neue Terminalfenster ändern oder eine neue Shell installieren. Du kannst auch Dotfiles verwenden, um deine Shell zu konfigurieren.
Codespaces, die das Standard-Entwickler-Containerimage verwenden, werden mit den installierten Shells bash
, zsh
und fish
bereitgestellt. Wenn du einen neuen Codespace im VS Code-Webclient öffnest oder über SSH eine Verbindung mit einem Codespace herstellst, wird das Terminal standardmäßig mit einer ausgeführten bash
-Sitzung geöffnet. In der VS Code-Desktopanwendung hängt die Standardshell von deinen lokalen Einstellungen und deinem Betriebssystem ab. Weitere Informationen findest du unter Terminalprofile in der VS Code-Dokumentation.
Ändern der Standardshell in VS Code
Wenn du nicht die Standardshell verwenden möchtest, kannst du eine neue Terminalsitzung mit einer anderen Shell öffnen.
-
Wenn das integrierte Terminal in VS Code nicht angezeigt wird, drücke STRG+`.
-
Wähle rechts neben dem Symbol zum Öffnen eines neuen Terminalfensters das Dropdownsymbol aus.
-
Klicke im Dropdownmenü auf den Namen der Shell, die du verwenden möchtest.
Installieren einer neuen Shell
Wenn du eine Shell verwenden möchtest, die noch nicht im Basisimage oder in der Entwicklungscontainerkonfiguration für einen Codespace installiert ist, kannst du eine neue Shell installieren.
Wenn Sie das Standard-Entwickler-Containerimage verwenden, suchen Sie nach Installationsanweisungen für Ubuntu Linux. Wenn du nur für eine Sitzung eine andere Shell verwenden möchten, kannst du die Shell über die Befehlszeile im verwendeten Codespace installieren. Wenn du den Container im Codespace neu erstellst, können jedoch von dir installierte Programme verloren gehen. Weitere Informationen findest du unter Ausführliche Informationen zu GitHub Codespaces.
Eine robustere Option zum Installieren neuer Shells besteht darin, die Installationsbefehle entweder in ein Dotfiles-Repository oder als Lebenszyklusbefehl (etwa postCreateCommand
) in eine Datei vom Typ devcontainer.json
einzufügen. Du solltest ein Dotfiles-Repository zum Installieren einer Shell verwenden, die du in allen eigenen Codespaces verwenden möchtest, und eine Datei vom Typ devcontainer.json
für eine Shell, die Mitwirkende zu einem bestimmten Repository installiert haben sollten. Weitere Informationen finden Sie unter Personalisieren von GitHub Codespaces für dein Konto und unter Einführung in Entwicklungscontainer.
Hinzufügen eines VS Code-Terminalprofils für eine neue Shell
VS Code erkennt die meisten Standardshells automatisch und fügt sie als Terminalprofil hinzu, sodass du problemlos neue Terminalfenster mit der von dir installierten Shell öffnen kannst.
Wenn die von dir installierte Shell nicht automatisch erkannt wird, kannst du deinen Benutzereinstellungen ein neues Terminalprofil hinzufügen. Diese Einstellung ist von deinem Betriebssystem abhängig. Daher solltest du linux
für den VS Code-Webclient und dein lokales Betriebssystem für die Desktopanwendung verwenden.
-
Drücke zum Öffnen der Visual Studio Code Command Palette BEFEHL+UMSCHALT+P (Mac) oder STRG+UMSCHALT+P (Windows).
-
Beginne mit der Eingabe von „Benutzereinstellungen“, und klicke dann auf Einstellungen: Benutzereinstellungen öffnen (JSON) .
-
Füge in der Datei
settings.json
im JSON-Objekt eine neue Eigenschaft wie die folgende hinzu. ErsetzeOPERATING-SYSTEM
durch das entsprechende Betriebssystem (z. B.linux
,windows
oderosx
) undSHELL
durch die von dir installierte Shell.JSON "terminal.integrated.profiles.OPERATING-SYSTEM": { "SHELL": { "path": "SHELL" } }
"terminal.integrated.profiles.OPERATING-SYSTEM": { "SHELL": { "path": "SHELL" } }
Beispiel:
"terminal.integrated.profiles.linux": { "csh": { "path": "csh" } }
-
Speicher die Datei.
Du kannst die Einstellungssynchronisierung verwenden, um diese Einstellungen für alle Codespaces freizugeben, die du im Webclient und in der Desktopanwendung von VS Code öffnest. Wenn du im Webclient arbeitest, ist die Einstellungssynchronisierung standardmäßig deaktiviert. Du musst die Einstellungssynchronisierung aktivieren, um Änderungen an deinen Einstellungen zu pushen oder neue Änderungen, die du an anderer Stelle vorgenommen hast, zu pullen. Weitere Informationen findest du unter Personalisieren von GitHub Codespaces für dein Konto.
Festlegen der Standardshell in VS Code
Du kannst ein Standardterminalprofil zum Auswählen der Standardshell festlegen, die für alle neuen Terminalfenster verwendet wird, die du in VS Code öffnest. Das Standardterminalprofil ist von deinem Betriebssystem abhängig. Du kannst also ein Standardprofil für Linux festlegen, wenn du den VS Code-Webclient verwendest, oder für dein lokales Betriebssystem, wenn du die Desktopanwendung verwendest.
Note
Unabhängig von deinem Standardprofil werden im Webclient geöffnete Codespaces immer mit einer anfänglich ausgeführten bash
-Sitzung geöffnet.
-
Drücke zum Öffnen der Visual Studio Code Command Palette BEFEHL+UMSCHALT+P (Mac) oder STRG+UMSCHALT+P (Windows).
-
Beginne mit der Eingabe von „Benutzereinstellungen“, und klicke dann auf Einstellungen: Benutzereinstellungen öffnen (JSON) .
-
Um die Standardshell für das entsprechende Betriebssystem festzulegen, füge innerhalb des JSON-Objekts Zeilen hinzu, oder bearbeite vorhandene Zeilen wie folgt:
"terminal.integrated.defaultProfile.OPERATING-SYSTEM": "SHELL"
Beispiel:
JSON { "terminal.integrated.defaultProfile.osx": "zsh", "terminal.integrated.defaultProfile.linux": "bash", "terminal.integrated.defaultProfile.windows": "PowerShell" }
{ "terminal.integrated.defaultProfile.osx": "zsh", "terminal.integrated.defaultProfile.linux": "bash", "terminal.integrated.defaultProfile.windows": "PowerShell" }
-
Speichere die Datei
settings.json
.
Du kannst die Einstellungssynchronisierung verwenden, um diese Einstellungen für alle Codespaces freizugeben, die du im Webclient und in der Desktopanwendung von VS Code öffnest. Wenn du im Webclient arbeitest, ist die Einstellungssynchronisierung standardmäßig deaktiviert. Du musst die Einstellungssynchronisierung aktivieren, um Änderungen an deinen Einstellungen zu pushen oder neue Änderungen, die du an anderer Stelle vorgenommen hast, zu pullen. Weitere Informationen findest du unter Personalisieren von GitHub Codespaces für dein Konto.
Festlegen der Standardshell über SSH
Wenn du eine SSH-Verbindung mit einem Codespace über die Befehlszeile herstellst, stellst du standardmäßig eine Verbindung mit einer bash
-Sitzung im Codespace her.
Wenn du ein Dotfiles-Repository für GitHub Codespaces aktiviert hast, kannst du die Standardshell ändern, mit der du eine Verbindung herstellst, indem du einem Installationsskript (etwa install.sh
) in deinen Dotfiles einen Befehl hinzufügst. Weitere Informationen finden Sie unter GitHub Codespaces mit GitHub CLI verwenden und unter Personalisieren von GitHub Codespaces für dein Konto. Der folgende Befehl ändert beispielsweise die Standardshell in zsh
.
sudo chsh "$(id -un)" --shell "/usr/bin/zsh"
sudo chsh "$(id -un)" --shell "/usr/bin/zsh"
Wenn du eine Standardshell verwenden möchtest, die nicht standardmäßig in deinem Codespace installiert ist, oder sicherstellen möchtest, dass du über die neueste Version der Shell verfügst, kannst du die Shell zuerst installieren.
sudo apt-get update -y sudo apt-get install -y csh sudo chsh "$(id -un)" --shell "/usr/bin/csh"
sudo apt-get update -y
sudo apt-get install -y csh
sudo chsh "$(id -un)" --shell "/usr/bin/csh"
Note
Wenn du einen neuen Codespace erstellst (z. B. mithilfe von gh codespace create
), musst du ausreichend lange warten, um sicherzustellen, dass das Skript zu Ende ausgeführt wurde, bevor du über SSH eine Verbindung mit dem Codespace herstellst. Wenn die Ausführung des Skripts nicht abgeschlossen wurde, stellst du eine Verbindung mit einer bash
-Standardsitzung her.
Wenn du eine Verbindung mit dem Codespace hergestellt hast, kannst du für die meisten Shells den Befehl readlink /proc/$$/exe
verwenden, um zu überprüfen, ob die richtige Shell ausgeführt wird.
Konfigurieren deiner Shell
Bei den meisten Shells kannst du eine Konfigurationsdatei verwenden (etwa .bashrc
), um die Shell mit deinen bevorzugten Einstellungen zu konfigurieren. Diese Einstellungen können beispielsweise Aliase und Umgebungsvariablen enthalten.
Standardmäßig enthalten Codespaces eine vordefinierte Konfiguration für die vorinstallierten Shells. Das Basisverzeichnis in einem Codespace enthält beispielsweise Dateien vom Typ .bashrc
und .zshrc
. Du kannst den Inhalt dieser Dateien ändern und dann einen Befehl wie source ~/.bashrc
verwenden, um die Shellkonfiguration zu aktualisieren. Wenn du den Container in einem Codespace neu erstellst, gehen jedoch alle Änderungen an diesen Dateien verloren. Weitere Informationen findest du unter Ausführliche Informationen zu GitHub Codespaces.
Im Allgemeinen solltest du ein Dotfiles-Repository verwenden, um Shells mit deinen bevorzugten Einstellungen zu konfigurieren. Das Setup in deinen Dotfiles gilt für alle von dir erstellten Codespaces und wird bei Neuerstellungen des Containers beibehalten. Weitere Informationen findest du unter Personalisieren von GitHub Codespaces für dein Konto.
Problembehandlung für die fish
-Shell
Die fish
-Shell enthält eine webbasierte Konfigurationsschnittstelle. Du kannst den Befehl fish_config
verwenden, um einen lokalen Webserver und diese Schnittstelle zu starten. Anschließend kannst du beispielsweise die Terminalaufforderung ändern oder deine Umgebungsvariablen anzeigen.
Du kannst die webbasierte Schnittstelle für fish
in einem Codespace verwenden. Die Farbeinstellungen im integrierten Terminal von VS Code hängen jedoch vom ausgewählten VS Code-Design ab, und du kannst diese Einstellungen nicht überschreiben, indem du ein neues Design in der fish_config
-Schnittstelle festlegst.
Wenn fish
den lokalen Server startet, funktioniert der Standardlink, den GitHub Codespaces zum weitergeleiteten Port bereitstellt, nicht. Wenn du beispielsweise in der Popupmeldung auf Im Browser öffnen klickst, wirst du zu einer Fehlerseite weitergeleitet.
So greifst du auf die webbasierte Schnittstelle für fish_config
zu
-
Gib in einem Terminal, in dem eine
fish
-Sitzung ausgeführt wird,fish_config
ein. -
Verwende in der Terminalausgabe BEFEHL+Klick oder STRG+Klick, um den Link zur HTML-Datei
web_config
zu öffnen.$ fish_config Web config started at file:///tmp/web_config60rc9tr3.html Hit ENTER to stop.
-
Verwende in der Datei
web_config
BEFEHL+Klick oder STRG+Klick, um den Link zum weitergeleiteten Port zu öffnen.<body> <p><a href="http://localhost:8000/1b9411c2469e392b96df5e5b28da485b/">Start the Fish Web config</a></p> </body>