Змінив PATH, тепер я отримую "команду не знайдено" для всього


26

Amazon Linux Server, підключений до SSH:

Я спробував змінити PATH для користувача apache, внісши деякі зміни в / etc / environment ( PATH=$PATH:/opt/openoffice4/program) та / etc / sysconfig / httpd ( export PATH = ${PATH:$PATH:}/opt/openoffice4/program).

Потім я перезавантажився.

Зараз я нічого не можу зробити, навіть ls -lведе до-bash: ls: command not found

Що я можу зробити, щоб відновити контроль?


4
Чи можете ви безпосередньо запускати команди? Наприклад /bin/ls?
DavidPostill

так, я можу бігти / bin / ls
Ferenjito

13
Тоді ви маєте змогу запускати /bin/viта виправляти файли, де ви пройшли шлях.
DavidPostill

Відповіді:


49

Що я можу зробити, щоб відновити контроль?

Запустіть /bin/viі відновіть зміни, які ви внесли до /etc/environmentта /etc/sysconfig/httpd.


32

Ви можете встановити PATHбез редактора. Просто введіть це в оболонці:

export PATH=/usr/local/bin:/usr/bin:/bin:$HOME/bin

1
І видаліть пробіли! PATH=something, НЕPATH = something
waltinator

4
Це слід цитувати, інакше $HOMEце буде предметом глобалізації та розбиття слів. IOW, він зламається, якщо $HOMEв ньому буде пробіл (правдоподібний) або будь-які глобальні символи (менш вірогідні).
Кевін

@Kevin Я спробував це, і простори та глобуси були просто скопійовані. ( export PATH=/path to home/binЗвичайно, писати не виходить.)
Ніл

2
@Kevin Ось як він поводиться у строго відповідних реалізаціях, але принаймні bash дає exportвласні синтаксичні правила, у яких немає такої проблеми. (Спеціальні правила синтаксису вже були потрібні з інших причин, наприклад, щоб дозволити export array=(1 2 3).)
hvd

-1

Можливо, це допоможе:

export PATH=/usr/local/bin:/usr/bin:/bin:$HOME/bin

Команда 'export' не використовується з / usr / bin, тому вона все ще працює!


1
Цю відповідь уже запропоновано.
ксеноїд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.