1. nano – 가장 쉬운 CLI 텍스트 편집기
- 가장 직관적인 인터페이스를 가진 텍스트 편집기입니다.
- 하단에 사용 가능한 단축키가 표시되어 있어 처음 써보는 사람도 쉽게 접근할 수 있습니다.
기본 단축키
- 저장: Ctrl + O
- 종료: Ctrl + X
- 줄 이동: Ctrl + _ → 줄 번호 입력
장점
- 학습 필요 거의 없음
- 간단한 수정에 매우 적합
- 대부분의 배포판에 기본 설치
단점
- 기능 제한 (코드 자동완성, 문법 강조 없음)
- 대용량 파일 편집에는 비효율적
2. vim – 전문가용 강력한 텍스트 편집기
- 고급 사용자가 선호하는 편집기로, 커스터마이징과 반복 작업에 매우 강력합니다.
- 모드 기반 인터페이스: 명령 모드, 입력 모드, 비주얼 모드로 나뉨
주요 명령어
- 입력 시작: i
- 저장: :w
- 종료: :q
- 저장 후 종료: :wq
- 강제 종료: :q!
- 검색: /단어
장점
- 반복 작업, 다중 커서, 정규표현식 지원
- 리눅스 대부분 시스템에 기본 내장
- .vimrc 설정을 통해 확장 가능
단점
- 진입장벽 높음 (모드 전환 이해 필요)
- 초보자에게는 익숙해지는 데 시간 필요
3. vi – 전통적인 기본 편집기
- vim보다 오래된 전통적인 에디터
- 요즘은 vi 명령어가 내부적으로 vim으로 연결되는 경우도 많습니다.
장점
- 거의 모든 리눅스 시스템에서 기본 제공
- 가볍고 빠름
단점
- 기능이 매우 제한적 (undo 제한, 색상 없음)
- vim에 비해 편의성 부족
서버 환경에서 vim이 설치되지 않은 경우 vi로 대신 사용 가능
4. sed – 파일을 직접 열지 않고 편집하는 스트림 편집기
sed 's/old/new/g' filename.txt
- 파일을 열지 않고 명령어만으로 내용을 치환하거나 일부 수정할 수 있습니다.
- 자동화 스크립트나 배치 작업에 자주 사용됩니다.
예시
장점
- 빠르고 자동화에 적합
- 직접 편집기 실행 없이 파일 수정 가능
단점
- 상호작용 불가능 (인터랙티브 편집 불가)
- 정규표현식 익숙하지 않으면 불편
5. awk – 조건 기반 텍스트 편집/출력
awk '{gsub("error","warning"); print}' log.txt
- sed와 유사하지만, 구조화된 텍스트 처리에 더 강력
- 주로 파일 편집보다는 특정 조건에 따라 내용을 출력/필터링/수정할 때 사용
예시
장점
- 조건 기반 출력, 집계, 통계 처리에 최적
- 로그 분석, CSV 처리 등에 강력
단점
- 단순 편집보다는 출력 가공 목적
- 스크립트 문법 이해가 필요
요약 정리표
| nano |
CLI |
간단한 파일 수정 |
초보자 친화적, 직관적 단축키 |
| vim |
CLI (모드 기반) |
고급 편집, 반복 작업 |
매우 강력하지만 진입장벽 있음 |
| vi |
CLI (전통) |
최소 환경에서의 기본 편집 |
매우 가볍고 어디서나 사용 가능 |
| sed |
명령어 기반 |
문자열 치환/삭제/삽입 등 자동 수정 |
자동화 스크립트에 적합 |
| awk |
명령어 기반 |
조건 기반 출력 및 필드 편집 |
로그/CSV 가공, 분석용에 강력 |