일부 사용자 요청에 따라 사용자가 솔루션을 더 잘 안내할 수 있도록 모든 중간 단계와 결과를 초기 게시물에 추가하기로 결정했습니다. 제목 밑에 추가됐네요추가하다질문 아래에. 다음과 같은다시 채우다,이라는 부분이 있는데,"해결하다,"이 문제를 해결하기 위해 취한 추가 단계를 추가했습니다.
질문:
오늘 명령줄 셸에서 코드를 계속 실행하려고 시도했을 때 Fedora 21의 셸이 실제로 어떤 명령도 인식하지 못하는 것을 발견했습니다(i686의 커널 4.1.13-100.fc21.i686(tty2)). 시스템을 다시 시작하고 재부팅하면 문제가 해결되어야 한다고 생각합니다. 그런데 놀랍게도 로그인 후 시스템이 부팅되지 않는 것을 발견했습니다. 실제로 작동이 중지된 위치를 확인하기 위해 화면이 검게 변하는 동안 CTRL+ALT+F2를 눌러 진단을 시도했습니다. 마지막 줄이 완전히 멈췄습니다.
Plymouth 시작 화면이 종료될 때까지 기다립니다.
셸의 진단 모드가 실제로 어떤 명령도 허용하지 않는 경우 다음 방법으로 이 문제를 해결하는 방법을 알려주시겠어요?
-bash: <...>: 명령을 찾을 수 없습니다.
내가 생각할 수 있는 유일한 것은 내가 인식하지 못하거나 내 .bashrc를 엉망으로 만든 자동 업데이트 가능성입니다(다음을 사용하면 더 이상 볼 수 없습니다.)
sudo gedit ~/.bashrc
다시 채우다:
진단 모드 시작을 누른 후에만 시스템에 로그인할 수 있습니다.Ctrl+Alt+F2
직후재부팅하고 기본 부팅에 로그인하면 정상적인 상황에서는 실패합니다.
i686(tty2)의 Fedora 버전 21(21) 커널 4.1.13-100.fc21.i686+PAEdebug
이 모드에서는 로그인 프롬프트가 나타납니다
로컬호스트 로그인:
내 사용자 이름을 입력하면 다음과 같이 표시됩니다.
비밀번호:
비밀번호를 입력하면 다음과 같이 표시됩니다.
마지막 로그인: tty2에서 3월 30일 수요일 15:33:54
[bbenjamin@localhost ~]$
어떤 경우에도 여기에 있는 명령은 쉘에서 인식되지 않습니다. 오류 메시지는 일반적으로 다음과 같습니다.
-bash: <...>: 명령을 찾을 수 없습니다.
여기서 <...>는 기본적으로어느주문하다. 쉘에서 대부분의 명령을 구현하는 데 성공한 유일한 경우는 다음 코드를 실행할 때입니다(대답에서 언급한 대로).
PATH=/usr/bin:/usr/sbin
그러면 최소한 내 파일, 폴더 및 프로그램을 찾고 볼 수 있습니다(대부분의 명령이 구현되므로).
하지만 진단 모드에서는 불가능한 Fedora의 모든 그래픽 및 기타 기능을 사용하려면 여전히 정상적으로 로그인해야 합니다. 이를 달성하려면 특별히 .bashrc 파일을 열고 문제를 영구적으로 수정해야 합니다(어떻게든 원래 버전에 액세스할 수 있다고 가정). 이렇게 하려면 다음과 같은 명령을 실행해야 합니다.
(sudo) gedit ~/.bashrc
그러나 다음과 같은 오류 메시지가 나타납니다.
서버를 초기화할 수 없습니다. 연결할 수 없습니다. 연결이 거부되었습니다.
(gedit:1397): Gtk - 경고**: 디스플레이를 열 수 없습니다:
또는 다음과 같은 명령을 실행합니다.
~/.bash_profile
그러면 오류 메시지가 생성됩니다.
bash: /home/bbenjamin/.bash_profile: 권한이 거부되었습니다.
이제 답변에서 후자의 명령은 실행 가능하지 않기 때문에 실행해서는 안됩니다. 대신 다음 형식으로 실행해야 합니다.
source ~/.bashrc
그 이후에는 어떻게 계속해야 할지 모르겠습니다.
(sudo) gedit ~/.bashrc
그러나 이전 명령이 작동하지 않는 이유도 모르겠습니다 . 나는 필요에 따라 항상 .bashrc 파일을 약간 변경했던 것을 기억합니다. 이번에는 어떻게 변경했는지 모르겠고 여기에 설명된 모든 문제가 발생했습니다. 이제 제 질문은 .bashrc를 열고 살펴보고 필요한 변경을 수행할 수 있는 명령줄 기반 방법이 있는지입니다.영구적인따라서 내 시스템 로그인은 모든 Fedora 기능을 보고 사용할 수 있는 일반 그래픽 모드로 적절하게 안내합니다.
해결하다
들어가자마자 알게 된 사실진단로그인 실패 직후 명령 모드를 통해 Ctrl+Alt+F2
엉망인 파일을 일시적으로 수정할 수 있었습니다..bashrc명령을 실행하여 PATH=/usr/bin:/usr/sbin
. 그러면 내 마음 속을 들여다볼 수 있어요.bahsrc명령줄을 실행하여 파일을 만듭니다 cat .bashrc
. 그런 다음에야 파일의 내용을 볼 수 있었고 파일에 여러 경로를 추가했습니다. 이전 경로의 맨 아래에 추가된 파일을 시간순으로 기록해 두었기 때문에 해당 경로가 마지막 경로인 것으로 알고 있습니다. 이제 이 문제를 해결하려면 실제로 파일을 수정해야 합니다. 이는 명령줄을 통해 달성되었으며, nano .bashrc
그 후 다음을 추가하여 문제가 있는 줄을 주석 처리할 수 있는 새 페이지가 나타났습니다.#그 앞에. 마지막으로 변경 사항을 저장하고 종료했습니다. 마지막으로 해야 할 일은 새로 수정된 시스템으로 재부팅하는 것이었습니다..bashrc명령줄을 통해 파일을 입력한 후 telinit 6
로깅에 성공한 것으로 확인되었습니다.
답변1
대부분의 프로그램이 실제로 존재하는 를 포함하지 않는 방식으로 설정되도록 ~/.bashrc
파일 에 무언가를 넣은 것 같습니다 . 이것을 실행하면:PATH
/usr/bin
PATH=/usr/bin:/usr/sbin
~/.bashrc
대부분의 명령이 작동하기 시작합니다. 그런 다음 재설정된 항목을 편집 하고 수정할 수 있습니다 PATH
. ( 실제로 는 PATH
대신 설정하고 싶습니다 . 참조)~/.bash_profile
~/.bashrc
PATH에 경로를 올바르게 추가하는 방법은 무엇입니까?)
(그런데, 업데이트가 홈 디렉터리의 파일을 변경하지 않기 때문에 Fedora 업데이트는 이를 방해하지 않는다는 점에 유의하십시오. 때때로 업데이트된 소프트웨어를 실행할 때 소프트웨어가 자체 구성 파일을 업데이트할 수 있지만 이는 그렇지 않습니다. ~/.bashrc로 작업하세요.)
편집 내용: gedit
텍스트 편집기는 그래픽 모드에서만 작동합니다. 텍스트 모드에서는 텍스트 기반 편집기가 필요합니다. 그 중 가장 간단한 것은 아마도 nano
설치입니다.
dnf 설치 나노
nano
그런 다음 대신 if 를 사용하십시오 gedit
. 실제 편집 기능은 약간 다르지만 매우 간단합니다.