chsh를 사용하여 Linux에서 기본 셸을 변경하는 방법

Bash는 유일한 Linux 셸이 아닙니다. 매우 인기 있는 Zsh와 같은 다른 쉘을 시험해 보는 것은 쉽습니다. 마음에 드는 것을 찾으면 chsh 명령을 사용하여 기본 쉘로 만드십시오. 방법을 알려드리겠습니다.

쉘이 중요한 이유

껍질 사용자와 운영 체제 사이에 있습니다. 명령을 입력하고 프로그램을 실행할 수 있는 터미널 창 내부의 환경을 제공합니다. 쉘은 입력을 확인하고 원하는 것을 알아냅니다. 입찰 자체를 수행할 수 있는 경우 수행합니다. 외부의 도움이 필요한 경우 경로를 검색하고 요청한 모든 작업을 수행할 수 있는 프로그램을 찾습니다.

Linux에는 다양한 쉘이 있습니다. 모두 동일한 핵심 작업(파일 시스템 탐색, 파일 작업, 프로그램 실행, 스크립트 실행)을 수행할 수 있습니다. 그러나 그들은 각각의 방식으로 이러한 작업을 수행하고 고유한 기능과 특성을 가지고 있습니다.

쉘은 특정 방식으로 동작하기를 원하는 사람들이 디자인하는 경향이 있습니다. 당신의 생각이 그 디자이너의 생각과 일치한다면 그 쉘이 당신에게 잘 맞을 것입니다. 또한 Linux에서 새 셸을 시도하는 것은 쉽습니다.

Ubuntu를 포함한 대부분의 Linux 배포판에서 기본 쉘은 bash입니다.. 그것은 훌륭한 일을 하고 매우 유능합니다. 그러나 다른 셸은 워크플로에 큰 영향을 줄 수 있는 시간 절약형 차이를 제공할 수 있습니다. 보지 않으면 절대 알 수 없습니다!

조개 한 통

우리는 이전에 다양한 Linux 셸을 다루었지만 다음은 가장 일반적인 셸에 대한 간략한 소개입니다.

배쉬: 시내 다시 쉘은 기본값 많은 배포판에서.
rbash: 이 제한된 bash 셸은 실행 중인 사람이나 스크립트에 최소한의 기능을 제공합니다.
재: Almquist 쉘 bash의 더 가벼운 버전입니다.
dash: Debian Alquist Shell은 기본 쉘 스크립트 우분투에서. bash는 기본 로그인 및 대화형 셸이지만 dash는 bash보다 훨씬 가볍기 때문에 시스템 프로세스를 실행하는 데 사용됩니다.
zsh: Z 쉘 bash 쉘 제품군을 현대적으로 재해석한 것입니다. 명령 맞춤법 검사 및 수정 제안과 같은 깔끔한 개선 사항을 제공합니다.
물고기: 이 친숙한 대화형 쉘 처음부터 작성되었으며 다른 쉘 제품군에서 파생되지 않았습니다. 사용자 친화적입니다. 다른 많은 특전 중에서 물고기는 기록과 현재 폴더의 내용을 기반으로 명령에 대한 제안을 제공합니다. 예측 텍스트.
크쉬: 콘쉘 특히 강력한 스크립팅 언어를 제공합니다.

  Google 스프레드시트에서 데이터 일치 세트 기준을 계산하는 방법

설치된 셸 나열

컴퓨터에 설치된 쉘을 보려면 이 명령을 사용하십시오. 단순히 /etc/shells 파일의 내용을 나열합니다.

cat /etc/shells

우리는 bash, dash 및 rbash에 대해 언급했지만 sh는 무엇입니까?

쉬는 톰슨 쉘, 1971년에 작성 켄 톰슨벨 연구소 명성. 더 이상 유지 관리되지 않으며 오랫동안 현대적인 쉘로 대체되었습니다. 여전히 다음을 첫 번째 줄로 포함하는 이전 스크립트와의 호환성을 유지하기 위해 순전히 포함되었습니다.

#!/bin/sh

이것은 sh 쉘을 사용하여 스크립트를 실행하도록 시스템에 지시합니다. 컴퓨터에 고대 쉘이 정말 있고 스크립트를 실행하는 데 사용되고 있습니까? which 명령은 명령을 입력할 때 실제로 실행되는 프로그램을 알려줍니다.

sh를 입력하면 실행되는 내용을 살펴보겠습니다.

which sh

이것은 바이너리를 찾는 것으로 보입니다. 하지만 조금 더 깊이 파고들면 실제로 스크립트를 실행하는 데 사용되는 경량 쉘인 dash를 가리키는 심볼릭 링크임을 알 수 있습니다.

ls -l /bin/sh

이것은 최신 시스템에서 sh를 찾을 것으로 예상되는 스크립트에 대한 안전망을 제공하는 깔끔하고 가벼운 방법입니다.

