내 bash 터미널이 셸의 명령을 인식하지 못하는 이유는 무엇입니까? [폐쇄]

내 bash 터미널이 셸의 명령을 인식하지 못하는 이유는 무엇입니까? [폐쇄]

일부 사용자 요청에 따라 사용자가 솔루션을 더 잘 안내할 수 있도록 모든 중간 단계와 결과를 초기 게시물에 추가하기로 결정했습니다. 제목 밑에 추가됐네요추가하다질문 아래에. 다음과 같은다시 채우다,이라는 부분이 있는데,"해결하다,"이 문제를 해결하기 위해 취한 추가 단계를 추가했습니다.

질문:

오늘 명령줄 셸에서 코드를 계속 실행하려고 시도했을 때 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~/.bashrcPATH에 경로를 올바르게 추가하는 방법은 무엇입니까?)

(그런데, 업데이트가 홈 디렉터리의 파일을 변경하지 않기 때문에 Fedora 업데이트는 이를 방해하지 않는다는 점에 유의하십시오. 때때로 업데이트된 소프트웨어를 실행할 때 소프트웨어가 자체 구성 파일을 업데이트할 수 있지만 이는 그렇지 않습니다. ~/.bashrc로 작업하세요.)


편집 내용: gedit텍스트 편집기는 그래픽 모드에서만 작동합니다. 텍스트 모드에서는 텍스트 기반 편집기가 필요합니다. 그 중 가장 간단한 것은 아마도 nano설치입니다.

dnf 설치 나노

nano그런 다음 대신 if 를 사용하십시오 gedit. 실제 편집 기능은 약간 다르지만 매우 간단합니다.

관련 정보