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

0
1145
우분투 스타일의 리눅스 랩탑 시스템의 양식화 된 쉘 프롬프트.
Fatmawati Achmad Zaenuri / 셔터 스톡

배쉬 만이 유일한 리눅스 쉘은 아니다. 매우 인기있는 Zsh와 같은 다른 쉘을 시도하는 것은 쉽습니다. 마음에 드는 것을 찾으면 chsh 명령을 기본 쉘로 만듭니다. 우리는 당신에게 방법을 보여줄 것입니다.

쉘이 중요한 이유

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

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

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

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

관련 : ZSH 란 무엇이며 왜 Bash 대신 사용해야합니까?

많은 껍질

이전에 다양한 Linux 셸을 다루었지만 가장 일반적인 내용을 간략하게 소개합니다.

  • 세게 때리다: Bourne again 쉘은 많은 배포판에서 기본값입니다.
  • 강타 : 이 제한 bash 쉘은 그 사람이나 스크립트에서 최소한의 기능을 제공합니다.
  • 금연 건강 증진 협회: Almquist 쉘은 더 가벼운 버전의 bash입니다.
  • 대시: 데비안 알 키스트 쉘은 우분투의 기본 쉘 스크립트입니다. 동안 bash 기본 로그인 및 대화식 쉘입니다. dash 시스템 프로세스를 실행하는 데 사용됩니다. bash.
  • zsh : Z 쉘은 bash 포탄의 가족. 명령 철자 검사 및 제안 된 수정과 같은 깔끔한 개선 기능을 제공합니다.
  • 물고기: 이 대화 형 쉘은 처음부터 작성되었으며 다른 쉘 제품군에서 파생 된 것이 아닙니다. 사용자 친화적 인 제품입니다. 다른 많은 특전들 중에서, fish는 예측 텍스트와 유사하게, 당신의 역사와 현재 폴더의 내용에 근거한 명령에 대한 제안을 제공합니다.
  • ksh : KornShell은 특히 강력한 스크립팅 언어를 제공합니다.

관련 : Bash, Zsh 및 기타 Linux 셸의 차이점은 무엇입니까?

설치된 쉘 나열

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

cat /etc/shells

터미널 창에 cat / etc / shells가 있습니다.

우리는 언급했다 bash, dash, rbash하지만 무엇입니까 sh?

sh 1971 년 Bell Labs 명성의 Ken Thompson이 저술 한 톰슨 쉘입니다. 더 이상 유지 관리되지 않고 오랫동안 현대 포탄으로 대체되었습니다. 여전히 첫 번째 줄로 다음을 가진 오래된 스크립트와의 호환성을 유지하기 위해 포함되었습니다.

#!/bin/sh

이것은 시스템이 sh 쉘을 실행하여 스크립트를 실행하십시오. 컴퓨터에 고대 쉘이 있고 스크립트를 실행하는 데 사용됩니까? 그만큼 which 명령은 명령을 입력 할 때 실제로 어떤 프로그램이 실행되는지 알려줍니다.

입력 할 때 무엇이 ​​실행되는지 봅시다 sh:

which sh

바이너리를 찾은 것 같습니다. 하지만 좀 더 깊이 파고 들었다면 실제로 연결되는 심볼릭 링크라는 것을 알 수 있습니다. dash스크립트를 실행하는 데 사용되는 경량 쉘 :

ls -l /bin/sh

터미널 창에 표시됩니다.

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

다른 쉘 설치

설치하자 fish 쉘과 기본값으로 설정 dave. 우분투에서는 다음 명령을 입력합니다.

sudo apt-get install fish

sudo apt-get 터미널 창에 물고기를 설치하십시오.

Manjaro에서 pacman:

sudo pacman -Sy fish

sudo pacman-터미널 창에있는 물고기.

Fedora에서 다음을 입력하십시오.

sudo dnf install fish

sudo dnf는 터미널 창에 fish를 설치합니다.

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

cat /etc/shells

터미널 창에 cat / etc / shells가 있습니다.

우리의 새로운 껍질은 /usr/bin/fish. 그 길을 기록해 두십시오. 곧 필요할 것입니다.

$ SHELL 환경 변수

그만큼 $SHELL 환경 변수는 현재 쉘의 이름을 보유합니다. 어느 것을 설정했는지 확인할 수 있습니다 echo:

