0%

bash 命令行前提示为 “-bash-4.4$” 的修复方法

前言

摸了一个月的大鱼,最近可能要准备参加一个 Challenge,赶紧回复状态。(震惊了,博客鸽了三个月了)

在连接服务器时发现,每次命令行的美刀符前一般都是当前所在路径,即 pwd 命令的输出,以便于时时刻刻确认自己在什么目录下,但是这时无论何时都不显示自己所在的路径,只显示“-bash-4.4$”,似乎是 bash 的版本号,很不便于 Linux 的命令行交互。

简单搜索一下大致定位问题是用户根目录下 .bashsrc.bash_profile 这两个文件有问题。

https://www.quora.com/What-does-%E2%80%98bash-4-4-%E2%80%99-mean Quora 上有同志问题一样。

似乎是 bashsrc 文件中设置 Prompt 的问题,以前似乎都是默认设置好的,这次不知道为什么似乎回到了另一种默认上,即输出版本号。

根据 Quora 中引用的 https://wiki.archlinux.org/title/Bash/Prompt_customization 所述,应该是 Prompt 可以进行设置,输出时间,用户,所在目录等等。

尝试修复 bashsrc,得到的结果却是说在系统目录中有原始版,可我比对后发现大小一致,应该就是原始版。一筹莫展之际,突然看到说还有别的 shell 可以尝试,bash 只是因为是默认 shell 所以流行。简单搜索了一下,好多都在推荐 zsh 和 fish,恰好服务器安装了 zsh,没有安装 fish,我就又没有服务器权限就先测试 zsh 了。

正文

进了 zsh (其实只要命令行直接输入 zsh 回车即可)后,一顿测试,发现 prompt 还是很怪。

1
2
3
4
5
6
ubuntu% echo $SHELL
/bin/zsh
ubuntu% zsh --version
zsh 5.4.x (x86_64-ubuntu-linux-gnu)
ubuntu% pwd
/home/user_xxx

Prompt 只有 ubuntu ,也并没有所在目录,很不方便。就在 GitHub 闲逛看看有没有其他好用的新生代 shell 时,看到一个博主推了 ohmyzsh。https://github.com/ohmyzsh/ohmyzsh

安装以后感觉整个人都好了。(安装需要访问一个国内环境访问不到的网址,网络上有现成的 shell 脚本,自己新建一个文件拷贝进去就好,url:https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)

image-20210729233120428

总之就是花花绿绿,还能清楚看到工作路径,非常舒服。更舒服的截图可以参见官网。

看一下 Github repo 的 Readme,发现还可以切主题,很舒服。

综上,最初的问题解决了,虽然以一种奇怪的方式(手动狗头)。


更新:

使用了 https://github.com/romkatv/powerlevel10k 主题,但是实际使用时发现不能修改 style。

官方 Trouble Shooting:https://github.com/romkatv/powerlevel10k#some-prompt-styles-are-missing-from-the-configuration-wizard

发现是因为使用的终端只支持 8 色,只有 256 色支持才能选择其他 style。在命令行使用下面的命令确定终端支持的色彩方案。

1
print $terminfo[colors]	

对于 MobaXterm:对 Session 右键—— Edit session —— Terminal settings —— Terminal Type,修改成 xterm-256color 即可。