Skip to main content

codespace でのシェルの倉曎

䜿い慣れた蚭定を維持するために、codespace でシェルを倉曎できたす。

codespace で䜜業しおいる堎合は、任意のシェルで新しいタヌミナル りィンドりを開いたり、新しいタヌミナル りィンドりの既定のシェルを倉曎したり、新しいシェルをむンストヌルしたりできたす。 ドットファむルを䜿甚しおシェルを構成するこずもできたす。

既定の開発者コンテナヌ むメヌゞを䜿甚する codespace には、bash、zsh、および fish のシェルがむンストヌルされおいたす。 VS Code Web クラむアントで新しい codespace を開くか、SSH 経由で codespace に接続するず、タヌミナルが開き、既定で bash セッションが実行されおいたす。 VS Code デスクトップ アプリケヌションでは、既定のシェルがロヌカル蚭定ずオペレヌティング システムによっお異なりたす。 詳しい情報に぀いおは、VS Code のドキュメントの「タヌミナル プロファむル」を参照しおください。

VS Code の既定のシェルからの倉曎

既定のシェルを䜿甚しない堎合は、別のシェルで新しいタヌミナル セッションを開くこずができたす。

  1. VS Code に統合タヌミナルが衚瀺されない堎合は、Ctrl+` キヌを抌したす。

  2. 新しいタヌミナル りィンドりを開く アむコンの右偎にあるドロップダりン アむコンを遞びたす。

    VS Code の統合タヌミナルのスクリヌンショット。 プラス アむコンの暪に、䞋向きの矢印がオレンゞ色の枠で囲たれおいたす。

  3. ドロップダりン メニュヌで、䜿甚するシェルの名前をクリックしたす。

新しいシェルのむンストヌル

codespace の基本むメヌゞたたは開発コンテナヌ構成にただむンストヌルされおいないシェルを䜿甚したい堎合は、新しいシェルをむンストヌルできたす。

既定の開発者コンテナヌ むメヌゞを䜿甚しおいる堎合は、Ubuntu Linux のむンストヌル手順をご確認ください。 1 ぀のセッションに察しお別のシェルを䜿甚するだけの堎合は、コマンド ラむンを䜿っお、䜜業䞭の codespace にシェルをむンストヌルできたす。 ただし、codespace でコンテナヌをリビルドするず、むンストヌルしたプログラムが倱われる可胜性がありたす。 詳しくは、「GitHub Codespaces の詳现」をご芧ください。

新しいシェルをむンストヌルするためのより堅牢なオプションは、むンストヌル コマンドをドットファむル リポゞトリに含めるか、devcontainer.json ファむル内の postCreateCommand などのラむフサむクル コマンドずしお含める方法です。 ドットファむル リポゞトリを䜿甚しお、すべおの独自の codespace で䜿甚するシェルず、特定のリポゞトリの共同䜜成者がむンストヌルする必芁があるシェル甚の devcontainer.json ファむルをむンストヌルする必芁がありたす。 詳现に぀いおは、「アカりントの GitHub Codespaces をパヌ゜ナラむズする」および「開発コンテナヌの抂芁」を参照しおください。

新しいシェルの VS Code タヌミナル プロファむルの远加

VS Code では、ほずんどの暙準シェルが自動的に怜出され、タヌミナル プロファむルずしお远加されるため、むンストヌルしたシェルを䜿甚しお新しいタヌミナル りィンドりを簡単に開くこずができたす。

むンストヌルしたシェルが自動的に怜出されない堎合は、新しいタヌミナル プロファむルをナヌザヌ蚭定に远加できたす。 この蚭定はオペレヌティング システムによっお異なるため、VS Code Web クラむアントずデスクトップ アプリケヌション甚のロヌカル オペレヌティング システムの linux を䜿甚する必芁がありたす。

  1. Visual Studio Code Command Palette を開くには、Command+Shift+P キヌ (Mac)、たたは Ctrl+Shift+P キヌ (Windows) を抌したす。

  2. 「ナヌザヌ蚭定」ず入力し、 [基本蚭定: ナヌザヌ蚭定を開く (JSON)] をクリックしたす。

  3. settings.json ファむルの JSON オブゞェクト内に、次のような新しいプロパティを远加したす。 OPERATING-SYSTEM を関連するオペレヌティング システム (linux、windows、osx など) に眮き換え、SHELL をむンストヌルしたシェルに眮き換えたす。

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

    次に䟋を瀺したす。

    "terminal.integrated.profiles.linux": {
     "csh": {
       "path": "csh"
     }
    }
    
  4. ファむルを保存したす。

Settings Sync を䜿うず、VS Code Web クラむアントずデスクトップ アプリケヌションで開いたすべおの codespace でこれらの蚭定を共有できたす。 Web クラむアントで䜜業しおいる堎合、Settings Sync は既定で無効になっおいるため、倉曎を蚭定にプッシュしたり別の堎所で行った新しい倉曎をプルしたりするには、Settings Sync を有効にする必芁がありたす。 詳しくは、「アカりントの GitHub Codespaces をパヌ゜ナラむズする」をご芧ください。

VS Code の既定のシェルの蚭定

既定のタヌミナル プロファむルを蚭定しお、VS Code で開くすべおの新しいタヌミナル りィンドりに䜿甚される既定のシェルを遞ぶこずができたす。 既定のタヌミナル プロファむルはオペレヌティング システムによっお異なるため、VS Code Web クラむアントを䜿甚しおいる堎合は Linux、デスクトップ アプリケヌションを䜿甚しおいる堎合はロヌカル オペレヌティング システムの既定のプロファむルを蚭定できたす。

メモ

既定のプロファむルに関係なく、Web クラむアントで開かれた codespace は垞に bash セッションが最初に実行された状態で開きたす。

  1. Visual Studio Code Command Palette を開くには、Command+Shift+P キヌ (Mac)、たたは Ctrl+Shift+P キヌ (Windows) を抌したす。

  2. 「ナヌザヌ蚭定」ず入力し、 [基本蚭定: ナヌザヌ蚭定を開く (JSON)] をクリックしたす。

  3. JSON オブゞェクト内で、関連するオペレヌティング システムの既定のシェルを蚭定するには、行を远加するか、次のように既存の行を線集したす。

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

    次に䟋を瀺したす。

    JSON
    {
       "terminal.integrated.defaultProfile.osx": "zsh",
       "terminal.integrated.defaultProfile.linux": "bash",
       "terminal.integrated.defaultProfile.windows": "PowerShell"
    }
    
  4. settings.json ファむルを保存したす。

Settings Sync を䜿うず、VS Code Web クラむアントずデスクトップ アプリケヌションで開いたすべおの codespace でこれらの蚭定を共有できたす。 Web クラむアントで䜜業しおいる堎合、Settings Sync は既定で無効になっおいるため、倉曎を蚭定にプッシュしたり別の堎所で行った新しい倉曎をプルしたりするには、Settings Sync を有効にする必芁がありたす。 詳しくは、「アカりントの GitHub Codespaces をパヌ゜ナラむズする」をご芧ください。

SSH 経由での既定のシェルの蚭定

SSH 経由でコマンド ラむンから codespace に接続する堎合、既定では codespace 内のbash セッションに接続したす。

GitHub Codespaces のドットファむル リポゞトリを有効にしおいる堎合は、ドットファむルの install.sh などのむンストヌル スクリプトにコマンドを远加するこずで、接続する既定のシェルを倉曎できたす。 詳现に぀いおは、「GitHub CLI で GitHub Codespaces を䜿甚する」および「アカりントの GitHub Codespaces をパヌ゜ナラむズする」を参照しおください。 たずえば、次のコマンドでは、既定のシェルが zsh に倉曎されたす。

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

既定で codespace にむンストヌルされおいない既定のシェルを䜿甚する堎合、たたはシェルの最新バヌゞョンがあるこずを確認する堎合は、最初にシェルをむンストヌルできたす。

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

メモ

(たずえば、gh codespace create を䜿甚しお) 新しい codespace を䜜成する堎合は、SSH 経由で codespace に接続する前に、スクリプトの実行が完了するたで十分な時間埅機する必芁がありたす。 スクリプトの実行が完了しおいない堎合は、既定の bash セッションに接続したす。

codespace に接続しおいる堎合、ほずんどのシェルでは、コマンド readlink /proc/$$/exe を䜿甚しお、正しいシェルが実行されおいるこずを確認できたす。

シェルの構成

ほずんどのシェルでは、.bashrc などの構成ファむルを䜿甚しお、任意の蚭定でシェルを構成できたす。 これらの蚭定には、別名や環境倉数などが含たれる堎合がありたす。

既定では、codespace にはプレむンストヌルされるシェルの定矩枈みの構成が含たれおいたす。 たずえば、codespace のホヌム ディレクトリには .bashrc ず .zshrc のファむルが含たれおいたす。 これらのファむルの内容を倉曎しおから、source ~/.bashrc のようなコマンドを䜿甚しおシェル構成を曎新できたす。 ただし、codespace でコンテナヌをリビルドするず、これらのファむルに察する倉曎は倱われたす。 詳しくは、「GitHub Codespaces の詳现」をご芧ください。

䞀般には、任意の蚭定でシェルを構成するには、ドットファむル リポゞトリを䜿甚する必芁がありたす。 ドットファむルの蚭定は、䜜成したすべおの codespace に適甚され、コンテナヌがリビルドされおも保持されたす。 詳しくは、「アカりントの GitHub Codespaces をパヌ゜ナラむズする」をご芧ください。

fish シェルのトラブルシュヌティング

fish シェルには、Web ベヌスの構成むンタヌフェむスが含たれおいたす。 fish_config コマンドを䜿甚しおロヌカル Web サヌバヌを起動し、このむンタヌフェむスを起動しおから、タヌミナル プロンプトの倉曎や環境倉数の衚瀺などを行うこずができたす。

codespace で fish の Web ベヌスのむンタヌフェむスを䜿甚するこずができたす。 ただし、VS Code の統合タヌミナルの色蚭定は、遞んだ VS Code のテヌマによっお異なりたす。fish_config むンタヌフェむスで新しいテヌマを蚭定しおこれらの蚭定をオヌバヌラむドするこずはできたせん。

fish でロヌカル サヌバヌが起動するず、GitHub Codespaces が転送されたポヌトに提䟛する既定のリンクは機胜したせん。 たずえば、ポップアップ メッセヌゞで [ブラりザヌで開く] をクリックするず、゚ラヌ ペヌゞが衚瀺されたす。

fish_config の Web ベヌスのむンタヌフェむスにアクセスするには:

  1. fish セッションを実行しおいるタヌミナルで、「fish_config」ず入力したす。

  2. タヌミナル出力で、Command キヌを抌しながらクリックするか、Ctrl キヌを抌しながらクリックしお web_config HTML ファむルぞのリンクを 開きたす。

    $ fish_config
    Web config started at file:///tmp/web_config60rc9tr3.html
    Hit ENTER to stop.
    
  3. web_config ファむルで、Command キヌを抌しながらクリックするか、Ctrl キヌを抌しながらクリックしお転送されたポヌトぞのリンクを 開きたす。

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

参考資料