我的 Web 服务器被使用 zsh shell 的人篡改了。我更喜欢使用 bash shell,因为这是 Ubuntu 和 OS X(我使用的两个主要操作系统)的默认设置。但这个问题主要集中在 Ubuntu 服务器上。
我在这个 Web 服务器上运行了 4 个网站,我使用 byobu、tmux、ruby/ruby on rails、node.js、Apache 和一些守护进程。如果我将当前 root shell 从 zsh 切换到 bash,此切换是否会产生任何负面影响?例如,进程是否会因为其父进程(shell)已切换而被终止?
答案1
Stack Overflow 上的答案(从 zsh 切换到 bash):
您只需使用 exec 将当前 shell 替换为新 shell 即可:
切换到 bash:
exec bash
切换到 zsh:
exec zsh
这不会影响新的终端窗口或任何东西,但它很方便。
答案2
更改 shell,通过sudo chsh --shell=/bin/bash $USER
将会更改 中的 shell 字段/etc/passwd
。此值仅在登录时查询,此时系统不知道要为您使用哪个 shell。
正在运行的进程(无论是由 启动的还是由 启动的zsh
)都不会受到影响bash
apache
evil_overlord's_program
答案3
打开终端并使用以下命令:
chsh -s $(which bash)
答案4
在 Mac OS Catalina 上
更改为 zsh:
chsh -s /bin/zsh
更改为bash:
chsh -s /bin/bash