Linux에서 기본 셸을 변경하는 방법

Linux에서 기본 셸을 변경하는 방법
Linux 기능 이미지에서 기본 셸 변경

셸은 Linux 시스템과 통신할 수 있는 인터페이스입니다. 명령을 입력하고 컴퓨터를 제어할 수 있습니다. 모든 Linux 사용자는 기본 셸을 가지고 있으며, 대부분의 경우 bash입니다. Zsh, ksh, rc, fish를 포함하여 사용 가능한 다른 옵션도 많이 있습니다. 여기서는 Linux에서 기본 셸을 변경하는 다양한 방법을 보여드립니다.

현재 셸 이름을 찾는 방법

기본 셸을 변경하기 전에 현재 어떤 셸을 사용하고 있는지 아는 것이 좋습니다. 다음 echo 명령을 사용하여 시스템 환경 변수를 확인하면 이를 알 수 있습니다.

echo 명령을 사용하여 현재 셸 경로 표시

/bin/bash이 명령어는 현재 셸의 경로(예: . 또는 .) 를 출력합니다 /bin/zsh.

/etc/passwd파일에는 중요한 사용자 계정 정보가 들어 있습니다. 이 파일을 사용하여 현재 셸을 찾을 수도 있습니다.

환경 변수 파일에서 grep 명령을 사용하여 현재 셸 찾기

ps 명령을 사용하여 프로세스 ID(PID)를 확인하면 현재 셸에 대한 자세한 정보를 찾을 수도 있습니다.

ps 명령을 사용하여 현재 셸 프로세스 정보 표시

이 출력은 현재 셸이 bash임을 확인합니다.

설치된 모든 셸 나열

이제 현재 셸을 알았으니 시스템에서 사용할 수 있는 다른 옵션이 무엇인지 확인하고 싶을 수 있습니다. 시스템에 설치된 모든 셸을 찾으려면 파일을 살펴봐야 합니다 /etc/shells.

cat 명령을 사용하여 시스템에서 사용할 수 있는 모든 셸의 목록을 확인해 보겠습니다.

Linux Ubuntu 시스템에 설치된 모든 셸 나열

이렇게 하면 어떤 셸로 전환할 수 있는지 알 수 있습니다. 패키지 관리자를 사용하여 새 셸을 설치하고 기본 셸로 사용할 수도 있습니다.

게다가 기본 셸을 변경하지 않고도 나열된 셸을 일시적으로 사용해 볼 수 있습니다. 새 셸 세션을 시작하려면 터미널에 셸 이름을 입력하기만 하면 됩니다.

예를 들어 Zsh 셸을 시도하려면 다음을 입력하십시오.

이렇게 하면 영구적으로 전환하기 전에 다양한 쉘을 실험해 볼 수 있습니다.

Chsh를 사용하여 Linux에서 기본 셸 변경

리눅스에서 기본 셸을 변경하는 가장 간단한 방법은 chsh명령을 사용하는 것입니다. 이 chsh명령은 “change shell”의 약자이며, 옵션과 함께 사용되며 -s그 뒤에 셸 경로가 옵니다.

쉘 경로를 모르는 경우 type zsh터미널에서 실행하여 원하는 경로를 가져옵니다. 쉘 경로를 얻은 후 기본 쉘을 특정 쉘로 변경할 수 있습니다.

예를 들어 Zsh로 전환하려면 chsh -sZsh 셸 경로와 함께 다음을 사용해야 합니다.

chsh 명령을 사용하여 기본 셸 변경

비밀번호를 입력하라는 메시지가 표시됩니다. 입력하면 로그아웃했다가 다시 로그인하여 변경 사항을 확인해야 합니다.

chsh명령은 기본 로그인 셸을 영구적으로 변경합니다. 다음 명령을 실행하여 변경 사항을 확인할 수 있습니다.

/etc/passwd 파일에서 grep 명령을 사용하여 쉘 전환 확인

다른 사용자 셸 변경

루트 권한이 있고 명령을 사용할 수 있는 경우 sudo다른 사용자 계정의 기본 셸을 변경할 수 있습니다. 이는 fish와 같은 다른 셸 환경을 다른 사용자에게 제공하려는 경우 유용할 수 있습니다.

예를 들어, 다른 사용자의 셸을 Zsh로 변경하려면 터미널에서 다음 명령을 실행합니다.

chsh 명령을 사용하여 다른 사용자 셸 변경

