如何将鱼设置为默认外壳?


110

有没有办法将鱼设置为ubuntu上网本混音中的默认外壳?我放入.bashrc来运行鱼,它工作正常,但是ubuntu认为它是在bash中运行的鱼,这意味着当我尝试关闭外壳程序时会警告我任务仍在运行。

它不会作为新应用程序弹出,因此我无法像普通应用程序那样将其固定在我的酒吧上。


2
来自官方的常见问题解答:如何使鱼成为我的默认外壳?
丹尼斯

Answers:


151

您可以通过运行将fish设置为默认外壳

chsh -s `which fish`

为此,对于另一个用户,只需在命令末尾添加用户名,然后使用即可sudo

然后注销并重新登录。

(要将其设置回bash,您当然需要使用Fish语法,例如chsh -s (which bash)


3
这似乎对我不起作用。它没有给出错误,但是即使我只是打开一个新标签,它似乎也无法正常工作。有什么想法吗?
Xodarap

16
您可能必须注销并重新登录-我只是在一个干净的虚拟机上进行了尝试,并且可以正常工作。
ajmitch

1
您如何重新设置?
knutole

7
不要不小心使用此命令,sudo否则您将更改根外壳。
Stephen Niedzielski 2015年

2
或者chsh -s (which fish)从鱼里面。
Wtower

30
usermod -s /usr/bin/fish username

但是必须以root身份运行。

这将永久更改指定用户的外壳。


1
我知道它不是Ubuntu,但我想发表评论:我在CentOS上,Authentication Failed尝试用非root用户更改shell 时遇到错误,经过广泛搜索以尝试找出它,这是唯一的事情起作用了。谢谢!
CWSpear 2013年

是的,它将对大多数具有usermod和fish外壳的unix口味起作用,或者将外壳更改为所需的任何口味
sweetfa 2013年

我这样做了,现在终端不再启动了。我收到“为此终端创建子进程出错”,“无法执行子进程“ / usr / bin / fish”(输入/输出错误)”。我该如何撤消呢?
ptkato 2015年

发出与root用户相同的命令,但使用bash代替fish作为shell。
sweetfa

21

我只是将行添加fish到我的末尾.bashrc


1
这是IMO最简单,最好的解决方案;)
Ben Marten

9
对不起,但是效率不高。:)它将加载您的鱼壳,但是会在运行bash时运行。
M. Junaid Salaat

1
为什么bash需要高效?@ M.JunaidSalaat
代号

乍一看,这似乎是一个肮脏的技巧,但是在将我的pc和fish设置为chsh的默认外壳后,我回到了这个解决方案。有些程序假定您正在使用bash,并且由于在fish上使用bash语法而会崩溃。到目前为止,我在i3wm和matlab中都遇到过此类问题。
Naheel

@codenamejames:不是bash需要高效,也不是那几毫秒很重要,但这是一种万无一失的情况,那么为什么不正确呢?特别是在这里我们向他人提供建议。我们应该更好地了解
swalog

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.