텍스트 편집기가 설치되지 않은(no 또는 or) 원격 시스템에 연결(ssh 사용)해야 하는 ed
상황 ex
에 vi
처해 있습니다 nano
. 이는 실행 중인 프로덕션 서버에 있습니다. 기본적으로 다음과 같은 신념 때문에 텍스트 편집기를 설치하거나 허용하지 않습니다.
- 실제로는 필요하지 않습니다.
- 이를 제외하면 보안이 강화될 수도 있습니다.
그러나 여전히 때때로 디버깅하고 문제를 해결해야 합니다.
쉘은 Bash입니다. 텍스트 파일을 편집하는 방법은 echo
및 를 사용하는 것뿐입니다 cat
.
이 상황에서 텍스트 파일을 편집하는 방법에 대한 경험을 공유할 수 있습니까? 어쩌면 파일을 로컬로 전송하는 방법이 있을까요 vim
?
업데이트: 명확히 하기 위해 이 질문은 단지 이론적인 사례일 뿐입니다. 몇 번은 아주 최소한의 설정을 사용하여 k8 클러스터에서 포드를 디버그해야 했습니다. 따라서 일부 구성을 업데이트해야 할 수도 있습니다.
답변1
이 경우 파일을 다른 컴퓨터로 전송하고 편집한 다음 다시 전송해 봅니다. 가지고 있다면 ssh
가지고 있어야 하므로 scp
(희망합니다) 파일을 밀어 넣고 뺄 수 있어야 합니다. 그렇지 않은 경우 ftp
들어오고 나가는 파일을 찾을 수도 있습니다 .
그렇지 않은 경우 가장 좋은 방법은 cat
, grep
, sed
, echo
및 I/O 리디렉션(특히 추가 >>
)을 사용해 보는 것입니다. 임시 파일도 많이 있습니다.
답변2
Faxeyo가 언급했듯이 파일을 편집하는 가장 쉬운 방법은 원격 편집입니다. 로컬 컴퓨터의 Vim은 일반적으로 SFTP를 통해 파일을 편집할 수 있지만, 다른 편집기를 사용하면 원격으로도 작업할 수 있습니다.
그러나 편집 중인 파일은 다른 사용자로만 수정이 가능하고 작동하지 않을 수도 있습니다. 원격 시스템이 Linux 시스템인 경우 busybox가 있을 수 있으며 일부 busybox 버전에는 vi
및 ed
. 완전한 기능 은 아니지만 vi
파일을 편집할 수 있을 만큼 강력합니다. 당신은 busybox vi FILE
그들을 사용하거나 전화할 수 있습니다 busybox ed file
. 정적으로 연결된 바이너리를 전달할 수도 있습니다 scp
.busybox
귀하의 시스템에는 다른 곳에 더 많은 기능을 갖춘 ed
바이너리가 있을 수 있습니다. 콜론 명령 vi
( command) 과 매우 유사한 라인 편집기입니다 . ex
많은 Linux 배포판에서는 선택 사항이지만 좀 더 난해한 기능에 사용되는 경우가 많으 patch
므로 존재할 수도 있습니다. ed
그리고 이 ex
모드에는 vi
TTY 없이 작업할 수 있는 즐거운 기능도 있습니다.
일부 아주 오래된 데비안 시스템에는 ae
에서 실행할 수 있는 이 모드가 있습니다 vi
. 내가 아는 다른 모든 비 Linux 오픈 소스 운영 체제는 기본 시스템에 vi
, ex
또는 하나를 갖고 ed
있으며 패키지 관리자를 통해 제거하는 것을 허용하지 않습니다.
실제로 텍스트 편집기가 없다면 cat
및 heredocs를 사용하여 임시 파일에 데이터 덩어리를 쓰고 sed
. 편집기를 한두 개 설치할 수 있습니다.
답변3
설치된 경우 zsh
zsh 줄 편집기를 사용하여 파일을 편집할 수 있습니다.
zmodload zsh/mapfile
vared 'mapfile[myfile.txt]'
심지어:
autoload zed
zed myfile.txt
답변4
이는 귀하의 질문에 대한 답변은 아니지만 동일한 문제를 겪고 있는 사람에게는 여전히 도움이 될 수 있습니다. 이 Q&A에 대한 해결 방법을 찾았지만 결국에는 필요하지 않았습니다. 시간을 낭비한 후에 이것을 공유하고 싶었습니다.
방에 코끼리가 보이지 않아요. vim을 설치하면 됩니다 apt-get install vim
. 내 컨테이너에서는 이미지에 설치 프로그램을 추가하지 않고도 작동합니다. 이는 설치 권한이 있는 다른 모든 곳에서 작동합니다.