Почему моя оболочка по умолчанию из / etc / passwd не запускается терминалами в сеансе Unity?

Я пытаюсь установить рыбу в качестве оболочки по умолчанию. Он установлен в системе через apt-get и указан в /etc/shells:

> which fish
/usr/bin/fish
> grep fish /etc/shells
/usr/bin/fish

Я использовал chsh для переключения с Bash на fish:

> chsh -s /usr/bin/fish

И моя оболочка по умолчанию была изменена в /etc/passwd:

> grep "myusername" /etc/passwd
myusername:x:1000:1000:Oh Spite,,,:/home/myusername:/usr/bin/fish

Awesome. Затем я вышел из системы и перезагрузился. Плагины входа (например, виртуальные TTY и SSH) теперь начинают рыбу.

И все же, когда я запускаю терминал с помощью gnome-terminal или urxvt, запускается сеанс bash. Кроме того, переменная SHELL по-прежнему установлена ​​на /bin/bash.

Интересно, что Terminator действительно использует рыбу в качестве оболочки по умолчанию. Но даже в этом сеансе SHELL установлено значение /bin/bash. Если я запускаю urxvt из Terminator, urxvt запускает сеанс Bash.

Что еще мне нужно сделать, чтобы изменить мою оболочку по умолчанию, чтобы ловить рыбу?

(См. Также этот вопрос, но это не является дубликатом, потому что я выполнил эти инструкции , перезагружает . Много раз.)

1
задан 19 August 2015 в 03:31

1 ответ

Чтобы установить fish в качестве оболочки по умолчанию для gnome-terminal, из gnome-terminal перейдите к:

Edit > Profile Preferences

, затем перейдите на вкладку Title and Command, вы получите:

Измените его как:

Теперь, когда вы начинаете новый экземпляр gnome-terminal, fish будет запущен вместо bash.

1
ответ дан 23 May 2018 в 18:06
  • 1
    Спасибо, heemays. Это будет работать для gnome-terminal, но я пытаюсь установить рыбу в качестве оболочки по умолчанию для моего пользователя в системе, а не для конкретного приложения. На самом деле, я искушаюсь просто поставить exec fish на вершину моего сценария запуска Bash, который будет работать для любого терминала, но это не обязательно; Я пытаюсь понять, как это сделать правильно. – ohspite 19 August 2015 в 00:51
  • 2
    @ohspite Ваша оболочка для входа установлена ​​на fish, но некоторые приложения могут использовать bash ecxplicitely, вам нужно вручную изменить их. Кроме того, обратите внимание, что существуют различия между типами логина и недействительности входа и файлы, которые они читают, в то время как начиная .. Ваш вопрос не кажется правильно направленным сейчас. Не могли бы вы уточнить, где / в каких приложениях у вас возникла проблема с fish? – heemayl 19 August 2015 в 00:56
  • 3
    Спасибо, что помогли мне сосредоточить этот вопрос. Я не думаю, что каждое приложение нужно настраивать самостоятельно; например, man urxvt говорит, что по умолчанию будет использоваться переменная среды SHELL. Возможно, более узкий вопрос: «Почему SHELL не установлен в значение / etc / passwd после входа в систему», но это не мой истинный вопрос, поэтому я пытался избежать проблемы XY. – ohspite 19 August 2015 в 01:54

Другие вопросы по тегам:

Похожие вопросы: