생선을 기본 껍질로 어떻게 설정합니까?


110

우분투 넷북 리믹스에서 물고기를 기본 쉘로 설정하는 방법이 있습니까? .bashrc를 넣어 물고기를 실행하면 정상적으로 작동하지만 우분투는 bash 내에서 실행되는 물고기로 인식합니다. 즉, 쉘을 닫으려고 할 때 작업이 여전히 실행 중임을 경고합니다.

새로운 응용 프로그램으로 표시되지 않으므로 일반적인 응용 프로그램처럼 내 막대에 고정 할 수 없습니다.


답변:


151

다음을 실행하여 생선을 기본 껍질로 설정할 수 있습니다

chsh -s `which fish`

다른 사용자를 위해 그렇게하려면 명령 끝에 사용자 이름을 추가하고를 사용하십시오 sudo.

그런 다음 로그 아웃했다가 다시 로그인하십시오.

(로 다시 설정하려면 bash물론 Fish 구문을 사용해야합니다 chsh -s (which bash))


3
이것은 나를 위해 작동하지 않는 것 같습니다. 오류가 발생하지 않지만 새 탭을 열더라도 작동하지 않는 것 같습니다. 이견있는 사람?
Xodarap

16
로그 아웃했다가 다시 로그인해야 할 수도 있습니다. 방금 깨끗한 가상 머신에서 시도했지만 제대로 작동했습니다.
ajmitch

1
어떻게 다시 설정합니까?
knutole

7
실수로이 명령을 실행하지 마십시오. 그렇지 않으면 sudo대신 루트 쉘이 변경됩니다.
Stephen Niedzielski

2
또는 chsh -s (which fish)물고기 내부에서.
Wtower

30
usermod -s /usr/bin/fish username

그래도 루트로 실행해야합니다.

지정된 사용자의 셸이 영구적으로 변경됩니다.


1
우분투가 아니라는 것을 알고 싶지만 의견을 말하고 싶었습니다 .CentOS에 있었고 Authentication Failed루트가 아닌 사용자로 쉘을 변경하려고 시도 하는 중 오류가 발생했습니다. 효과가있었습니다. 감사!
CWSpear

그렇습니다. 쉘에 대해 usermod와 fish가있는 대부분의 유닉스 풍미에서 작동하거나 원하는 맛으로 껍질을 바꿀 것입니다.
sweetfa

나는 그것을했고 이제 터미널은 더 이상 시작되지 않습니다. "이 터미널에 대한 자식 프로세스를 만드는 동안 오류가 발생했습니다", "자식 프로세스를 실행하지 못했습니다"/ usr / bin / fish "(입력 / 출력 오류)"가 나타납니다. 어떻게 취소 할 수 있습니까?
ptkato

root와 동일한 명령을 실행하지만 shell 대신 fish 대신 bash를 사용하십시오.
sweetfa

21

방금 fish끝에 줄 을 추가했습니다 .bashrc.


1
이것이 가장 간단하고 최상의 솔루션입니다. IMO;)
Ben Marten

9
죄송하지만 효율적이지 않습니다. :) 그것은 물고기 껍질을로드하지만 배쉬 위에 실행됩니다.
M. Junaid Salaat

1
bash가 왜 효율적이어야합니까? @ M.JunaidSalaat
codenamejames

언뜻보기에 이것은 더러운 해킹처럼 보이지만 chsh가있는 기본 쉘로 설정된 생선으로 내 PC를 사용한 후이 솔루션으로 돌아 왔습니다. 일부 프로그램은 bash를 사용한다고 가정하고 물고기에서 bash 구문을 사용하기 때문에 충돌합니다. 지금까지 i3wm과 matlab에서 그러한 문제에 직면했습니다.
Naheel

@ codenamejames : bash가 효율적이어야하거나 몇 밀리 초가 중요하지는 않지만 잃을 것이없는 경우가 있습니다. 왜 정확하지 않습니까? 특히 우리가 다른 사람들에게 조언을하고있는 곳. 우리는 더 잘 알아야합니다
스와 로그

13

나는 chsh정답에 동의합니다 . 하나:

당신이 실행 chsh하고 오류가 발생하면

/usr/local/bin/fish: non-standard shell

간단히 물고기 이진 위치를에 추가하십시오 /etc/shells.

찾을 여기 .


이것은 macOS Mojave에서 수행해야합니다.
Dodekeract

2

에 다음 /etc/shells을 추가하십시오 /usr/local/bin/fish.

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/fish

그런 다음 chsh -s /usr/local/bin/fish.

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