Хорошо. Я не делаю просто команд вставки копии от сети, и я не видел, как/почему тот испортит вещи, но здесь....
Я хотел настроить webstorm для dev. Таким образом, я следовал этим инструкциям:
$ mkdir ~/.npm-global # directory where npm will install packages
$ npm config set prefix '~/.npm-global' # configure npm
$ echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile #add directory to path
$ source ~/.profile # refresh path for current session
Теперь, если я ввожу большинство команд, я получаю это:
anonymous@anonymous:/home$ sudo nano ~/.profile
Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH environment variable.
sudo: command not found
Я не вижу, как/почему это должно повредить в значительной степени все мои команды. Он переопределял то, что было в ПУТИ вместо добавления? Как я фиксирую это?
Да похоже, что он сделал, вот мой $PATH эха:
anonymous@anonymous:/home$ echo $PATH
/home/anonymous/.npm-global
Содержание ~/.profile
:
# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
export PATH=~/.npm-global
Инструкции сказали Вам выполнять эту команду:
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile #add directory to path
Кажется, что Вы на самом деле работали:
echo 'export PATH=~/.npm-global' >> ~/.profile
Проблема состоит в том, что Вы отсутствовали :$PATH
.
$PATH
расширен до его значения, которое, при этом весь хорошо, должно быть чем-то как /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
. Заметьте, что каталоги в ПУТИ являются двоеточием (:
) разделенный. Вот почему исходная команда имеет PATH=/new/path:$PATH
- это помещает новый путь в начале восстановленной переменной ПУТИ.
Я рекомендую заключить присвоения ПУТИ В КАВЫЧКИ. Вы не должны export
ПУТЬ, потому что это уже находится в среде и останется так.
Замените последнюю строку Вашего ~/.profile
с
PATH="$HOME/.npm-global/bin:$PATH"
и все должны быть хорошо.
Я добавил /bin
потому что исполняемые файлы, вероятно, там, как инструкции предполагают, но если по некоторым причинам они не, можно корректироваться как соответствующие. Поиск пути не является рекурсивным: фактический каталог, где исполняемый файл Вы хотите, чтобы Bash нашел, должен быть дан в ПУТИ. Я также поместил $PATH
во-первых, но можно поместить его в конец. Если будет две команды в каталогах PATH с тем же именем, то одно самое близкое к запуску ПУТИ будет выполнено.
Примечание: если необходимо использовать критические команды, когда ПУТЬ повреждается, можно использовать их полные пути, т.е. /usr/bin/sudo
. Но если Вы не отредактировали /etc/environment
(который в целом Вы, вероятно, не были должны!) можно работать source /etc/environment
получить нормальный ПУТЬ.