원격 서버에서 zshrc를 망쳤고 이제 어떤 명령도 실행할 수 없습니다!

원격 서버에서 zshrc를 망쳤고 이제 어떤 명령도 실행할 수 없습니다!

원격 컴퓨터에서 zsh설정을 변경했지만 이제 설정이 깨졌고
키를 누를 때마다 "url-quote-magic: 1: url-quote-magic: 함수 정의 파일을 찾을 수 없습니다."라는 메시지가 나타납니다.

해당 컴퓨터에 다른 계정이 없습니다. 오류를 비활성화하여 .zshrc쉘을 다시 사용하고 수정할 수 있도록 하려면 어떻게 해야 합니까?

답변1

다음과 같이 로그인하지 않고도 원격 서버에서 명령을 실행할 수 있습니다.

ssh -lUSERNAME SERVER COMMAND

예를 들어

ssh -lsomeuser someserver 'mv .zshrc .zshrc.bak'

마지막 인수로 제공된 명령은 비대화형 ssh쉘에 의해 실행되는 반면,.zshrczsh맨페이지, 파일 시작 및 닫기 섹션).

답변2

서버에 SFTP를 통해 .zshrc빈 파일이나 사용 가능한 파일로 덮어쓸 수도 있습니다!

답변3

여기서는 당신이 망친 파일이 대화형 로그인에서만 사용되기 때문에 쉽습니다. 을 망친 경우 ~/.zshenv또는 로그인 쉘이 bash인데 망한 경우 ~/.bashrc(이상하게도 bash ~/.bashrc는 비대화형 로그인 쉘이고 그 부모가 rshdor 인지 판독 sshd함) 명령 실행에 의존할 방법이 없습니다. 비대화형이면 괜찮습니다. .

SSH는 쉘 실행을 고집합니다. 로그인할 수 있는 다른 방법이 없는 경우(다른 계정을 통해 또는 ssh 이외의 방법을 통해) 유일한 방법은 인증 후 쉘이 문제의 행에 도달하기 전에 빠르게 +를 누르는 것입니다 Ctrl. C실제로 이 작업은 일반적으로 수동으로 수행할 수 있습니다. 시스템의 부하(CPU 또는 디스크)를 예약하는 것이 도움이 될 수 있습니다. 적절한 시점에 키를 누르는 데 문제가 있는 경우 를 사용해 보세요 expect.

답변4

다음을 사용 하도록 쉘을 변경할 수 있습니다 bash.

ssh -luser server 'chsh -s /bin/bash'  

bash가 서버에서 사용 가능하고 나에게 적합하다고 가정합니다.

관련 정보