chsh를 사용하여 Linux에서 기본 셸을 변경하는 방법
게시 됨: 2022-01-29 Bash는 유일한 Linux 셸이 아닙니다. 매우 인기 있는 Zsh와 같은 다른 쉘을 시험해 보는 것은 쉽습니다. 마음에 드는 것을 찾으면 chsh
명령을 사용하여 기본 쉘로 만드십시오. 방법을 알려드리겠습니다.
쉘이 중요한 이유
쉘은 사용자와 운영 체제 사이에 있습니다. 명령을 입력하고 프로그램을 실행할 수 있는 터미널 창 내부의 환경을 제공합니다. 쉘은 입력을 확인하고 원하는 것을 알아냅니다. 입찰 자체를 수행할 수 있는 경우 수행합니다. 외부의 도움이 필요한 경우 경로를 검색하고 요청한 모든 작업을 수행할 수 있는 프로그램을 찾습니다.
Linux에는 다양한 쉘이 있습니다. 모두 동일한 핵심 작업(파일 시스템 탐색, 파일 작업, 프로그램 실행, 스크립트 실행)을 수행할 수 있습니다. 그러나 그들은 각각의 방식으로 이러한 작업을 수행하고 고유한 기능과 특성을 가지고 있습니다.
쉘은 특정 방식으로 동작하기를 원하는 사람들이 디자인하는 경향이 있습니다. 당신의 생각이 그 디자이너의 생각과 일치한다면 그 쉘이 당신에게 잘 맞을 것입니다. 또한 Linux에서 새 셸을 시도하는 것은 쉽습니다.
Ubuntu를 포함한 대부분의 Linux 배포판에서 기본 셸은 bash
입니다. 그것은 훌륭한 일을하고 매우 유능합니다. 그러나 다른 셸은 워크플로에 큰 영향을 줄 수 있는 시간 절약형 차이를 제공할 수 있습니다. 보지 않으면 절대 알 수 없습니다!
관련: ZSH란 무엇이며 Bash 대신 사용해야 하는 이유는 무엇입니까?
조개 한 통
우리는 이전에 다양한 Linux 셸을 다루었지만 다음은 가장 일반적인 셸에 대한 간략한 소개입니다.
- bash: Bourne again 셸은 많은 배포판에서 기본값입니다.
- rbash: 이 제한된
bash
셸은 실행 중인 사람이나 스크립트에 최소한의 기능을 제공합니다. - ash: Almquist 셸은 bash의 가벼운 버전입니다.
- dash: Debian Alquist Shell은 Ubuntu의 기본 셸 스크립트입니다.
bash
는 기본 로그인 및 대화형 셸이지만dash
는bash
보다 훨씬 가볍기 때문에 시스템 프로세스를 실행하는 데 사용됩니다. - zsh: Z 쉘은
bash
쉘 제품군을 현대적으로 재해석한 것입니다. 명령 맞춤법 검사 및 수정 제안과 같은 깔끔한 개선 사항을 제공합니다. - 물고기: 이 친숙한 대화형 쉘은 처음부터 작성되었으며 다른 쉘 제품군에서 파생되지 않았습니다. 사용자 친화적입니다. 다른 많은 특전 중에서 fish는 예측 텍스트와 유사하게 현재 폴더의 내용과 기록을 기반으로 명령에 대한 제안을 제공합니다.
- ksh: KornShell은 특히 강력한 스크립트 언어를 제공합니다.
관련: Bash, Zsh 및 기타 Linux 셸의 차이점은 무엇입니까?
설치된 셸 나열
컴퓨터에 설치된 쉘을 보려면 이 명령을 사용하십시오. 단순히 /etc/shells
파일의 내용을 나열합니다.
고양이 /etc/shells
우리는 bash
, dash
및 rbash
를 언급했지만 sh
는 무엇입니까?
sh
는 Bell Labs의 Ken Thompson이 1971년에 작성한 Thompson 쉘입니다. 더 이상 유지 관리되지 않으며 오랫동안 현대적인 쉘로 대체되었습니다. 여전히 다음을 첫 번째 줄로 포함하는 이전 스크립트와의 호환성을 유지하기 위해 순전히 포함되었습니다.
#!/bin/sh
이것은 sh
쉘을 사용하여 스크립트를 실행하도록 시스템에 지시합니다. 컴퓨터에 고대 쉘이 정말 있고 스크립트를 실행하는 데 사용되고 있습니까? which
명령은 명령을 입력할 때 실제로 실행되는 프로그램을 알려줍니다.
sh
를 입력하면 실행되는 내용을 살펴보겠습니다.
어떤 쉬
이것은 바이너리를 찾는 것으로 보입니다. 하지만 조금 더 깊이 파고들면 실제로 dash
를 가리키는 심볼릭 링크임을 알 수 있습니다. 스크립트를 실행하는 데 사용되는 경량 셸입니다.
ls -l /bin/sh
이것은 최신 시스템에서 sh
를 찾을 것으로 예상되는 스크립트에 대한 안전망을 제공하는 깔끔하고 가벼운 방법입니다.
다른 쉘 설치
fish
Shell을 설치하고 dave
의 기본값으로 설정해 보겠습니다. Ubuntu에서는 다음 명령을 입력합니다.
sudo apt-get 물고기 설치
Manjaro에서 pacman
을 사용하십시오.
sudo pacman - 싸이 피쉬
Fedora에서 다음을 입력합니다.
sudo dnf 설치 물고기
설치가 완료되면 설치된 셸을 다시 한 번 확인할 수 있습니다.
고양이 /etc/shells
새 쉘은 /usr/bin/fish
로 나타납니다. 해당 경로를 기록해 두십시오. 곧 필요할 것입니다.
$SHELL 환경 변수
$SHELL
환경 변수는 현재 쉘의 이름을 보유합니다. echo
로 설정되어 있는 것을 확인할 수 있습니다.
에코 $SHELL
fish
껍질을 시작합시다.
물고기
이제 $SHELL
환경 변수가 말하는 내용을 다시 확인해 보겠습니다.
에코 $SHELL
echo $SHELL
을 처음 사용할 때 우리는 bash
셸에 있습니다. 환경 변수에는 bash
실행 파일인 /bin/bash
의 경로가 있습니다.
fish
껍질을 시작하면 친근한 환영 메시지가 표시되고 명령 프롬프트가 변경됩니다. 놀라운 점은 $SHELL
환경이 여전히 bash
실행 파일인 /bin/bash
에 대한 경로를 보유하고 있다는 것입니다. 괜찮습니다. 이것은 정상입니다.
새 셸(또는 다른 프로그램)을 시작하면 상위 셸의 환경을 상속합니다. 따라서 fish
셸은 bash
셸에서 전역 및 내보낸 환경 변수를 상속합니다. $SHELL
환경 변수의 값은 변경되지 않았기 때문에 bash
쉘에서와 동일한 값을 fish
쉘에서도 갖습니다.
우리는 다른 프로그램과 마찬가지로 fish
를 실행하고 있습니다. exit
를 사용하여 fish
껍질을 종료할 수도 있습니다. 다른 프로그램과 마찬가지로 닫히고 bash
셸로 돌아갑니다.
그것은 새로운 껍질을 시험해보고 그들이 무엇을 할 수 있는지, 그리고 그들과 잘 지낼 수 있는지 여부를 확인하는 데 좋습니다. 점프하기 전에 탐색하고 이동 쉘로 채택할 수 있습니다.
fish
나 다른 쉘을 기본값으로 설정하기로 결정했다면 chsh
명령을 사용해야 합니다.
chsh 명령
chsh
명령을 사용하면 기본 쉘을 변경할 수 있습니다. 트릭은 기본 로그인과 기본 대화형 쉘을 모두 변경할 수 있다는 점을 인식하고 있다는 것입니다. 둘 중 하나를 변경하거나 둘 다 변경할 수 있습니다.
명령 프롬프트를 얻기 위해 로그인할 때마다 로그인 셸로 구성된 셸을 사용합니다. 이미 로그인하고 터미널 창을 열면 대화형 셸로 구성된 셸을 사용합니다. 이들은 같거나 다른 쉘일 수 있습니다.
로그인 셸을 설정하려면 매개변수 없이 chsh
를 사용하십시오.
쉿
비밀번호를 입력하라는 메시지가 표시됩니다. 그런 다음 새 셸의 경로를 입력하고 Enter 키를 눌러야 합니다.
다른 컴퓨터에서 이 테스트 컴퓨터에 원격으로 연결하는 경우 로그인하면 fish
껍데기 안에 있는 자신을 발견하게 됩니다.
대화식 쉘을 변경하려면 -s
(쉘) 옵션과 함께 chsh
를 사용하십시오. 명령줄에서 새 셸의 경로를 전달합니다.
chsh -s /usr/bin/fish
암호를 묻는 메시지가 표시되고 현재 셸의 명령 프롬프트로 돌아갑니다. 변경 사항을 적용하려면 로그아웃했다가 다시 로그인해야 합니다. 그렇게 하면 인사말과 fish
껍질 명령 프롬프트가 표시됩니다.
$SHELL
환경 변수는 이제 새 기본 셸의 경로를 유지합니다.
에코 $SHELL
다른 사용자 계정의 셸 변경
루트 권한이 있고 sudo
를 사용할 수 있는 경우 다른 사용자 계정의 셸을 변경할 수 있습니다. 명령은 그 사람의 사용자 이름을 명령줄에 추가한 것과 같이 이전과 동일합니다.
sudo chsh -s /usr/bin/fish mary
mary
가 다음에 로그인하면 터미널 창을 열 때 새 셸이 표시됩니다.
누구나 좋아하는 것이 있습니다
쉘 선택이 편안하고 잘 작동하는 한 훌륭합니다! 설치 루틴과 같은 일반적인 스크립트를 실행할 수 있어야 함을 기억하십시오. 여기에 언급된 셸의 경우 문제가 되지 않습니다.
물론 새 셸을 다운로드하여 설치하고 컴퓨터의 구성을 변경하지 않고 테스트 드라이브로 사용할 수도 있습니다. 당신이 매듭을 묶을 준비가 되면 chsh
가 당신을 위해 의식을 수행할 것입니다.
리눅스 명령어 | ||
파일 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · 보기 · 문자열 · 유형 · 이름 바꾸기 · zip · 압축 풀기 · 마운트 · 언마운트 · 설치 · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · 패치 · 변환 · rclone · 파쇄 · srm | |
프로세스 | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · 종료 · 재부팅 · 정지 · poweroff · passwd · lscpu · crontab · 날짜 · bg · fg | |
네트워킹 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
관련: 개발자 및 열광자를 위한 최고의 Linux 노트북