标签: chsh

如何在 Ubuntu 中更改 shell?

我有一个 Ubuntu Server VPS,我想/bin/bash/用作我的 shell。我怎样才能改变我的外壳?我有 root 访问权限,但我不以 root 身份工作。所以破折号现在是我的默认外壳。

我已阅读如何将 Bash 设为 Ubuntu 上的默认 shell?chsh接缝是首选的方式。但是当我输入时,chsh /bin/bash我收到此消息: chsh: unknown user /bin/bash

如果我只是输入/bin/bashBash shell 接缝就可以正常工作。如何改变它?

bash shell command-line chsh ubuntu

100
推荐指数
3
解决办法
19万
查看次数

Ubuntu:不小心将 root 用户更改为不存在的 shell

我尝试更改用户的 shell,但使用了“sudo chsh”,并将根 shell 更改为“bash”而不是“/bin/bash”。现在,当我尝试更改它时,我收到“chsh:PAM 身份验证失败”,并且其他事情似乎也不起作用。

~$ sudo su
Cannot execute bash: No such file or directory
Run Code Online (Sandbox Code Playgroud)

恢复模式也会发生这种情况。我该怎么做才能将其更改为可用的内容?

root user-accounts shell chsh ubuntu

9
推荐指数
2
解决办法
4177
查看次数

为什么我在尝试 chsh 时看到“操作被拒绝,因为当前凭据没有适当的权限”?

我正在设置一个新的开发 Macbook Pro,并尝试用 zsh 替换 bash。我安装了 zsh 并且可以运行它来在会话中更改 shell。当我使用

sudo chsh -s /bin/zsh username
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

chsh:操作被拒绝,因为当前凭据没有适当的权限。操作被拒绝,因为当前凭据没有适当的权限。

AFAIK 我在机器上有管理员权限。什么可能导致这种情况?

mac zsh administrator chsh

7
推荐指数
1
解决办法
6047
查看次数

Mac 终端:改变了我的外壳,现在无法启动它

我通过 MacPorts 安装了 bash 4.0,然后用于sudo chsh -s /opt/local/bin/bash my_user更改我的外壳。

在此之前,我尝试只在chsh没有 的情况下运行sudo,但它不允许我将 shell 更改为该路径。

现在,当我尝试启动终端时,我收到一条消息,指出我的 shell 具有非法值,因此终端无法启动。我单击退出,不出所料但令人讨厌的是,它立即退出。

跛脚终端

  1. 如何重置我的外壳以便我可以再次启动终端?
  2. 如何将我的 shell 设置为通过 MacPorts 安装的 bash 以使其正常工作?
  3. 为什么终端会认为我的 shell 是非法的?是站在新禁酒主义者一边吗?

Mac OS X 10.5.8。一切都超级超级最新。

mac terminal bash macports chsh

5
推荐指数
3
解决办法
9464
查看次数

使用用户安装的shell?

如何将我的 shell 更改为安装在我的主目录中的 shell?我在我的主目录中安装了一个新的 zsh,它被选中:

>> which zsh
>> /home/myname/bin/zsh
Run Code Online (Sandbox Code Playgroud)

它没有在 /etc/shells 中列出(也不会,因为我没有权限),那么我该如何安装呢?

chsh -s $(which zsh) myname
Changing shell for myname
Password: 
chsh: "/home/myname/bin/zsh" is not listed in /etc/shells
chsh: use -l option to see list
Run Code Online (Sandbox Code Playgroud)

linux zsh shell chsh pam

4
推荐指数
1
解决办法
2236
查看次数

当默认 shell 与 bash 不兼容时,为什么 bash 脚本不能正常工作?

我的默认外壳是鱼,因为它更好。但通常当我运行脚本时,我收到的错误似乎是由 fish 处理的 bash 脚本引起的。我认为这是因为脚本编写者假设默认的 shell 是 bash,但我不明白其中的机制。

例如,CrashPlan install.sh 脚本以 bash shebang 开头:

~/CrashPlan-install> head install.sh
#!/bin/bash

#############################################################
# Linux Client Installer Script
#############################################################
Run Code Online (Sandbox Code Playgroud)

所以当我运行./install.sh它时,它应该由 bash 处理,对吗?默认终端外壳应该是无关紧要的。然而,当我的默认 shell 是 fish 时,运行这样的脚本会导致 fish 返回错误,就好像它正在处理脚本一样:

fish: Expected a command name, got token of type “Run job in background”. Did you mean
 “COMMAND; and COMMAND”? See the help section for the “and” builtin command by typing “help and”.
Standard input: sed -imod "s|Exec=.*|Exec=/usr/local/crashplan/bin/CrashPlanDesktop|" 
 /home/username/Desktop/CrashPlan.desktop && rm -rf /home/username/Desktop/CrashPlan.desktopmod 
Run Code Online (Sandbox Code Playgroud)

这是因为我的计算机配置错误还是因为脚本是以不可移植的方式编写的?

bash shell-script chsh fish

4
推荐指数
1
解决办法
3235
查看次数

如何检查什么是默认shell

是否有一个配置文件存储当前用户的默认 shell(bash、zsh 等)?

bash zsh shell chsh

0
推荐指数
1
解决办法
1525
查看次数