为什么这个文件没有被复制到我的 $PATH 中?

问题描述 投票:0回答:4

我试图按照这个问题将 mvim shell 脚本添加到 /usr/local/bin 形式的 bash 中,一切似乎都有效;但是,每当我尝试执行脚本时,我仍然收到“找不到命令”的消息。

从我的 mvim 文件所在的目录(下载)中,我输入:

sudo cp -v mvim /usr/local/bin

我得到输出:

mvim -> /usr/local/bin

然后无论我输入

mvim
还是
mvim -v

都不起作用

我以前从未在 $PATH 中添加过任何内容,但即使在查找了许多有关如何完成它的教程之后,我似乎也无法让

mvim
用作终端命令。

编辑:

echo $PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

ls -l mvim

-rwxr-xr-x ...

ls -l /usr/local/bin

-rwxr-xr-x ...
bash macvim
4个回答
7
投票

/usr/local/bin是否存在?

如果运行

sudo cp -v mvim /usr/local/bin
并且
/usr/local/bin
文件夹不存在,cp 会将
mvim
复制到
/usr/local/
文件夹并命名为
bin

您需要先使用

sudo mkdir -p /usr/local/bin
创建文件夹。然后,您可以使用之前的
mvim
命令复制
cp

mvim可执行吗?

您是否确定

/usr/local/bin/mvim
设置了 executable 标志?尝试
ls -l /usr/local/bin/mvim
,如果结果以
-rw-r--r--
开头,则 mvim 不可执行。

然后您需要运行

sudo chmod +x /usr/local/bin/mvim
。如果您现在再次运行之前的
ls
命令,结果应以
-rwxr-xr-x
开头。
x
表示该文件现在可由其所有者、其组成员以及所有其他用户可执行

/usr/local/bin 是否在您的 PATH 中?

您是否确定

/usr/local/bin
是您的
PATH
变量的一部分?

尝试

echo $PATH
,如果输出不包含
/usr/local/bin
,那么 shell 将不会在那里查找命令。然后你需要运行
export PATH=$PATH:/usr/local/bin


1
投票

检查:

  1. 如果 /usr/local/bin/mvim 可执行(如果不是则添加执行位:chmod +x /usr/local/bin/mvim)
  2. 如果 /usr/local/bin 位于 $PATH 中 (
    echo $PATH
    )

1
投票

启动一个新的 shell,或者输入:

hash -r

以便 shell 重新检查

$PATH
中的目录。 (它会缓存内容以提高效率,当您将内容添加到路径中的目录时,您需要重新加载该缓存。)


-1
投票

这就是您发布的内容:

mvim -> /usr/local/bin

我认为这是“错误的”。它看起来就像“mvim”是一个符号链接,指向目录/usr/local/bin。 如果是这样,这

不是

你想要的! 请执行以下操作:

    打开终端(命令行)窗口。
  1. “cd”到原始“mvim”目录(您尝试复制到 /usr/localbin 的目录)
  2. 剪切/粘贴:
  3. a) 目录名称

    b)

    ls -l mvim

    c) 

    echo $PATH

    
    

  4. “echo $PATH”也很重要。

© www.soinside.com 2019 - 2024. All rights reserved.