金华网站建设公司排名,七台河网站制作,四平专业网站设计,可免费注册的网站解决bash终端的路径名称乱码
默认打开了zsh#xff0c;当我输入bash后#xff0c;就出现了乱码
(context_rag) [23fanyaohead1]~/mycode-thesis% bash
(context_rag) [%n%m]%~%#乱码原因排查
我遇到了终端乱码问题#xff0c;需要检查当前的终端环境和编码设置#xff0c;下…解决bash终端的路径名称乱码
默认打开了zsh当我输入bash后就出现了乱码
(context_rag) [23fanyaohead1]~/mycode-thesis% bash
(context_rag) [%n%m]%~%#乱码原因排查
我遇到了终端乱码问题需要检查当前的终端环境和编码设置下面是我的检查过程
终端输入locale
系统的locale设置看起来正常都是UTF-8编码。
再检查一下终端的字符编码设置和环境变量。
mycode-thesis 终端
echo $TERM echo $LANG echo $LC_ALL 环境变量看起来正常。
检查一下Python的默认编码设置因为可能在运行Python脚本时遇到乱码问题。在终端中输入
python3 -c import sys; print(Python version:, sys.version); print(Default encoding:, sys.getdefaultencoding()); print(File system encoding:, sys.getfilesystemencoding()); print(Stdout encoding:, sys.stdout.encoding)Python编码设置也是正常的。
检查一下的shell配置文件看看是否有特殊的编码设置或别名导致乱码。
echo $SHELL cat ~/.bashrc | grep -i lang\|locale\|encoding || echo No encoding settings found in .bashrc检查一下当前的终端提示符设置因为我注意到提到的乱码可能与PS1提示符有关。查询结果如上图
echo Current PS1: $PS1最终我发现了乱码问题的原因原来是终端提示符PS1使用了zsh风格的变量格式%n、%m、%~、%#但当前使用的是bash shell这导致这些变量无法正确解析。
解决方案错误这是踩过的坑
临时修复 当前会话有效
export PS1(context_rag) [\u\h]\w\$ 永久修复 添加到~/.bashrc文件
echo export PS1(context_rag) [\u\h]\w\$ ~/.bashrc
source ~/.bashrc成功解决解决方案正确
这里我之前犯错了不小心执行了下面的命令把echo export PS1(context_rag)[\u\h]\w\$ ~/.bashrc 虚拟环境固定写上去了所以上图会看到带有虚拟环境的标识但这是错误的会误导我们因为目前所在环境是base我们不能写死在PS1显示中。应该写为默认环境变量意思到这个问题所以我更正了又重新设置一遍
正确重新设置一遍如下
或者不喜欢这样的配置我喜欢把当前路径加到[ ] 的里面, 用空格隔开
echo export PS1(\$CONDA_DEFAULT_ENV)[\u\h \w]\$ ~/.bashrc
source ~/.bashrc这里我的默认环境变量是$CONDA_DEFAULT_ENV base
显示知其然也要知其所以然
**学习积累不仅要知道这样做设置正确还要知道为什么这样做。**所以我查阅了一些参数含义举例子让自己理解。附在下面把。
解释 PS1[\u\h \w]\$ 的含义参数含义\u当前用户名user\h主机名host的简写第一个点之前的部分\w当前工作目录的完整路径绝对路径但家目录会被替换成~\$如果是普通用户显示$如果是 root 显示# 关于 \w 的详细解释
\w 表示的是 当前工作目录的完整路径即绝对路径 但它会做如下简化
用户的主目录如 /home/user会被替换为 ~其他路径则显示完整的绝对路径例如/home/user/documents/project示例说明
假设你当前的登录用户名是 alice主机名是 mybox你现在所在的目录是/home/alice/projects/myapp
那么你的命令行提示符就会变成[alicemybox ~/projects/myapp]$
再举几个例子当前路径:命令行显示的 \w/home/alice~/home/alice/documents~/documents/etc/nginx/etc/nginx/var/www/html/var/www/html