PATH가 변경되었습니다. 이제 모든 것에 대해 "명령을 찾을 수 없습니다"가 표시됩니다.


26

SSH와 연결된 Amazon Linux 서버 :

/ etc / environment ( PATH=$PATH:/opt/openoffice4/program) 및 / etc / sysconfig / httpd ( export PATH = ${PATH:$PATH:}/opt/openoffice4/program) 에서 일부를 변경하여 아파치 사용자의 PATH를 변경하려고했습니다 .

그런 다음 재부팅했습니다.

지금, 나는 심지어 아무것도 할 수 없습니다 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, NOTPATH = something
waltinator

4
그것은 인용되어야하거나 그렇지 않으면 $HOME글로브하고 단어가 흩어질 것입니다. IOW, $HOME공백이 있거나 (가능할 수 있음) 글로브 문자가있을 경우 (아마 가능성이 낮음) 깨집니다 .
케빈

@ Kevin 나는 그것을 시도했고 공간과 globs가 방금 복사되었습니다. ( export PATH=/path to home/bin물론
Neil

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
이 답변은 이미 제안되었습니다.
xenoid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.