Visual Studio 代码终端找不到 `lesspipe` 命令

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

当我想在 Visual Studio Code 终端中执行一些命令时,它会打印如下消息:

命令“lesspipe”可在以下位置使用

这种情况也会发生在 dircolors 上。如果我想用

git
sudo
或其他命令做某事,它不会让我这样做。

文本为西班牙语。

command 'lesspipe' is available in the following places
 * /bin/lesspipe
 * /usr/bin/lesspipe
command not found because <</usr/bin:/bin> is not include in path variable.
visual-studio-code ubuntu-18.04
3个回答
1
投票

我假设您将 Visual Studio Code 配置为 在 Linux 上使用默认 shell

话虽如此,根据错误,似乎您的

.bashrc
(或
.bash_profile
)中有些东西弄乱了您的
PATH
环境变量,从其中删除了
/usr/bin
/bin
。例如,如果我将一些无效命令放在我的
.bashrc
:

的末尾
/usr/bin/commandthatdoesnotexist 

当我在 VSCode 上打开终端时,这些错误将显示如下:

bash: /usr/bin/commandthatdoesnotexist: No such file or directory

我建议你检查一下你的

.bashrc
。我不知道你到底添加了什么,所以我无法重现你的问题。检查是否修改了
PATH
环境变量(是否重新定义了?是否不小心导出错误了?)。如果您这样做了,请暂时删除这些更改。

在实际终端(VSCode 之外)上,您可以尝试执行以下操作:

$ echo $PATH
# Should display something like this:
# /home/gino/bin:/home/gino/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

如果

PATH
不是那样:

$ export PATH=$PATH:/usr/bin:/bin
$ sudo vim /etc/environment  # or sudo nano or sudo vi, whichever you use

然后编辑

PATH
使其看起来像这样:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

然后再次尝试 VSCode 上的终端。如果现在可以正常工作,请在

.bashrc
上重新检查您的修改,看看是哪一个导致了问题。


0
投票

我建议注销root 跑

$ sudo nano /etc/environment

将路径替换为

$ PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr>

0
投票

我遇到了同样的问题,您可以这样做:

  1. 打开 Visual Studio Code。

  2. 在菜单中,转到“文件”>“首选项”>“设置”(或使用快捷键 Ctrl + ,)。

  3. 单击“设置”页面右上角的“打开设置(JSON)”图标。这将打开一个 JSON 文件,您可以在其中添加自定义设置。

  4. 将以下行添加到 JSON 文件中:

    “terminal.integrated.env.linux”:{ "PATH": "/bin:/usr/bin:${env:PATH}" }

这假设您使用的是 Linux 环境。如果您使用不同的操作系统,您可能需要相应地调整配置。

  1. 保存文件并关闭“设置”页面。

重新启动 VSCode 或在 VSCode 中打开新终端。

此配置将 /bin 和 /usr/bin 添加到 VSCode 内集成终端的 PATH 变量。它应该可以帮助 VSCode 找到 lesspipe 命令。

请记住,这些说明特定于 Visual Studio Code 和 VSCode 中的集成终端。如果您在 VSCode 之外使用不同的终端,则可能需要调整系统环境变量或特定于终端的配置。

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