{"meta":{"title":"Codespace에서 셸 변경","intro":"Codespace에서 셸을 변경하여 익숙한 설정을 유지할 수 있습니다.","product":"Codespaces","breadcrumbs":[{"href":"/ko/codespaces","title":"Codespaces"},{"href":"/ko/codespaces/customizing-your-codespace","title":"codespace 맞춤 구성"},{"href":"/ko/codespaces/customizing-your-codespace/changing-the-shell-in-a-codespace","title":"셸 변경"}],"documentType":"article"},"body":"# Codespace에서 셸 변경\n\nCodespace에서 셸을 변경하여 익숙한 설정을 유지할 수 있습니다.\n\nCodespace에서 작업할 때는 선택한 셸이 있는 새 터미널 창을 열거나, 새 터미널 창의 기본 셸을 변경하거나, 새 셸을 설치할 수 있습니다. Dot 파일을 사용하여 셸을 구성할 수도 있습니다.\n\n기본 dev 컨테이너 이미지를 사용하는 codespace에는 `bash`, `zsh` 및 `fish` 셸이 제공됩니다. VS Code 웹 클라이언트에서 새 codespace를 열거나 SSH를 통해 codespace에 연결하는 경우 터미널이 열릴 때 `bash` 세션이 기본적으로 실행됩니다. VS Code 데스크톱 응용 프로그램에서 기본 셸은 로컬 설정 및 운영 체제에 따라 달라집니다. 자세한 내용은 VS Code 설명서의 [터미널 프로필](https://code.visualstudio.com/docs/terminal/profiles)을 참조하세요.\n\n## VS Code에서 기본 셸 변경\n\n기본 셸을 사용하지 않으려면 다른 셸을 사용하여 새 터미널 세션을 열 수 있습니다.\n\n1. VS Code에 통합 터미널이 보이지 않으면 <kbd>Ctrl</kbd>+\\`을(를) 누릅니다.\n\n2. 새 터미널 창을 열기 위한 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-plus\" aria-label=\"plus\" role=\"img\"><path d=\"M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z\"></path></svg> 아이콘의 오른쪽에서 드롭다운 아이콘을 선택합니다.\n\n   ![VS Code의 통합 터미널 스크린샷. 더하기 아이콘 옆에 아래쪽 화살표가 주황색 윤곽선으로 강조 표시됩니다.](/assets/images/help/codespaces/new-shell-session.png)\n\n3. 드롭다운 메뉴에서 사용하려는 셸의 이름을 클릭합니다.\n\n## 새 셸 설치\n\nCodespace에 대한 기본 이미지 또는 개발 컨테이너 구성에 아직 설치되지 않은 셸을 사용하려는 경우 새 셸을 설치할 수 있습니다.\n\n기본 dev 컨테이너 이미지를 사용하는 경우 Ubuntu Linux의 설치 지침을 참조합니다. 한 세션에 다른 셸을 사용하려는 경우 명령줄을 사용하여 작업 중인 codespace에 셸을 설치할 수 있습니다. 그러나 codespace에서 컨테이너를 다시 빌드하면 설치한 프로그램이 손실될 수 있습니다. 자세한 내용은 [GitHub Codespaces에 대한 심층 분석](/ko/codespaces/about-codespaces/deep-dive#about-the-directory-structure-of-a-codespace)을(를) 참조하세요.\n\n새 셸을 설치하기 위한 보다 강력한 옵션은 dot 파일 리포지토리에 설치 명령을 포함하거나 `postCreateCommand`에 있는 `devcontainer.json` 파일과 같이 수명 주기 명령으로 설치 명령을 포함하는 것입니다. 모든 개인 코드스페이스에서 사용하려는 셸을 설치하려면 dotfiles 저장소를 사용하고, 특정 저장소에 기여하는 사용자가 설치해야 하는 셸은 `devcontainer.json` 파일을 사용하세요. 자세한 내용은 [계정에 대한 GitHub Codespace 개인 설정](/ko/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#dotfiles) 및 [개발 컨테이너 소개](/ko/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)을(를) 참조하세요.\n\n### 새 셸에 대한 VS Code 터미널 프로필 추가\n\nVS Code은(는) 대부분의 표준 셸을 자동으로 검색하여 터미널 프로필로 추가하므로 설치한 셸을 사용하여 새 터미널 창을 쉽게 열 수 있습니다.\n\n설치한 셸이 자동으로 검색되지 않는 경우 사용자 설정에 새 터미널 프로필을 추가할 수 있습니다. 이 설정은 운영 체제에 따라 달라지므로 VS Code 웹 클라이언트에 `linux`을(를) 사용하고 데스크톱 응용 프로그램에 로컬 운영 체제를 사용해야 합니다.\n\n1. Visual Studio Code Command Palette을(를) 열려면, <kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>(Mac) 또는 <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>(Windows)를 누릅니다.\n\n2. \"사용자 설정\"을 입력한 다음 **기본 설정: JSON(사용자 설정 열기)** 을 클릭합니다.\n\n3. `settings.json` 파일의 JSON 개체 내에 다음과 같은 새 속성을 추가합니다.\n   `OPERATING-SYSTEM`을(를) 관련 운영 체제(예: `linux`, `windows` 또는`osx`)로 바꾸고 `SHELL`을 설치한 셸로 바꿉니다.\n\n   ```json copy\n   \"terminal.integrated.profiles.OPERATING-SYSTEM\": {\n     \"SHELL\": {\n       \"path\": \"SHELL\"\n     }\n   }\n   ```\n\n   예시:\n\n   ```json\n   \"terminal.integrated.profiles.linux\": {\n    \"csh\": {\n      \"path\": \"csh\"\n    }\n   }\n   ```\n\n4. 파일을 저장합니다.\n\n설정 동기화를 사용하여 VS Code 웹 클라이언트 및 데스크톱 애플리케이션에서 여는 모든 codespace에서 이러한 설정을 공유할 수 있습니다. 웹 클라이언트에서 작업하는 경우 설정 동기화는 기본적으로 사용하지 않도록 설정되며 설정 동기화를 사용하도록 설정하여 설정 변경을 푸시하거나 다른 곳에서 변경한 새 변경 내용을 끌어오도록 설정해야 합니다. 자세한 내용은 [계정에 대한 GitHub Codespace 개인 설정](/ko/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#settings-sync)을(를) 참조하세요.\n\n## VS Code에서 기본 셸 설정\n\nVS Code에서 여는 모든 새 터미널 창에 사용되는 기본 셸을 기본 터미널 프로필에서 설정할 수 있습니다. 기본 터미널 프로필은 운영 체제에 따라 달라지므로 VS Code 웹 클라이언트를 사용하는 경우 Linux에 대한 기본 프로필을 설정하고 데스크톱 응용 프로그램을 사용하는 경우 로컬 운영 체제를 설정할 수 있습니다.\n\n> \\[!NOTE]\n> 기본 프로필과 관계없이 웹 클라이언트에서 열린 codespace는 항상 처음에 `bash` 세션이 실행됩니다.\n\n1. Visual Studio Code Command Palette을(를) 열려면, <kbd>Command</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>(Mac) 또는 <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>(Windows)를 누릅니다.\n\n2. \"사용자 설정\"을 입력한 다음 **기본 설정: JSON(사용자 설정 열기)** 을 클릭합니다.\n\n3. JSON 개체 내에서 관련 운영 체제에 대한 기본 셸을 설정하려면 다음과 같은 줄을 추가하거나 기존 줄을 편집합니다.\n\n   ```json\n   \"terminal.integrated.defaultProfile.OPERATING-SYSTEM\": \"SHELL\"\n   ```\n\n   예시:\n\n   ```json copy\n   {\n      \"terminal.integrated.defaultProfile.osx\": \"zsh\",\n      \"terminal.integrated.defaultProfile.linux\": \"bash\",\n      \"terminal.integrated.defaultProfile.windows\": \"PowerShell\"\n   }\n   ```\n\n4. `settings.json` 파일을 저장합니다.\n\n설정 동기화를 사용하여 VS Code 웹 클라이언트 및 데스크톱 애플리케이션에서 여는 모든 codespace에서 이러한 설정을 공유할 수 있습니다. 웹 클라이언트에서 작업하는 경우 설정 동기화는 기본적으로 사용하지 않도록 설정되며 설정 동기화를 사용하도록 설정하여 설정 변경을 푸시하거나 다른 곳에서 변경한 새 변경 내용을 끌어오도록 설정해야 합니다. 자세한 내용은 [계정에 대한 GitHub Codespace 개인 설정](/ko/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#settings-sync)을(를) 참조하세요.\n\n## SSH를 통한 기본 셸 설정\n\nSSH를 통해 명령줄에서 codespace에 연결하는 경우 기본적으로 codespace의 `bash` 세션에 연결합니다.\n\nGitHub Codespaces에 대해 dot 파일 리포지토리를 사용하도록 설정한 경우 dot 파일에서 `install.sh`과(와) 같이 설치 스크립트에 명령을 추가하여 연결하는 기본 셸을 변경할 수 있습니다. 자세한 내용은 [GitHub CLI에서 GitHub Codespace 사용](/ko/codespaces/developing-in-a-codespace/using-github-codespaces-with-github-cli#ssh-into-a-codespace) 및 [계정에 대한 GitHub Codespace 개인 설정](/ko/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#dotfiles)을(를) 참조하세요. 예를 들어 다음 명령은 기본 셸을 `zsh`로 변경합니다.\n\n```shell copy\nsudo chsh \"$(id -un)\" --shell \"/usr/bin/zsh\"\n```\n\n기본적으로 codespace에 설치되지 않은 기본 셸을 사용하거나 최신 버전의 셸이 있는지 확인하려면 먼저 셸을 설치합니다.\n\n```shell copy\nsudo apt-get update -y\nsudo apt-get install -y csh\nsudo chsh \"$(id -un)\" --shell \"/usr/bin/csh\"\n```\n\n> \\[!NOTE]\n> 새 codespace를 만드는 경우(예: `gh codespace create` 사용) SSH를 통해 codespace에 연결하기 전에 스크립트 실행이 완료되도록 충분한 시간을 기다려야 합니다. 스크립트 실행이 완료되지 않은 경우 기본 `bash` 세션에 연결됩니다.\n\nCodespace에 연결된 경우 대부분의 셸에서 `readlink /proc/$$/exe` 명령으로 올바른 셸이 실행 중인지 확인할 수 있습니다.\n\n## 셸 구성\n\n대부분의 셸에서는 선호하는 설정으로 셸을 구성하기 위해서 `.bashrc`과(와) 같이 구성 파일을 사용할 수 있습니다. 이러한 설정에는 별칭 및 환경 변수와 같은 항목이 포함될 수 있습니다.\n\n기본적으로 codespace는 미리 설치된 셸의 미리 정의된 구성을 포함합니다. 예를 들어 codespace의 홈 디렉터리에는 `.bashrc` 파일과 `.zshrc` 파일이 포함됩니다. 이러한 파일의 내용을 변경한 다음, `source ~/.bashrc`와 같은 명령을 사용하여 셸 구성을 업데이트할 수 있습니다. 그러나 codespace에서 컨테이너를 다시 빌드하면 이러한 파일의 변경 내용이 손실됩니다. 자세한 내용은 [GitHub Codespaces에 대한 심층 분석](/ko/codespaces/about-codespaces/deep-dive#about-the-directory-structure-of-a-codespace)을(를) 참조하세요.\n\n일반적으로 dot 파일 리포지토리를 사용하여 선호하는 설정으로 셸을 구성해야 합니다. Dot 파일의 설정은 생성한 모든 코드스페이스에 적용되며 컨테이너의 다시 빌드 후에도 유지됩니다. 자세한 내용은 [계정에 대한 GitHub Codespace 개인 설정](/ko/codespaces/setting-your-user-preferences/personalizing-github-codespaces-for-your-account#dotfiles)을(를) 참조하세요.\n\n### `fish` 셸 문제 해결\n\n`fish` 셸에는 웹 기반 구성 인터페이스가 포함됩니다.\n`fish_config` 명령을 사용하여 로컬 웹 서버를 시작하고 이 인터페이스를 시작한 다음 터미널 프롬프트를 변경하거나 환경 변수를 보는 등의 작업을 수행할 수 있습니다.\n\nCodespace의 `fish`에 대해 웹 기반 인터페이스를 사용할 수 있습니다. 그러나 VS Code의 통합 터미널 색 설정은 선택한 VS Code 테마에 따라 달라지며 `fish_config` 인터페이스에서 새 테마를 설정하여 위의 설정을 재정의할 수 없습니다.\n\n`fish`가 로컬 서버를 시작하는 경우 GitHub Codespaces이(가) 전달된 포트에 제공하는 기본 링크가 작동하지 않습니다. 예를 들어 팝업 메시지에서 **브라우저에서 열기**를 클릭하면 오류 페이지로 이동됩니다.\n\n`fish_config`를 위해 웹 기반 인터페이스에 액세스하려면 다음을 수행합니다.\n\n1. `fish` 세션을 실행하는 터미널에서 `fish_config`를 입력합니다.\n\n2. 터미널 출력에서 <kbd>Command</kbd>+클릭 또는 <kbd>Ctrl</kbd>+클릭을 사용하여 `web_config` HTML 파일에 대한 링크를 엽니다.\n\n   ```shell\n   $ fish_config\n   Web config started at file:///tmp/web_config60rc9tr3.html\n   Hit ENTER to stop.\n   ```\n\n3. `web_config` 파일에서 <kbd>Command</kbd>+클릭 또는 <kbd>Ctrl</kbd>+클릭을 사용하여 전달된 포트에 대한 링크를 엽니다.\n\n   ```html\n   <body>\n     <p><a href=\"http://localhost:8000/1b9411c2469e392b96df5e5b28da485b/\">Start the Fish Web config</a></p>\n   </body>\n   ```\n\n## 추가 참고 자료\n\n* [사용자 기본 설정 지정](/ko/codespaces/setting-your-user-preferences)\n* [귀하의 codespaces 관리](/ko/codespaces/managing-your-codespaces)"}