Почему моя оболочка по умолчанию от/etc/passwd не запущена терминалами на сессии Единицы?

Я пытаюсь установить рыбу как свою оболочку по умолчанию. Это установлено в системе через Кв. - добираются, и перечислен в /etc/shells:

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

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

> chsh -s /usr/bin/fish

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

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

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

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

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

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

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

6
задан 18 August 2015 в 17:31

2 ответа

Большинство терминалов (по крайней мере, терминальный гномом, urxvt, и XTerm, например), которые запускаются в настольной среде, такой как Unity, будет использовать SHELL переменная среды для выбора оболочки, когда они будут запущены.

SHELL должен автоматически быть установлен на Вашу оболочку по умолчанию, перечисленную в /etc/passwd, но переменная может быть перезаписана, когда Вы входите в систему. Удостоверьтесь, что Вы не установили SHELL=/bin/bash или что-то подобное в файле, который будет влиять на Вашу всю настольную сессию. Такие файлы включают:

  • ~/.profile
  • ~/.pam_environment
  • /etc/environment
  • , возможно, некоторые другие файлы, отредактированные пользователями Ubuntu менее часто, такой как /etc/profile

Дополнительно, если какие-либо сценарии такой как ~/.bashrc или ~/.bash_profile называют те другие файлы запуска и существует export SHELL=/bin/bash строка, которая будет также влиять на всю настольную сессию.

<час>

я знаю, что это приемлемый/поощряет, но я все еще очень не хочу ответить на свой собственный вопрос. Тем не менее, это может быть несколько полезно кому-то в будущем. Благодаря @heemayl и @muru для помощи мне заняться расследованиями.

4
ответ дан 23 November 2019 в 07:54

Для установки fish как оболочка по умолчанию для gnome-terminal, от gnome-terminal переходят в:

Edit > Profile Preferences

затем переходят в Title and Command вкладка, Вы доберетесь:

before

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

after

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

1
ответ дан 23 November 2019 в 07:54

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

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