쉘을 zsh에서 bash로 변경


17

zsh 셸을 사용하는 사람이 웹 서버를 조작했습니다. bash 쉘을 사용하는 것이 더 편안합니다 .Ubuntu 및 OS X (내가 사용하는 두 가지 주요 운영 체제)와 함께 제공되는 기본값입니다. 그러나이 질문은 우분투 서버에 중점을 둡니다. 나는이 웹 서버에서 4 개의 웹 사이트를 실행하고 있으며, byobu를 사용하고, tmux를 사용하고, 레일에서 ruby ​​/ ruby, node.js, apache, 몇 가지 데몬을 사용합니다. 현재 루트 셸을 zsh에서 bash로 전환하면이 스위치로 인한 부작용이있을 수 있습니까? 예를 들어, 부모 프로세스 (쉘)가 전환되어 프로세스가 종료됩니까?


변경의 결과에 대해 묻고 있습니까 (아무 것도 zsh를 사용하고 있으며 언제든지 원할 때 bash로 전환 할 수 있습니까) 쉘을 효과적으로 변경하는 방법에 대해 묻고 있습니까?
— Braiam

@Braiam 나는 변화의 결과에 대해 불안합니다. 결과가 없으면 변경하겠습니다. 나는 쉘이 아파치와 같은 이러한 데몬의 부모 프로세스라고 생각하고 있었고, 그것을 전환해야한다면 아파치 프로세스를 죽일 것이라고 생각했다. 그러나 나는 틀렸다고 생각한다.
— JohnMerlino

답변:


10

를 통해 쉘 sudo chsh --shell=/bin/bash $USER을 변경하면의 쉘 필드가 변경됩니다 /etc/passwd. 이 값은 시스템이 어떤 쉘을 사용할지 모르는 경우 로그인시에만 참조됩니다.

에 의해 시작 여부를 실행 프로세스 zsh, bash apache또는 evil_overlord's_program영향을받지 않습니다


쉘이 실행중인 다른 프로세스의 상위 프로세스가 아니거나 제어 터미널 (쉘이 아닌) 만 상위 프로세스로 간주됩니까?
— JohnMerlino

login프로그램은 모두 같은 프로세스에서 실행됩니다. 그것이 당신을 허용 할 때, 그것은 UID 등으로 다른 프로세스를 생성하고 / bin / bash (/ etc / passwd에서)를 실행합니다. bash 쉘은 STDIN에서 읽고 (로 설정 login) 내장되지 않은 명령을 포크 / 실행하고 종료 될 때까지 기다린 후 추가 명령을 반복합니다. "터미널 제어"라는 개념은 유닉스 / 리눅스에서는 유용하지 않습니다.
— waltinator 2016 년

25

스택 오버플로에서 응답 ( zsh에서 bash로 전환 ) :

exec를 사용하여 현재 쉘을 새 쉘로 바꿀 수 있습니다.

bash로 전환하십시오.

exec bash

zsh로 전환하십시오.

exec zsh

이것은 새로운 터미널 창이나 다른 것에 영향을 미치지 않지만 편리합니다.


작동하지 않았다. still : echo $ SHELL / usr / bin / zsh
— ses

8

터미널을 열고 다음 명령을 사용하십시오.

chsh -s $(which bash)

나는 이것이 chsh -s / bin / bash와 동일하다고 가정한다
— JohnMerlino

2
which bash절대 경로를 제공 할 bash경우는 동일한 것이되므로 /bin/bash어디에 bash위치하고있다.
— ryanjdillon

0

Mac OS Catalina에서

  1. zsh로 변경하십시오.

    chsh -s /bin/zsh
  2. bash로 변경하십시오.

    chsh -s /bin/bash
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.