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


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.