서버에 존재하는 파일을 vi로 열었더니
평소에는 잘 열리던데 이제 열리지 않았다.
Out of memory ~~ 어쩌구 메시지와 함께 편집을 할 수 없었다.
이유라도 들어보자.
vi에서 Out of memory saving lines for undo - try using ed 오류 해결 방법
오류 원인
vi 편집기에서 다음과 같은 메시지가 나타날 수 있다:
Out of memory saving lines for undo - try using ed이는 편집 시 undo(되돌리기용 버퍼) 를 저장할 메모리를 확보하지 못했을 때 발생한다.
주로 다음과 같은 상황에서 발생한다:
- 편집하려는 파일 크기가 매우 큰 경우 (수십~수백 MB 이상 로그, 덤프 파일 등)
- 시스템 메모리가 부족한 경우 (임베디드 장비, Docker 컨테이너 등 제한된 환경)
vi자체의 제한
해결 방법
1. vim 사용
vim은 vi보다 대용량 파일 처리 및 메모리 관리가 개선되어 있다.
vim filename
2. Undo 기능 끄기
vi 실행 후 즉시 undo 기록 저장을 끌 수 있다:
:set noundo
일부
vi구현에는 해당 옵션이 없을 수 있다.
3. 대용량 파일에 적합한 도구 사용
- 읽기 전용 열람
less filename - 간단한 치환 작업
sed -i 's/old/new/g' filename - 기본 편집기 사용
ed filename - 가벼운 편집기
nano filename
4. 시스템 메모리/스왑 확장
- VM이나 Docker 환경에서는 메모리 혹은 스왑 공간을 늘려 해결 가능하다.
요약
- 단순 열람:
less - 편집 필요:
vim또는nano - 아주 제한적인 환경:
ed - 근본적 해결: 메모리/스왑 공간 확장
생각
- vi를 고집할게 아니라 vim이나 nano 명령어를 따로 알아봐서 실행 해야겠다.
'개발 > 리눅스' 카테고리의 다른 글
| [리눅스, 유닉스] 로그 확인, 문자 찾기 (cat, more, ll, grep 활용) (0) | 2022.08.26 |
|---|---|
| 리눅스 파일 개수 및 디렉토리(폴더) 개수 세기 (7) | 2018.06.28 |
| 리눅스 파일복사, 파일 이름변경/이동, 디렉토리 생성/삭제, 파일삭제(cp, mv, rm) (0) | 2017.12.06 |
| 리눅스 tar 압축 및 압축해제 명령어 (2) | 2017.11.27 |
| 리눅스 방화벽 설정(linux firewall)_the network adapter could not establish the connection (1) | 2017.09.11 |