重装OS X 10.11 El Capitan后终端持续出现gshuf等命令错误求助
解决终端启动时gshuf和cowsay目录报错的问题
我来帮你排查这个问题——虽然你已经删掉了~/.profile里的那段命令,但终端启动时还是报错,说明还有其他bash初始化文件里残留了这段命令或者调用了包含它的脚本。bash在启动时会加载多个配置文件,咱们一步步找根源:
1. 检查用户级的bash启动文件
bash启动时会依次读取这些存在的文件:~/.bash_profile、~/.bash_login、~/.profile、~/.bashrc(非登录shell会优先读取这个)。你可以先列出所有相关文件:
ls -la ~/.bash* ~/.profile
然后逐个查看文件内容,找有没有包含fortune、cowsay或gshuf的行,比如:
cat ~/.bash_profile cat ~/.bashrc
还要留意文件里有没有source其他脚本的语句(比如source ~/.my_custom_script),如果有,也要检查被引用的脚本内容。
2. 检查系统级的配置文件
系统级的配置也可能被加载,比如:
/etc/profile/etc/bashrc/etc/profile.d/目录下的所有脚本文件
你可以用以下命令查看这些文件:
cat /etc/profile cat /etc/bashrc ls /etc/profile.d/ && cat /etc/profile.d/*.sh
3. 检查终端的自定义启动设置
打开终端的偏好设置,切换到“通用”或“Shell”标签页(不同版本OS X位置可能不同),看看有没有设置“启动时运行自定义命令”或者“打开新窗口时执行的脚本”,这些地方也可能残留了那段命令。
4. 用调试模式精准定位问题
如果上面的方法没找到,可以启动bash的调试模式,它会输出每一步执行的命令,帮你直接找到报错来源:
bash -x
运行这个命令后,终端会打印所有加载的配置文件和执行的命令,你顺着输出就能找到触发报错的那行代码,然后去对应的文件里删除或修改它。
找到对应的命令行并删除后,重启终端就能解决问题啦!
内容的提问来源于stack exchange,提问作者schliden
相关产品推荐
相关产品推荐

