“没有这样的文件或目录”如何添加到我的 PATH 变量中?

全景图

今天我注意到我的路径最后有一个条目 No such file or directory,这导致了其他问题。

我的路径是这样的: /home/geneorama/gems/bin:/home/geneorama/anaconda3/bin:/home/geneorama/.local/bin:/home/geneorama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: No such file or directory

我不知道是什么添加了它,想知道如何解决它。

我检查了一下.bashrc,没有发现任何问题。.bashrc如预期增加了蟒蛇和Ruby。

基于这个关于如何设置 PATH 的很好的答案,我检查了我的~/.profile文件。配置文件脚本只是执行的.bashrc,并添加$HOME/bin$HOME/.local/bin的路径。这些路径仅在它们存在时才添加,并且它们确实存在。

我阅读了我能理解的内容man login这让我去检查/etc/login.defs,但这看起来很普通。我没有登录帮助中提到的任何其他文件。

任何想法如何解决发生这种情况的地方?

编辑:2021 年 1 月 11 日

根据评论,我编辑了问题,说我已经检查了~.profile.

我还制作了一个非常简单的~.bashrcbash版本,重新启动并使用调试命令运行 bash。PATH仍然是损坏的。

geneorama@computer:~$ bash -x ~/.bashrc
+ HISTCONTROL=ignoreboth
+ shopt -s histappend
+ HISTSIZE=9999999
+ HISTFILESIZE=999999999
+ shopt -s checkwinsize
geneorama@computer:~$ $PATH
bash: /home/geneorama/.local/bin:/home/geneorama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: No such file or directory

编辑:2021 年 1 月 11 日(今天第二次编辑)

我还注意到我无法通过手动设置路径或以 root 身份登录来修复错误。我尝试使用export带引号的字符串来使用和设置路径(我不知道它是否重要或最好的方法)。

geneorama@computer:~$ $PATH
bash: /home/geneorama/gems/bin:/home/geneorama/anaconda3/bin:/home/geneorama/.local/bin:/home/geneorama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: No such file or directory
geneorama@computer:~$ PATH="/home/geneorama/gems/bin:/home/geneorama/anaconda3/bin:/home/geneorama/.local/bin:/home/geneorama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
geneorama@computer:~$ $PATH
bash: /home/geneorama/gems/bin:/home/geneorama/anaconda3/bin:/home/geneorama/.local/bin:/home/geneorama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: No such file or directory
geneorama@computer:~$ sudo su -
[sudo] password for geneorama: 
root@ativ4-v18:~# $PATH
-bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: No such file or directory
root@ativ4-v18:~# logout
geneorama@computer:~$ export PATH=/home/geneorama/gems/bin:/home/geneorama/anaconda3/bin:/home/geneorama/.local/bin:/home/geneorama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
geneorama@computer:~$ $PATH
bash: /home/geneorama/gems/bin:/home/geneorama/anaconda3/bin:/home/geneorama/.local/bin:/home/geneorama/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: No such file or directory

还看了看/etc/environment//etc/environment.d/第一个是空的,第二个有两个文件90atk-adaptor.confand 90qt-a11y.conf,但它们似乎没有影响路径。

编辑:2021 年 1 月 11 日(今天第三次编辑)

即使我手动将我的路径设置为 just/sbin并且/bin我收到错误。在这一点上,我不明白错误消息是真的在我的路径上还是与路径一起打印。

geneorama@computer:~$ export PATH=/sbin:/bin
geneorama@computer:~$ $PATH
bash: /sbin:/bin: No such file or directory

编辑:2021 年 1 月 12 日

最初我在 Jekyll 中遇到错误。一些网站说我的错误是由$PATH. 当我(不正确地)打印我的时候,$PATH我认为有什么东西试图添加我已经删除的路径。我以为我卸载了不正确的东西。

正在打印的空格是错误消息的一部分,而不是$PATH.

显然 Jekyll 已损坏,解决方案是将apt remove其重新安装。

在此过程中,我了解到 path 变量以许多非显而易见的方式进行了修改。我的问题的答案基本上是“正确打印您的 $PATH”。

有一天,有人可能会问“如何调试/配置对我的 $PATH 的编辑?”,并且有人可能会将其标记为重复。这不是这个问题的重复。这个问题原来是“我如何打印 $PATH”。

戈登戴维森

问题不在于您的PATH,而在于您尝试显示它的方式。命令行中的第一件事是您正在运行的命令。如果您只输入$PATH,shell 将尝试将您的PATH作为命令运行,它不是命令——它是一个以冒号分隔的目录列表,用于在其中查找命令。由于该名称没有实际命令,因此您会收到错误消息. (并且由于它正在寻找与该命令对应的可执行文件,因此您得到的错误是“没有这样的文件或目录”)。

要正确显示 shell 变量的值PATH,请使用 eg echo "$PATH"(或者如果它可能包含反斜杠/转义符,请printf '%s\n' "$PATH"改用)。有时您可以省略变量引用周围的双引号,但并非总是如此,因此养成双引号变量引用的习惯会更安全。我的意思是总是,不仅仅是在echo命令中。有关更多解释请参见此处此处此处

对于PATH具体而言,它往往更容易看到它,如果它分成不同的目录; 您可以使用该tr命令将冒号分隔符转换为换行符。比较这两个例子:

$ echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games

$ echo "$PATH" | tr ':' '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/local/games
/usr/games

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么Bash为我的PATH中的程序给出“没有这样的文件或目录”?

“ / usr / bin / env:'节点':没有这样的文件或目录”,即使它位于PATH中

为什么在 PhpStorm 中没有目录/文件可以添加到我的范围?

ls $ FOLDER_PATH,在$ FOLDER_PATH中带有空格:没有这样的文件或目录

如何将“ rails”的可执行文件添加到我的容器的$ PATH中?

如何将某个目录中的单个可执行文件添加到 PATH 环境变量?

将目录添加到所有类似PATH的变量中

当我使用sudo时,为什么不将此目录添加到我的PATH中?

如何在添加到PATH的目录中运行可执行文件?

如何在Linux中将PATH添加到$ PATH变量中

没有这样的文件或目录:'train_art_path'

bash:cd:<path>:没有这样的文件或目录

目录中没有这样的文件

在Windows中将目录添加到PATH环境变量

如果我将不存在的路径添加到PATH环境变量中,是否有问题?

如何在Windows 10中将文件夹添加到`Path`环境变量中(带有屏幕截图)

为什么“ source〜/ .profile”不断添加到我的$ PATH中?

循环遍历 $PATH 变量中的目录

如何通过cmd将Windows 10中的SYSTEM“ PATH”环境变量添加到用户的环境变量中?

尝试将包含各种脚本的目录添加到我的 PATH,但从目录外部调用时它没有运行脚本

在Linux(Ubuntu)中,当我看到“没有这样的文件或目录”时,如何确定未找到哪个特定文件

如何通过命令行将条目永久添加到系统的PATH变量中?

如何在 zsh 中更改 PATH 变量?

如何将目录添加到PKG_CONFIG_PATH环境变量?

mkdir目录中存在“没有这样的文件或目录”

在.bashrc中,如何使用“ uname -m”的输出作为路径(我收到错误:“ uname:没有这样的文件或目录”)?

grep:文件中的行没有这样的文件或目录

在文件中回显没有这样的文件或目录

如何将Maven添加到Path变量?