다른 쉘 설치

Fish Shell을 설치하고 dave의 기본값으로 설정해 보겠습니다. Ubuntu에서는 다음 명령을 입력합니다.

sudo apt-get install fish

Manjaro에서 pacman을 사용하십시오.

sudo pacman -Sy fish

Fedora에서 다음을 입력합니다.

sudo dnf install fish

설치가 완료되면 설치된 셸을 다시 한 번 확인할 수 있습니다.

cat /etc/shells

우리의 새 쉘은 /usr/bin/fish로 나타납니다. 해당 경로를 기록해 두십시오. 곧 필요할 것입니다.

$SHELL 환경 변수

$SHELL 환경 변수는 현재 쉘의 이름을 보유합니다. echo로 설정되어 있는 것을 확인할 수 있습니다.

echo $SHELL

생선 껍질을 시작합시다.

fish

이제 $SHELL 환경 변수가 말하는 내용을 다시 확인해 보겠습니다.

echo $SHELL

echo $SHELL을 처음 사용할 때 우리는 bash 셸에 있습니다. 환경 변수에는 bash 실행 파일인 /bin/bash의 경로가 있습니다.

생선 껍질을 시작하면 친근한 환영 메시지가 표시되고 명령 프롬프트가 변경됩니다. 놀라운 것은 $SHELL 환경이 여전히 bash 실행 파일인 /bin/bash에 대한 경로를 보유하고 있다는 것입니다. 괜찮습니다. 이것은 정상입니다.

  네트워크에 대해 자세히 알려주는 10가지 최고의 핑 스윕 도구

새 셸(또는 다른 프로그램)을 시작하면 상위 셸의 환경을 상속합니다. 따라서 어류 셸은 bash 셸에서 전역 및 내보낸 환경 변수를 상속합니다. $SHELL 환경 변수의 값은 변경되지 않았기 때문에 bash 쉘에서와 동일한 값을 물고기 쉘에서도 갖습니다.

우리는 다른 프로그램과 마찬가지로 물고기를 실행하고 있습니다. exit를 사용하여 물고기 껍질을 종료할 수도 있습니다. 다른 프로그램과 마찬가지로 닫히고 bash 셸로 돌아갑니다.

그것은 새로운 껍질을 시험해보고 그들이 무엇을 할 수 있는지, 그리고 그들과 잘 지낼 수 있는지 여부를 확인하는 데 좋습니다. 점프하기 전에 탐색하고 이동 쉘로 채택할 수 있습니다.

물고기나 다른 쉘을 기본값으로 설정하려면 chsh 명령을 사용해야 합니다.

chsh 명령

chsh 명령을 사용하면 기본 쉘을 변경할 수 있습니다. 트릭은 기본 로그인과 기본 대화형 쉘을 모두 변경할 수 있다는 점을 인식하고 있다는 것입니다. 둘 중 하나를 변경하거나 둘 다 변경할 수 있습니다.

명령 프롬프트를 얻기 위해 로그인할 때마다 로그인 셸로 구성된 셸을 사용합니다. 이미 로그인하고 터미널 창을 열면 대화형 셸로 구성된 셸을 사용합니다. 이들은 같거나 다른 쉘일 수 있습니다.

로그인 셸을 설정하려면 매개변수 없이 chsh를 사용하십시오.

chsh

비밀번호를 입력하라는 메시지가 표시됩니다. 그런 다음 새 셸의 경로를 입력하고 Enter 키를 눌러야 합니다.

다른 컴퓨터에서 이 테스트 컴퓨터에 원격으로 연결하는 경우 로그인하면 물고기 껍데기 안에 있는 자신을 발견하게 됩니다.

대화식 쉘을 변경하려면 -s(쉘) 옵션과 함께 chsh를 사용하십시오. 명령줄에서 새 셸의 경로를 전달합니다.

chsh -s /usr/bin/fish

암호를 묻는 메시지가 표시되고 현재 셸의 명령 프롬프트로 돌아갑니다. 변경 사항을 적용하려면 로그아웃했다가 다시 로그인해야 합니다. 그렇게 하면 인사말과 생선 껍질 명령 프롬프트가 표시됩니다.

$SHELL 환경 변수는 이제 새 기본 셸의 경로를 유지합니다.

echo $SHELL

다른 사용자 계정의 셸 변경

루트 권한이 있고 sudo를 사용할 수 있는 경우 다른 사용자 계정의 셸을 변경할 수 있습니다. 명령은 그 사람의 사용자 이름을 명령줄에 추가한 것과 같이 이전과 동일합니다.

sudo chsh -s /usr/bin/fish mary

mary가 다음에 로그인하면 터미널 창을 열 때 새 셸이 표시됩니다.

  고품질 애니메이션 GIF를 만드는 4가지 무료 도구

모든