linux 명령어 chsh
지정된 쉘 변경하는 명령어.
$ chsh
Linux 명령어 chsh
사용자의 기본 셸을 변경하기 위한 명령어
1. 자세한 설명
chsh 명령어는 Linux에서 사용자의 기본 로그인 셸을 변경하는 데 사용됩니다. 사용자는 현재 셸에서 다른 셸(예: bash, zsh, fish 등)로 쉽게 변경할 수 있으며, 새로운 셸을 사용하기 위해 별도의 설정 없이 로그인 시 바로 사용할 수 있습니다.
2. 사용법
- 현재 사용자 셸 변경
chsh -s [셸 경로]
현재 사용자의 기본 로그인 셸을 지정된 셸로 변경합니다. - 특정 사용자 셸 변경
sudo chsh -s [셸 경로] [사용자]
관리자 권한으로 다른 사용자의 기본 셸을 변경합니다. - 현재 설정된 셸 확인
cat /etc/passwd | grep [사용자 이름]
사용자의 기본 셸을 확인합니다.
3. 자세하게 설명
chsh 명령어는 기본적으로 사용자의 /etc/passwd 파일을 수정하여 기본 셸 설정을 변경합니다. 이 명령어를 사용하기 전에 해당 셸이 시스템에 설치되어 있어야 하며, 셸 경로는 /etc/shells 파일에 포함되어 있어야 합니다.
주요 옵션:
- -s [셸 경로]: 변경할 셸의 경로를 지정합니다.
- 사용자 이름: 특정 사용자의 셸을 변경하려면 사용자 이름을 명시합니다.
4. 자세한 명령어 사용법
다음은 chsh 명령어의 다양한 사용 예제입니다:
# 현재 사용자의 기본 셸을 bash로 변경
$ chsh -s /bin/bash
# 현재 사용자의 기본 셸을 zsh로 변경
$ chsh -s /bin/zsh
# fish 셸로 변경
$ chsh -s /usr/bin/fish
# 관리자 권한으로 특정 사용자 셸 변경
$ sudo chsh -s /bin/bash username
# 현재 셸 확인
$ echo $SHELL
# 사용자의 기본 셸 확인
$ cat /etc/passwd | grep $USER
# 시스템에 설치된 셸 확인
$ cat /etc/shells
# 특정 사용자의 기본 셸 확인
$ cat /etc/passwd | grep username
# 현재 설정된 셸에서 zsh로 변경 및 확인
$ chsh -s /bin/zsh
$ echo $SHELL
# 스크립트를 통해 셸 자동 변경
#!/bin/bash
chsh -s /bin/bash $USER
# 잘못된 셸 경로로 변경 시도
$ chsh -s /invalid/shell/path # 오류 발생
# 특정 사용자의 셸 변경 후 확인
$ sudo chsh -s /bin/zsh username
$ cat /etc/passwd | grep username
# 시스템에 설치된 셸로 변경 및 확인
$ chsh -s $(cat /etc/shells | grep /bin/bash)
# 스크립트를 통해 셸 변경 자동화
#!/bin/bash
default_shell="/bin/bash"
for user in user1 user2 user3; do
sudo chsh -s $default_shell $user
done
# 결과를 로그 파일로 저장
$ chsh -s /bin/zsh > shell_change_log.txt 2>&1
위의 예제는 chsh 명령어를 사용하여 기본 로그인 셸을 변경하고 관리하는 다양한 방법을 보여줍니다.

No responses yet