echo $SHELL

시작하자 fish 껍질:

fish

자, 다시 한 번 확인하겠습니다 $SHELL 환경 변수는 말합니다 :

echo $SHELL

터미널 창에서 $ SHELL을 에코하십시오.

우리가 처음 사용할 때 echo $SHELL우리는 bash 껍질. 환경 변수는 bash 실행 파일, /bin/bash.

우리가 시작할 때 fish 쉘에 친근한 환영 메시지가 나타나고 명령 프롬프트가 변경됩니다. 놀라운 것은 $SHELL 환경은 여전히 bash 실행 파일, /bin/bash. 괜찮습니다 — 이것은 정상입니다.

새 쉘 (또는 다른 프로그램)을 시작하면 상위 쉘의 환경을 상속합니다. 그래서 fish 쉘은 전역 및 내 보낸 환경 변수를 bash 껍질. 의 가치 때문에 $SHELL 환경 변수는 변경되지 않았습니다. fish 그것이 한 쉘 bash 껍질.

우리는 달리고있다 fish 다른 프로그램처럼. 우리는 또한 사용할 수 있습니다 exit 종료 fish 껍질. 다른 프로그램과 마찬가지로 닫히고 bash 껍질.

그것은 새로운 껍질을 시험 해보고, 그들이 할 수있는 일을보고, 껍질을 벗길 수 있는지 여부에 좋습니다. 점프하기 전에 탐색하고 하나를 이동 쉘로 채택 할 수 있습니다.

당신이 결정하면 fish– 또는 다른 쉘 — 기본값은 chsh 명령.

chsh 명령

그만큼 chsh 명령을 사용하면 기본 쉘을 변경할 수 있습니다. 트릭은 기본 로그인 및 기본 대화식 쉘을 모두 변경할 수 있음을 알고 있습니다. 둘 중 하나 또는 둘 다를 변경하려고 할 수 있습니다.

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

로그인 쉘을 설정하려면 chsh 매개 변수없이 :

chsh

터미널 창에서 chsh.

비밀번호를 묻는 메시지가 표시됩니다. 그런 다음 새 쉘의 경로를 입력하고 Enter를 누르십시오.

다른 컴퓨터에서이 테스트 컴퓨터에 원격으로 연결하면 fish 로그인하면 쉘

터미널 창에서 피쉬 쉘을 로그인 쉘로 표시하는 SSH 연결.

대화식 쉘 사용을 변경하려면 chsh 와 더불어 -s (쉘) 옵션. 명령 행에서 새 쉘의 경로를 전달하십시오.

chsh -s /usr/bin/fish

터미널 창에서 chsh -s / usr / bin / fish

암호를 입력하라는 메시지가 표시되고 현재 쉘의 명령 프롬프트로 돌아갑니다. 변경 사항을 적용하려면 로그 아웃했다가 다시 로그인해야합니다. 그렇게하면 인사와 fish 쉘 명령 프롬프트.

그만큼 $SHELL 환경 변수는 이제 새로운 기본 쉘에 대한 경로를 보유합니다.

echo $SHELL

터미널 창에서 $ SHELL을 에코하십시오.

다른 사용자 계정의 쉘 변경

루트 권한이 있고 사용할 수있는 경우 sudo다른 사용자 계정의 셸을 변경할 수 있습니다. 명령은 이전과 동일하며 해당 사용자의 사용자 이름이 명령 줄에 추가되었습니다.

sudo chsh -s /usr/bin/fish mary

터미널 창에서 sudo chsh -s / usr / bin / fish mary

언제 mary 다음에 로그인하면 터미널 창을 열 때 새 쉘이 나타납니다.

터미널 창의 피쉬 쉘 명령 프롬프트에서 사용자 mary.

모두가 좋아하는

쉘을 선택하는 것이 편안하고 효과가있는 한 훌륭합니다! 설치 루틴과 같은 일반적인 스크립트를 실행할 수 있어야합니다. 여기에 언급 된 껍질의 경우 이것은 문제가되지 않습니다.

물론 새 셸을 다운로드하여 설치하고 컴퓨터 구성을 변경하지 않고도 테스트 드라이브로 사용할 수 있습니다. 매듭을 묶을 준비가되면 chsh 당신을 위해 행사를 수행합니다.