사실 linux를 따로 배운 적이 없이, 업무 중에 조금씩 익혀나간터라...
권장되는 방법인지 자신이 없다. ==;;
가장 쉬운 방법은 환경변수 SHELL을 확인하는 것임.
echo ${SHELL}
환경변수가 아닌 직접 설정 파일을 통해 사용자의 shell을 확인하고 변경하는 방법은
/etc/passwd
를 열어서 확인하고 수정하는 것이다 (당연히 sudo
를 이용해야 한다).
내가 주로 사용하는 id인 dsaint31
에 대한 라인은 현재 다음과 같다.
dsaint31:x:1000:1000:,,,:/home/dsaint31:/home/linuxbrew/.linuxbrew/bin/zsh
zsh
를 사용하고 있다. (brew
를 통해 설치):
colon이 separator이고 맨 마지막의/home/dsaint31:/home/linuxbrew/.linuxbrew/bin/zsh
이 shell에 해당한다.
다른 방법으로는 chsh
을 이용하는 방법인데,
이 방법이 정상적으로 동작하려면 /etc/shells
에 사용할 shell이 있어야 한다.
(문제는 Ubuntu에서 brew
로 zsh
를 설치하면 /etc/shells
에 추가되지 않아서 chsh
로 변경이 안된다.)
brew
로zsh
을 설치한 경우,/etc/shells
에brew
로 설치한zsh
의 위치를 추가한 후 수행한다.
chsh --shell /home/linuxbrew/.linuxbrew/bin/zsh <계정명>
위의 명령어를 수행하고 해당 계정으로 로그인하면 shell이 바뀌어 있음.
아니면 다음과 같이 확인해도 됨.
cat /etc/passwd|grep <계정명>
macOS에서는 다음과 같은 형태로 변경한다.
chsh -s /bin/bash
chsh -s /bin/zsh
첫라인은 bash
로 쓰고 싶을 때, 두번째는 zsh로 쓰고싶을 때임.
다시 한번 말하지만 /etc/shells
에 바꿀 쉘이 있어야 함.
마지막으로 usermod
를 사용할 수 있다. (가장 먼저 배운 방식인데... =.= 가장 사용하질 않는다.)
user modification보다는 change shell이 더 직관적이라 그런건지...
명령어의 방식은 chsh
과 동일하다.
usermod --shell /bin/sh <계정명>
/bin/sh
부분이 바꾸고자 하는 shell이며/etc/shells
에서 고르면 된다.
728x90
'Linux' 카테고리의 다른 글
[Tip] 특정 문구가 있는 process들을 모두 kill (0) | 2023.09.08 |
---|---|
[Tip] 특정 port 사용 중인 프로세스 종료시키기 (0) | 2023.09.08 |
[Command] lsof : 열린 파일 혹은 port 관련 정보 출력 (0) | 2023.09.08 |
[Linux] homebrew 설치하기 (Ubuntu) (0) | 2023.09.05 |
[Linux] 특정 process의 memory 점유율 확인하기 : ps + awk + grep (0) | 2023.08.23 |