Skip to main content

Changement d’interpréteur de commandes dans un codespace

Vous pouvez changer votre interpréteur de commandes dans un codespace pour conserver la configuration à laquelle vous êtes habitué.

Lorsque vous travaillez dans un codespace, vous pouvez ouvrir une nouvelle fenêtre de terminal avec l’interpréteur de commandes de votre choix, changer votre interpréteur de commandes par défaut pour les nouvelles fenêtres de terminal ou installer un nouvel interpréteur de commandes. Vous pouvez également utiliser des dotfiles pour configurer votre interpréteur de commandes.

Les codespaces qui utilisent l’image conteneur de développement par défaut sont fournis avec les interpréteurs de commandes bash, zsh et fish installés. Si vous ouvrez un nouveau codespace dans le client web VS Code ou si vous vous connectez à un codespace via SSH, le terminal s’ouvre avec une session bash exécutée par défaut. Dans l’application de bureau VS Code, l’interpréteur de commandes par défaut dépend de vos paramètres locaux et de votre système d’exploitation. Pour plus d’informations, consultez Profils de terminal dans la documentation VS Code.

Changement de l’interpréteur de commandes par défaut dans VS Code

Si vous ne souhaitez pas utiliser l’interpréteur de commandes par défaut, vous pouvez ouvrir une nouvelle session de terminal avec un autre interpréteur de commandes.

  1. Si vous ne voyez pas le terminal intégré dans VS Code, appuyez sur Ctrl+`.

  2. À droite de l’icône permettant d’ouvrir une nouvelle fenêtre de terminal, sélectionnez l’icône de liste déroulante.

    Capture d’écran du terminal intégré dans VS Code. À côté de l’icône plus, une flèche vers le bas est encadrée en orange.

  3. Dans le menu déroulant, cliquez sur le nom de l’interpréteur de commandes que vous souhaitez utiliser.

Installation d’un nouvel interpréteur de commandes

Si vous souhaitez utiliser un interpréteur de commandes qui n’est pas déjà installé dans l’image de base ou la configuration du conteneur de développement d’un codespace, vous pouvez installer un nouvel interpréteur de commandes.

Si vous utilisez l’image conteneur de développement par défaut, recherchez les instructions d’installation pour Ubuntu Linux. Si vous souhaitez juste utiliser un autre interpréteur de commandes pour une session, vous pouvez utiliser la ligne de commande pour installer l’interpréteur de commandes dans le codespace dans lequel vous travaillez. Toutefois, vous risquez de perdre les programmes que vous avez installés si vous regénérez le conteneur dans le codespace. Pour plus d’informations, consultez « Présentation approfondie de GitHub Codespaces ».

Une option plus robuste pour installer de nouveaux interpréteurs de commandes consiste à inclure les commandes d’installation dans un dépôt dotfiles ou en tant que commande de cycle de vie, par exemple postCreateCommand dans un fichier devcontainer.json. Utilisez un dépôt dotfiles pour installer un interpréteur de commandes que vous souhaitez utiliser dans tous vos propres codespaces, et un fichier devcontainer.json pour un interpréteur de commandes que les contributeurs à un dépôt spécifique doivent avoir installé. Pour plus d’informations, consultez « Personnalisation de GitHub Codespaces pour votre compte » et « Présentation des conteneurs de développement ».

Ajout d’un profil de terminal VS Code pour un nouvel interpréteur de commandes

VS Code détecte automatiquement la plupart des interpréteurs de commandes standard et les ajoute en tant que profil de terminal pour vous permettre d’ouvrir facilement de nouvelles fenêtres de terminal à l’aide de l’interpréteur de commandes que vous avez installé.

Si l’interpréteur de commandes que vous installez n’est pas détecté automatiquement, vous pouvez ajouter un nouveau profil de terminal à vos paramètres utilisateur. Ce paramètre dépend de votre système d’exploitation, donc vous devez utiliser linux pour le client web VS Code et votre système d’exploitation local pour l’application de bureau.

  1. Pour ouvrir la Visual Studio Code Command Palette, appuyez sur Commande+Maj+P (Mac) ou Ctrl+Maj+P (Windows).

  2. Commencez à taper « paramètres utilisateur », puis cliquez sur Préférences : Ouvrir les paramètres utilisateur (JSON) .

  3. Dans le fichier settings.json, à l’intérieur de l’objet JSON, ajoutez une nouvelle propriété comme suit. Remplacez OPERATING-SYSTEM par le système d’exploitation approprié (par exemple linux, windows ou osx) et SHELL par l’interpréteur de commandes que vous avez installé.

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

    Par exemple :

    "terminal.integrated.profiles.linux": {
     "csh": {
       "path": "csh"
     }
    }
    
  4. Enregistrez le fichier .

Vous pouvez utiliser la Synchronisation des paramètres pour partager ces paramètres entre tous les codespaces que vous ouvrez dans le client web VS Code et l’application de bureau. Si vous travaillez dans le client web, la Synchronisation des paramètres est désactivée par défaut et vous devez l’activer pour pousser (push) les modifications vers vos paramètres ou tirer (pull) de nouvelles modifications que vous avez apportées ailleurs. Pour plus d’informations, consultez « Personnalisation de GitHub Codespaces pour votre compte ».

Définition de l’interpréteur de commandes par défaut dans VS Code

Vous pouvez définir un profil de terminal par défaut pour choisir l’interpréteur de commandes par défaut utilisé pour toutes les nouvelles fenêtres de terminal que vous ouvrez dans VS Code. Le profil de terminal par défaut dépend de votre système d’exploitation, donc vous pouvez définir un profil par défaut pour Linux si vous utilisez le client web VS Code, ou pour votre système d’exploitation local si vous utilisez l’application de bureau.

Remarque : Quel que soit votre profil par défaut, les codespaces ouverts dans le client web s’ouvrent toujours avec une session bash exécutée à la base.

  1. Pour ouvrir la Visual Studio Code Command Palette, appuyez sur Commande+Maj+P (Mac) ou Ctrl+Maj+P (Windows).

  2. Commencez à taper « paramètres utilisateur », puis cliquez sur Préférences : Ouvrir les paramètres utilisateur (JSON) .

  3. Dans l’objet JSON, pour définir l’interpréteur de commandes par défaut pour le système d’exploitation approprié, ajoutez des lignes ou modifiez des lignes existantes comme suit.

    "terminal.integrated.defaultProfile.OPERATING-SYSTEM": "SHELL"
    

    Par exemple :

    JSON
    {
       "terminal.integrated.defaultProfile.osx": "zsh",
       "terminal.integrated.defaultProfile.linux": "bash",
       "terminal.integrated.defaultProfile.windows": "PowerShell"
    }
    
  4. Enregistrez le fichier settings.json.

Vous pouvez utiliser la Synchronisation des paramètres pour partager ces paramètres entre tous les codespaces que vous ouvrez dans le client web VS Code et l’application de bureau. Si vous travaillez dans le client web, la Synchronisation des paramètres est désactivée par défaut et vous devez l’activer pour pousser (push) les modifications vers vos paramètres ou tirer (pull) de nouvelles modifications que vous avez apportées ailleurs. Pour plus d’informations, consultez « Personnalisation de GitHub Codespaces pour votre compte ».

Définition de l’interpréteur de commandes par défaut sur SSH

Lorsque vous vous connectez à un codespace à partir de la ligne de commande via SSH, vous vous connectez à une session bash dans le codespace par défaut.

Si vous avez activé un dépôt dotfiles pour GitHub Codespaces, vous pouvez changer l’interpréteur de commandes par défaut auquel vous vous connectez en ajoutant une commande à un script d’installation, comme install.sh dans vos dotfiles. Pour plus d’informations, consultez « Utilisation de GitHub Codespaces avec l’interface CLI de GitHub » et « Personnalisation de GitHub Codespaces pour votre compte ». Par exemple, la commande suivante remplace l’interpréteur de commandes par défaut par zsh.

Shell
sudo chsh "$(id -un)" --shell "/usr/bin/zsh"

Si vous souhaitez utiliser un interpréteur de commandes par défaut qui n’est pas installé dans votre codespace par défaut, ou vérifier que vous avez la dernière version de l’interpréteur de commandes, vous pouvez commencer par installer l’interpréteur de commandes.

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

Remarque : Si vous créez un codespace (par exemple avec gh codespace create), vous devez attendre suffisamment de temps pour vous assurer que le script a terminé son exécution avant de vous connecter au codespace via SSH. Si l’exécution du script n’est pas terminée, vous vous connecterez à une session bash par défaut.

Lorsque vous êtes connecté au codespace, dans la plupart des interpréteurs de commandes, vous pouvez utiliser la commande readlink /proc/$$/exe pour vérifier que l’interpréteur de commandes approprié est en cours d’exécution.

Configuration de votre interpréteur de commandes

Avec la plupart des interpréteurs de commandes, vous avez la possibilité d’utiliser un fichier de configuration, tel que .bashrc, pour configurer l’interpréteur de commandes avec vos paramètres préférés. Ces paramètres peuvent inclure des éléments tels que des alias et des variables d’environnement.

Par défaut, les codespaces contiennent une configuration prédéfinie pour les interpréteurs de commandes préinstallés. Par exemple, le répertoire de base d’un codespace contient les fichiers .bashrc et .zshrc. Vous pouvez changer le contenu de ces fichiers, puis utiliser une commande telle que source ~/.bashrc pour mettre à jour la configuration de votre interpréteur de commandes. Toutefois, vous perdrez toute modification apportée à ces fichiers si vous reconstruisez le conteneur dans un codespace. Pour plus d’informations, consultez « Présentation approfondie de GitHub Codespaces ».

En règle générale, vous devez utiliser un dépôt dotfiles pour configurer les interpréteurs de commandes avec vos paramètres préférés. La configuration de vos dotfiles s’applique à tous les codespaces que vous créez et persiste après les reconstructions du conteneur. Pour plus d’informations, consultez « Personnalisation de GitHub Codespaces pour votre compte ».

Résolution des problèmes de l’interpréteur de commandes fish

L’interpréteur de commandes fish inclut une interface de configuration web. Vous pouvez utiliser la commande fish_config pour démarrer un serveur web local et lancer cette interface, puis effectuer des opérations comme changer l’invite de terminal ou afficher vos variables d’environnement.

Vous pouvez utiliser l’interface web de fish dans un codespace. Toutefois, les paramètres de couleur dans le terminal intégré de VS Code dépendent du thème VS Code choisi, et vous ne pouvez pas remplacer ces paramètres en définissant un nouveau thème dans l’interface fish_config.

Lorsque fish démarre le serveur local, le lien par défaut que fournit GitHub Codespaces au port transféré ne fonctionne pas. Par exemple, si vous cliquez sur Ouvrir dans le navigateur dans le message contextuel, vous arrivez sur une page d’erreur.

Pour accéder à l’interface web de fish_config :

  1. Dans un terminal exécutant une session fish, entrez fish_config.

  2. Dans la sortie du terminal, utilisez Commande+clic ou Ctrl+clic pour ouvrir le lien dans le fichier HTML web_config.

    $ fish_config
    Web config started at file:///tmp/web_config60rc9tr3.html
    Hit ENTER to stop.
    
  3. Dans le fichier web_config, utilisez Commande+clic ou Ctrl+clic pour ouvrir le lien dans le port transféré.

    <body>
      <p><a href="http://localhost:8000/1b9411c2469e392b96df5e5b28da485b/">Start the Fish Web config</a></p>
    </body>
    

Pour aller plus loin