이 명령은 시스템에 특정 사용자의 기본 셸을 .에 위치한 Zsh 셸로 변경하라고 지시합니다 /bin/zsh.

Usermod를 사용하여 Linux에서 기본 셸 변경

쉘을 전환하는 또 다른 방법은 명령을 사용하는 것입니다 usermod. 이 명령은 사용자 계정을 수정하는 데 사용되며 기본 쉘을 변경하는 데에도 사용할 수 있습니다.

를 사용하여 기본 셸을 변경하려면 usermod루트 권한으로 터미널을 열고 다음 명령을 입력하세요.

/path/to/new/shell여기에서는 원하는 셸 경로와 your_username실제 사용자 이름으로 바꿔야 합니다 .

예를 들어 기본 bash 셸을 zsh로 변경해 보겠습니다.

usermod 명령을 사용하여 기본 셸을 다른 셸로 변경

이전과 마찬가지로 Linux 시스템에서 로그아웃했다가 다시 로그인하면 변경 사항이 적용됩니다.

다음 명령을 사용하여 사용자 계정 세부 정보를 확인하면 새로운 셸로의 전환을 확인할 수 있습니다.

getent를 사용하여 기본 셸에서 전환한 후 새 셸 확인

Linux에서 기본 셸을 수동으로 변경

파일 을 편집하여 기본 셸을 수동으로 변경할 수도 있습니다 /etc/passwd. 기본 셸 경로를 새 셸로 바꿔서 할 수 있습니다. 하지만 이 기술은 올바르게 하지 않으면 문제가 발생할 수 있으므로 조심해야 합니다.

셸을 수동으로 변경하려면 /etc/passwdroot 권한으로 좋아하는 텍스트 편집기(예: nano 또는 vim)를 사용하여 파일을 엽니다.

nano 텍스트 편집기를 사용하여 /etc/passwd 파일 열기

파일에서 사용자 이름을 찾으세요. 사용자 항목의 마지막 필드에 현재 쉘이 표시됩니다. 원하는 쉘 경로로 변경하세요.

/bin/bash예를 들어, 기본 셸 경로를 다음과 같이 변경해 보겠습니다 /bin/zsh.

/etc/passwd 텍스트 편집기에서 기본 bash 셸을 zsh 셸로 변경합니다.

Ctrl마지막으로 +를 눌러 파일을 저장 하고 + S로 편집기를 종료합니다 . 다시 로그아웃하고 다시 로그인하여 변경 사항을 적용합니다.CtrlX

기본 셸의 대안

Bash는 훌륭하고 강력한 스크립팅 도구이지만 명령줄 환경을 개선하고 더 나은 사용자 정의 옵션을 제공할 수 있는 다른 셸도 여러 개 있습니다.

물고기

fish는 Friendly Interactive Shell을 말합니다. 이 셸은 구문 강조, 자동 제안 및 탭 완성 기능이 있는 직관적인 명령줄 인터페이스를 갖추고 있어 명령 입력이 간편합니다.

fish에는 웹 기반 구성 도구도 포함되어 있습니다. 즉, 구성 파일을 파헤치지 않고도 설정을 조정하고 기능을 만들 수 있습니다.

Zsh

Zsh 또는 Z 셸은 사용자 정의가 매우 용이하고 많은 유용한 기능이 있습니다. 가장 좋은 기능으로는 글로빙, 자동 수정, 사용자 정의 구성 및 고급 탭 완성이 있습니다.

Zsh는 플러그인과 테마도 지원하여 셸 경험을 원하는 대로 쉽게 조정할 수 있습니다. Zsh를 사용하면 Git 브랜치를 표시하고 간단한 패턴으로 복잡한 파일 조작을 수행할 수도 있습니다.

키시

ksh 또는 KornShell은 C 셸과 Bourne 셸의 가장 뛰어난 기능을 가져와 고급 스크립팅 기능을 갖춘 강력하고 사용하기 쉬운 셸을 만듭니다. ksh의 일부 기능에는 내장 수학 함수, 명령줄 편집, 셸 스크립팅 및 확장성이 포함됩니다.

마무리하기

Linux에서 기본 셸을 변경하는 것은 명령줄 경험을 향상시킬 수 있는 간단한 프로세스입니다. 파워 유저라면 다른 대체 Linux 셸을 꼭 시도해야 합니다.

이미지 출처: Lukas via Unsplash . 모든 스크린샷은 Haroon Javed가 촬영했습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다