텍스트 편집기 없이 텍스트 파일을 편집하는 방법은 무엇입니까?

텍스트 편집기 없이 텍스트 파일을 편집하는 방법은 무엇입니까?

텍스트 편집기가 설치되지 않은(no 또는 or) 원격 시스템에 연결(ssh 사용)해야 하는 ed상황 exvi처해 있습니다 nano. 이는 실행 중인 프로덕션 서버에 있습니다. 기본적으로 다음과 같은 신념 때문에 텍스트 편집기를 설치하거나 허용하지 않습니다.

  • 실제로는 필요하지 않습니다.
  • 이를 제외하면 보안이 강화될 수도 있습니다.

그러나 여전히 때때로 디버깅하고 문제를 해결해야 합니다.

쉘은 Bash입니다. 텍스트 파일을 편집하는 방법은 echo및 를 사용하는 것뿐입니다 cat.

이 상황에서 텍스트 파일을 편집하는 방법에 대한 경험을 공유할 수 있습니까? 어쩌면 파일을 로컬로 전송하는 방법이 있을까요 vim?

업데이트: 명확히 하기 위해 이 질문은 단지 이론적인 사례일 뿐입니다. 몇 번은 아주 최소한의 설정을 사용하여 k8 클러스터에서 포드를 디버그해야 했습니다. 따라서 일부 구성을 업데이트해야 할 수도 있습니다.

답변1

이 경우 파일을 다른 컴퓨터로 전송하고 편집한 다음 다시 전송해 봅니다. 가지고 있다면 ssh가지고 있어야 하므로 scp(희망합니다) 파일을 밀어 넣고 뺄 수 있어야 합니다. 그렇지 않은 경우 ftp들어오고 나가는 파일을 찾을 수도 있습니다 .

그렇지 않은 경우 가장 좋은 방법은 cat, grep, sed, echo및 I/O 리디렉션(특히 추가 >>)을 사용해 보는 것입니다. 임시 파일도 많이 있습니다.

답변2

Faxeyo가 언급했듯이 파일을 편집하는 가장 쉬운 방법은 원격 편집입니다. 로컬 컴퓨터의 Vim은 일반적으로 SFTP를 통해 파일을 편집할 수 있지만, 다른 편집기를 사용하면 원격으로도 작업할 수 있습니다.

그러나 편집 중인 파일은 다른 사용자로만 수정이 가능하고 작동하지 않을 수도 있습니다. 원격 시스템이 Linux 시스템인 경우 busybox가 있을 수 있으며 일부 busybox 버전에는 vied. 완전한 기능 은 아니지만 vi파일을 편집할 수 있을 만큼 강력합니다. 당신은 busybox vi FILE그들을 사용하거나 전화할 수 있습니다 busybox ed file. 정적으로 연결된 바이너리를 전달할 수도 있습니다 scp.busybox

귀하의 시스템에는 다른 곳에 더 많은 기능을 갖춘 ed바이너리가 있을 수 있습니다. 콜론 명령 vi( command) 과 매우 유사한 라인 편집기입니다 . ex많은 Linux 배포판에서는 선택 사항이지만 좀 더 난해한 기능에 사용되는 경우가 많으 patch므로 존재할 수도 있습니다. ed그리고 이 ex모드에는 viTTY 없이 작업할 수 있는 즐거운 기능도 있습니다.

일부 아주 오래된 데비안 시스템에는 ae에서 실행할 수 있는 이 모드가 있습니다 vi. 내가 아는 다른 모든 비 Linux 오픈 소스 운영 체제는 기본 시스템에 vi, ex또는 하나를 갖고 ed있으며 패키지 관리자를 통해 제거하는 것을 허용하지 않습니다.

실제로 텍스트 편집기가 없다면 cat및 heredocs를 사용하여 임시 파일에 데이터 덩어리를 쓰고 sed. 편집기를 한두 개 설치할 수 있습니다.

답변3

설치된 경우 zshzsh 줄 편집기를 사용하여 파일을 편집할 수 있습니다.

zmodload zsh/mapfile
vared 'mapfile[myfile.txt]'

심지어:

autoload zed
zed myfile.txt

답변4

이는 귀하의 질문에 대한 답변은 아니지만 동일한 문제를 겪고 있는 사람에게는 여전히 도움이 될 수 있습니다. 이 Q&A에 대한 해결 방법을 찾았지만 결국에는 필요하지 않았습니다. 시간을 낭비한 후에 이것을 공유하고 싶었습니다.

방에 코끼리가 보이지 않아요. vim을 설치하면 됩니다 apt-get install vim. 내 컨테이너에서는 이미지에 설치 프로그램을 추가하지 않고도 작동합니다. 이는 설치 권한이 있는 다른 모든 곳에서 작동합니다.

관련 정보