Як встановити рибу як оболонку за замовчуванням?


110

Чи є спосіб встановити рибу як оболонку за замовчуванням у реміксі нетбука ubuntu? Я поміщаю в .bashrc для запуску риби, що працює чудово, але ubuntu розпізнає її як рибу, що працює всередині bash, а це означає, що коли я намагаюся закрити оболонку, вона попереджає мене, що завдання все ще виконується.

Він не з’являється як новий додаток, тому я не можу прив’язати його до своєї панелі як звичайний додаток.


Відповіді:


151

Ви можете встановити рибу як оболонку за замовчуванням, запустивши

chsh -s `which fish`

Щоб зробити це для іншого користувача, просто додайте ім’я користувача в кінці команди та використовуйте sudo.

Потім вийдіть із системи та ввійдіть назад.

(Щоб повернути його назад bash, потрібно використовувати звичайний синтаксис Fish, як це chsh -s (which bash))


3
Це, здається, не працює для мене. Це не дає помилки, але просто не здається, навіть якщо я просто відкрию нову вкладку. Будь-які думки?
— Xodarap

16
Можливо, вам доведеться вийти з системи та знову увійти - я просто спробував це на чистій віртуальній машині, і це спрацювало.
— ajmitch

1
Як встановити його назад?
— кнутоле

7
Не випадково запускайте цю команду sudoабо ви заміните кореневу оболонку замість цього.
— Stephen Niedzielski

2
Або chsh -s (which fish)зсередини риби.
— Wtower

30
usermod -s /usr/bin/fish username

Потрібно запустити як root.

Це змінить оболонку назавжди для вказаного користувача.


1
Я знаю, що це не Ubuntu, але я хотів прокоментувати: я був у CentOS, і я отримував Authentication Failedпомилку, намагаючись змінити оболонку з не-root користувачем і після широкого пошуку, щоб спробувати це зрозуміти, це було єдине що спрацювало. Дякую!
— CWS з'являється

Так, це працюватиме на більшості ароматів Unix, які мають користувальницькі та рибні шкаралупи, або змінюють шкаралупу на будь-який смак, який ви хочете
— sweetfa

Я це зробив, і зараз термінал більше не запускається. Я отримую "Під час створення дочірнього процесу для цього терміналу сталася помилка", "Не вдалося виконати дочірній процес" / usr / bin / fish "(помилка вводу / виводу)". Як я можу це скасувати?
— ptkato

Випустіть ту ж команду, що і root, але використовуйте bash замість риби як оболонку.
— соффа

21

Я щойно додав рядок fishдо кінця свого .bashrc.


1
Це найпростіше і найкраще рішення, IMO;)
— Бен Мартен

9
Вибачте, але це не ефективно. :) Він завантажить вашу рибну шкаралупу, але поверх вашого запуску.
— М. Джунайд Салаат

1
Чому баш повинен бути ефективним? @ M.JunaidSalaat
— codenamejames

З першого погляду це здається брудним злом, але через деякий час використання мого ПК з рибою встановлено як оболонку за замовчуванням з chsh, я повернувся до цього рішення. Деякі програми припускають, що ви використовуєте bash і буде виходити з ладу через використання синтаксису bash на рибі. Поки що я стикався з такими проблемами в i3wm та matlab.
— Нахель

@codenamejames: Справа не в тому, що баш має бути ефективним, або те, що ці кілька мілісекунд мають значення, але це нічого не втрачає, то чому б не зробити це правильно? Особливо тут, де ми даємо поради іншим людям. Ми повинні знати краще
— сволог

13

Я згоден з chshправильною відповіддю. Однак:

Якщо ви запустите chshі отримаєте помилку

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

просто додайте до рибного двійкового місця /etc/shells.

Знайдено тут .


Це необхідно зробити на macOS Mojave.
— Додекеракт

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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.