一打开Linux终端就冒出source未找到命令

问题遇到的现象和发生背景

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

1、根据提示,显示是“source未找到命令,而不是 source 未找到命令,所以有可能是你用echo命令往.bashrc 的文件内写命令时吧引号给带进去了。
2、解决方案:
a.使用VIM命令打开.bashrc 文件

vim ~/.bashrc     

b.shift + g 跳转到最后一行 找到以下内容

source ~/ros_workspace/devel/setup.bash

c.删除该行多余的冒号并保存退出

:wq

这个原因有很多,看你有没有改过什么bashrc文件,如果没有的话,可以试试这个

“source”:未找到命令,可以

用su直接切换到root,再执行
source /etc/profile

你是把souce写入到了.bashrc里了,当你每次打开终端的时候,它都会运行一下系统的环境变量和用户的环境变量,而你修改了自己的环境变量,即修改了.bashrc,你具体方法是,首先打开终端,输入下面的命令:

vim ~/.bashrc

找到这样的内容:

source ~/ros_workspace/devel/setup.bash

将其删除即可,因为你的~/ros_workspace/devel/setup.bash路径下并没有setup.bash这个文件。

如有帮助,请采纳,多谢!

“source”:未找到命令
这个问题一般是.bashrc文件中最后几行中的source语句有错误导致的

在终端输入 cat ~/.bashrc,看看输出什么内容

~/.bashrc里面的可能是带了双引号"source ~/ros_workspace/devel/setup.bash"
先把"source ~/ros_workspace/devel/setup.bash" 里面的双引号 从 ~/.bashrc 中去掉再执行 source ~/.bashrc

1.这个账户的家目录下的.bashrc文件,找到带source命令的这行,肯定有一行source前面多了个双引号
2.还有可能是/etc/profile,家目录下的.bash_profile文件,都有可能出现这个问题,排查到这里,应就解决问题了,除非你的PATH里面添加了其他初始化文件
3.以上提到的三个文件(或者自己添加的初始化文件,如果没有就略过),切换到root用户,source一下,正常来说,会有一个报错,定位到报错的那行,删掉引号就可以了

ubuntu系统 source: not found解决方法
1.Ubuntu的shell默认是Dash Shell

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 122  2019 /bin/sh -> dash

2.root权限下修改shell为Bash Shell

sudo dpkg-reconfigure dash
[sudo] password for root:
Removing 'diversion of /bin/sh to /bin/sh.distrib by dash'
Adding 'diversion of /bin/sh to /bin/sh.distrib by bash'
Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash'
Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash'

在这里插入图片描述


3.再次查看使用的shell

ls -l /bin/sh
lrwxrwxrwx 1 root root 4 39 15:33 /bin/sh -> bash

4.此时可以正常使用source命令

source /etc/profile

sudo dpkg-reconfig bash 试试

参考网上一些解决方案,如执行

dpkg-reconfigure dashdpkg-reconfigure dash

source 的目标文件有语法错误!