bash 명령을 사용하지 않고 ~ / .bashrc 복원

Aug 21 2020

경로를 추가 할 때 오타가 있다고 생각 ~/.bashrc하고 소스를 얻은 후에 더 이상 bash 명령을 사용할 수 없습니다.

이제 정상을 복원하고 싶지만 ~/.bashrc내가 찾은 대부분의 토론 (예 : 잘못 편집 된 .bashrc를 수정하는 방법? )은 bash 명령을 사용해야합니다.cp

clam@cuerei:~# cp /etc/skel/.bashrc ~
cp: /home/cltam/script/lib/libc.so.6: version `GLIBC_2.17' not found (required by cp)

~/.bashrcbash 명령을 사용하지 않고 어떻게 복원 할 수 있는지 알 수 있습니까?

감사합니다.

답변

25 user1686 Aug 21 2020 at 16:35

cpbash 명령이 아니라 외부 프로그램입니다. 이것이 실패하는 이유입니다. 실제 bash 명령은 라이브러리 또는 경로 변경의 영향을받지 않습니다. 따라서 bash 명령 사용하는 등 그 반대를 원합니다 .

다음을 사용하여 파일의 내용을 완전히 삭제할 수 있습니다.

true > ~/.bashrc

또는 다른 내용으로 덮어 씁니다.

echo "" > ~/.bashrc

또는 라이브 셸 내에서 잘못된 변경 사항을 일시적으로 실행 취소 할 수 있습니다.

unset LD_LIBRARY_PATH LD_PRELOAD LD_AUDIT
export PATH=/bin:/usr/bin
cp /etc/skel/.bashrc ~

또는 쉘 내장 기능 만 사용하여 파일의 내용을 한 줄씩 복사 할 수 있습니다.

while IFS="" read -r line; do
    echo "$line";
done < /etc/skel/.bashrc > ~/.bashrc
1 NuclearFission Aug 22 2020 at 05:35

현재 시스템에 로그인되어 있습니까? 그렇다면 다른 셸로 전환 한 다음 파일을 편집 할 수 있습니다.

> chsh
> vi ~/.bashrc
1 ThorbjørnRavnAndersen Aug 22 2020 at 18:14

동적으로 연결된 프로그램에 사용되는 라이브러리 경로를 깨뜨 렸습니다. 여기에는 프로그램을 실행하는 데 필요한 모든 코드가 포함되어 있지 않지만 시작시 공유 라이브러리에서 일부를로드합니다.

일부 프로그램은이 문제를 방지하기 위해 컴파일됩니다 (예 : 루트로 실행되거나 부팅 프로세스 초기에 필요한 프로그램의 경우). 전통적으로 /sbin및에 배치됩니다 /usr/sbin. 정확히 무엇이 설치되어 있는지에 따라 다릅니다.

내 Mac에서는 사용 가능한 편집기가없는 것 같지만 시스템에있을 수 있습니다.

JohnnyTam Aug 24 2020 at 09:09

@Peter Cordes 제안에 따라 unset LD_LIBRARY_PATH로 편집을 취소했습니다.

대단히 감사합니다!