터미널 액세스 없이 $PATH를 재설정하는 방법은 무엇입니까?

터미널 액세스 없이 $PATH를 재설정하는 방법은 무엇입니까?

CentOS 6.6 VM에 cpanm을 설치하고 실행할 수 있도록 $PATH를 변경하려고 합니다.

그러나 입력하는 대신

echo 'export PATH="$HOME/perl5/bin:$PATH"' >> ~/.bash_profile

나는 들어갔다

echo 'export PATH="$HOME/perl5/bin:%PATH"' >> ~/.bash_profile

cpanm을 실행할 수 있지만 다른 것은 실행할 수 없기 때문에 $PATH를 덮어쓴 것 같습니다. 고양이도 없고, vim도 없고, 내장되지 않은 명령도 없습니다.

재부팅하면 $PATH가 재설정된다는 내용을 읽었으므로 시도해 보았습니다. GNOME 로그인 페이지에 로그인하려고 하면 OS가 즉시 재부팅되고 로그인 페이지로 돌아갑니다. 그래서 설정을 변경하기 위해 터미널에 접근할 수도 없습니다.

무슨 일이 일어났으며 이 상황을 해결하는 방법은 무엇입니까?

답변1

아시다시피, 이 $PATH변수는 사용자가 입력한 (내장되지 않은) 명령을 검색해야 하는 디렉터리를 쉘에 알려줍니다. 이렇게 하면 매번 입력할 필요가 없으며 (→ 편의성), 특정 Linux/UNIX 배포판이 해당 스크립트를 거기에 배치하는지 , 아니면 다른 곳에 배치하는지 알지 못한 채 /usr/bin/vim타사 스크립트를 직접 실행할 수 있습니다 (→ 상호 운용성).bash/bin/bash/usr/bin/bash

쉘에 없는 것을 실행하려면 $PATH쉘에 프로그램의 전체 경로를 제공하십시오(예: ) /usr/bin/vim.


GNOME이 시작을 거부하는 경우: 텍스트 기반 콘솔(예: ++ Ctrl) 로 전환 하고 일반 사용자 이름과 비밀번호로 로그인한 후 거기에서 로그인하세요.AltF2/usr/bin/vim ~/.bash_profile

아, 거기서 돌아가는 방법을 언급해야 할 것 같습니다...
그래픽 로그인 관리자는 일반적으로 에서 실행되며 ++ 를 사용하여 전환 tty7할 수 있습니다 .CtrlAltF7

답변2

n.st가 $PATH 변수를 수정하는 방법을 이미 설명했듯이 (grub과 함께 사용하기 위해) 쉘 액세스를 복원하는 방법을 알려드리겠습니다.

  1. 컴퓨터를 다시 시작하십시오. grub 프롬프트에서 Linux 배포판을 선택하고 "e"(입력한 위치에 "편집"을 의미함)를 누릅니다. 그러면 기본 편집기로 이동합니다.

  2. "linux /boot/..."로 시작하는 줄로 이동하여 "init=/bin/bash"(따옴표 없이)를 추가합니다. 그런 다음 F10을 누르십시오(또는 시작 키라고 하는데 어느 키인지 기억이 나지 않습니다).

  3. 루트를 활성화하면 배포판이 1초 이내에 bash로 직접 부팅됩니다. 그런 다음 $PATH 변수를 bash_profile 파일로 다시 내보낼 수 있습니다(모르는 경우 인터넷에서 예제를 찾아보세요).

완료되면 정상적으로 재부팅할 수 있습니다("init"를 제거할 필요가 없습니다. 이 작업은 이미 자동으로 수행되어야 합니다).

관련 정보