Skip to main content

Ändern der Shell in einem Codespace

Du kannst deine Shell in einem Codespace ändern, um das gewohnte Setup beizubehalten.

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.

  1. Wenn das integrierte Terminal in VS Code nicht angezeigt wird, drücke STRG+`.

  2. Wähle rechts neben dem Symbol zum Öffnen eines neuen Terminalfensters das Dropdownsymbol aus.

    Screenshot des Terminals in VS Code Neben dem Plussymbol ist ein nach unten gerichteter Pfeil orange umrandet.

  3. 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 findest du 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.

  1. Drücke zum Öffnen der Visual Studio Code Command Palette BEFEHL+UMSCHALT+P (Mac) oder STRG+UMSCHALT+P (Windows).

  2. Beginne mit der Eingabe von „Benutzereinstellungen“, und klicke dann auf Einstellungen: Benutzereinstellungen öffnen (JSON) .

  3. Füge in der Datei settings.json im JSON-Objekt eine neue Eigenschaft wie die folgende hinzu. Ersetze OPERATING-SYSTEM durch das entsprechende Betriebssystem (z. B. linux, windows oder osx) und SHELL durch die von dir installierte Shell.

    JSON
    "terminal.integrated.profiles.OPERATING-SYSTEM": {
      "SHELL": {
        "path": "SHELL"
      }
    }
    

    Beispiel:

    "terminal.integrated.profiles.linux": {
     "csh": {
       "path": "csh"
     }
    }
    
  4. 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.

Hinweis: Unabhängig von deinem Standardprofil werden im Webclient geöffnete Codespaces immer mit einer anfänglich ausgeführten bash-Sitzung geöffnet.

  1. Drücke zum Öffnen der Visual Studio Code Command Palette BEFEHL+UMSCHALT+P (Mac) oder STRG+UMSCHALT+P (Windows).

  2. Beginne mit der Eingabe von „Benutzereinstellungen“, und klicke dann auf Einstellungen: Benutzereinstellungen öffnen (JSON) .

  3. 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"
    }
    
  4. 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 findest du 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.

Shell
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.

Shell
sudo apt-get update -y
sudo apt-get install -y csh
sudo chsh "$(id -un)" --shell "/usr/bin/csh"

Hinweis: Wenn du einen neuen Codespace erstellst (z. B. mithilfe von gh codespace create), musst du ausreichend lange warten, um sicherzustellen, dass das Skript 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

  1. Gib in einem Terminal, in dem eine fish-Sitzung ausgeführt wird, fish_config ein.

  2. 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.
    
  3. 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>
    

Weiterführende Themen