提问人:Wanderer 提问时间:8/6/2023 最后编辑:JonasWanderer 更新时间:9/22/2023 访问量:38
无法识别命令
Command cannot be recognized
问:
我想问一个关于Linux(AlmaLinux-9.2)的可能非常简单的问题......
我解压缩了文件,我想执行二进制文件。但是,如果我不在命令的开头添加,我就做不到?nerdctl
./
这是因为我需要将此文件移动或链接到另一个文件夹,以便可以全局使用。
但是,如何在不添加的情况下执行文件?/usr/local/bin
./
答:
0赞
miloserdow
8/6/2023
#1
在 Linux 中,在当前目录中执行二进制文件之前需要使用的原因与环境变量有关。该变量告诉 shell 在哪些目录中搜索可执行文件。./
PATH
PATH
before a 命令指示 shell 在当前目录中查找可执行文件。默认情况下,出于安全原因,当前目录 () 通常不是 的一部分。如果是这样,恶意二进制文件可能会被伪装成目录中的常见命令名称,你可能会无意中运行它们。./
.
PATH
如果要从任何位置运行命令,而不以 前缀为 ,则有几个选项:nerdctl
./
在
$PATH
中移动或符号链接到目录: 大多数系统范围的二进制文件都存储在变量中包含的目录中,例如 、 等。如果将二进制文件移动或符号链接到这些目录之一,则可以在没有前缀的情况下从任何位置调用它。PATH
/usr/local/bin
/usr/bin
./
sudo mv nerdctl /usr/local/bin/
或
sudo ln -s /path/to/your/nerdctl /usr/local/bin/nerdctl
修改
PATH
变量: 不建议这样做,因为它可能会引入上述安全问题,但您可以将包含的目录添加到变量中。nerdctl
PATH
将此添加到您的 OR(取决于您的 shell):
~/.bashrc
~/.zshrc
export PATH=$PATH:/path/to/the/directory
评论