我对装有 Debian linux 的远程计算机具有管理员访问权限。起初一切都很顺利。我尝试全局定义一些变量,以便所有用户都可以运行特定的代码。现在我无法将文件发送到该服务器。当我运行 scp 命令时它说:
bash: scp: command not found
lost connection
scp
在我的本地电脑和服务器上都可用。我可以使用 ssh 连接到远程计算机。但当我连接时它说:
-bash: id: command not found
-bash: [: : integer expression expected
但是当我运行这个命令时:
which id
输出是:
/usr/bin/id
我认为基本代码的路径是为系统定义的。远程计算机还知道传递给 scp 的信息以及输出为which scp
:
/usr/bin/scp
我只记得我所做的就是创建一个文件,/etc/profile.d
然后删除该文件。我还检查并确定~/.bashrc
、~/.profile
和中没有错误的 PATH 规范/etc/profile
。
有人知道远程计算机出了什么问题吗?
答案1
您可以使用以下命令来检查用户是否scp
有权访问命令:
echo $PATH
输出示例:
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
这将显示用户有权访问的命令路径。
假设如果您正在检查scp
命令,scp
命令将位于/usr/bin/
.如果 的输出echo $PATH
不包含/usr/bin/
,则显示消息“未找到命令”。
要解决该问题,请执行
export PATH=$PATH:/usr/bin/
对于永久更改,将上述内容添加到您的.bash_profile
答案2
.bashrc
您的文件中有错误。使用以下命令恢复默认版本,然后重新连接。
$ cp /etc/skel/.bashrc ~/
答案3
问题解决了。我在 . 中添加了错误的 PATH 定义/etc/environment
。纠正这个错误解决了问题。