Linux 용 Windows 서브 시스템의 .bashrc에서 'Input / output error'수정


3

나는 잘못 편집했다. .bashrc Windows 용 텍스트 편집기 (Notepad ++)를 사용하여 내 WSL (Linux 용 Windows 서브 시스템) Bash 용 파일.

이제 Bash를 실행할 때마다 다음 오류가 발생합니다.

bash : /root/.bashrc : 입력 / 출력 오류

이 문제를 어떻게 해결할 수 있습니까? Linux 파일 엔딩 (LF 만 가능)으로 저장을 시도했지만 작동하지 않았습니다.


나는 그것을 복제 한 것처럼 보이지 않기 때문에 당신이 그것을 어떻게 깨뜨 렸는지 궁금합니다. (이것은 알려진 나쁜 생각 임에도 불구하고). 또한 어떤 Windows 버전을 실행하고 있습니까? 1703? 1709? 이전? 그것을 고치고 파일 내용을 보존하기위한 일반적인 생각은 (일반적인 방식으로) Windows 측에서 그것을 읽고, base64로 그것을 읽고 WSL 측에서 다시 작성하는 것이 었습니다. 내가 문제를 재현 할 수있을 때까지 테스트되지 않았다.
Bob

나는 그것을 NotePad ++에서 열고 3 줄 끝에 주석을 달아 저장했습니다. 그것은 그것을 부패시키기에 충분했습니다. EOL 또는 인코딩을 의도적으로 변경하지 않았습니다.
urig

답변:


4

이 문제를 어떻게 해결할 수 있습니까? Linux 파일 엔딩 (LF 만 가능)으로 저장을 시도했지만 작동하지 않았습니다.

몇 가지 해결책이 있습니다.

Linux / Ubuntu 응용 프로그램을 사용하여 파일 (vim, emacs, nano 등)을 수정하십시오.

한 사람이 nano 파일을 다시 저장하면 문제가 해결되었습니다.

그래도 작동하지 않으면 다시 설치하는 핵 옵션을 사용해보십시오.

제 경우에는 아무것도 수정하지 않았습니다. 다음 명령을 사용하여 삭제했습니다.   BashOnWindows를 다시 설치하십시오.

lxrun /uninstall /full

lxrun /install /y

출처 ST3을 사용하여 .bashrc를 편집 한 후에 bash 명령이 작동하지 않습니다.


더 읽을 거리


나는 당신의 대답과 거의 다시 엇갈 렸습니다! @ urig 자신의 대답은 진단을 확인합니다.
AFH

@DavidPostill에게 감사하지만 WSL이 나쁜 점을 인식하지 못했기 때문에 첫 번째 제안이 작동하지 않았습니다. .bashrc 파일. 마지막 제안은 WSL을 완전히 다시 설치한다는 점에서 매우 공격적입니다. 다행히도 나는 더 간단하고 신속한 작업을 통해 문제를 해결할 수있었습니다. 제 질문에 대한 제 대답을 참조하십시오.
urig

1
아주 좋아! 그래도 파일을 개인화하지 않았다면 ...
DavidPostill

참고로 lxrun 1709 년부터 사용되지 않습니다. wslconfig 새 CLI 도구 인 반면 Store는 배포판을 설치 / 제거 할 수있는 올바른 위치입니다. 만나다: blogs.msdn.microsoft.com/commandline/2017/10/11/...
Bob

1

내 문제에 대한 최소한의 해결책을 찾았습니다. 내 WSL은 우분투를 실행 중이다. 우분투에는 원시 코드 사본이 있습니다. .bashrc 아래에 /etc/skel.

  1. 나는 나의 나쁜 사본을 삭제했다. .bashrc Windows 탐색기를 사용합니다.
  2. Bash에서는 다음과 같이 원시 사본을 복사했습니다. cp /etc/skel/.bashrc ~/

(이 AskUbuntu 대답을 바탕으로 : https://askubuntu.com/questions/198730/how-to-restore-bashrc-file )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.