Linux

[ Linux ] 파일 편집 명령어 정리

soyali 2025. 5. 20. 14:54

1. nano – 가장 쉬운 CLI 텍스트 편집기

nano filename.txt
  • 가장 직관적인 인터페이스를 가진 텍스트 편집기입니다.
  • 하단에 사용 가능한 단축키가 표시되어 있어 처음 써보는 사람도 쉽게 접근할 수 있습니다.

기본 단축키

  • 저장: Ctrl + O
  • 종료: Ctrl + X
  • 줄 이동: Ctrl + _ → 줄 번호 입력

장점

  • 학습 필요 거의 없음
  • 간단한 수정에 매우 적합
  • 대부분의 배포판에 기본 설치

단점

  • 기능 제한 (코드 자동완성, 문법 강조 없음)
  • 대용량 파일 편집에는 비효율적

 

 

2. vim – 전문가용 강력한 텍스트 편집기

vim filename.txt
  • 고급 사용자가 선호하는 편집기로, 커스터마이징과 반복 작업에 매우 강력합니다.
  • 모드 기반 인터페이스: 명령 모드, 입력 모드, 비주얼 모드로 나뉨

주요 명령어

  • 입력 시작: i
  • 저장: :w
  • 종료: :q
  • 저장 후 종료: :wq
  • 강제 종료: :q!
  • 검색: /단어

장점

  • 반복 작업, 다중 커서, 정규표현식 지원
  • 리눅스 대부분 시스템에 기본 내장
  • .vimrc 설정을 통해 확장 가능

단점

  • 진입장벽 높음 (모드 전환 이해 필요)
  • 초보자에게는 익숙해지는 데 시간 필요

 

 

3. vi – 전통적인 기본 편집기

vi filename.txt
  • vim보다 오래된 전통적인 에디터
  • 요즘은 vi 명령어가 내부적으로 vim으로 연결되는 경우도 많습니다.

장점

  • 거의 모든 리눅스 시스템에서 기본 제공
  • 가볍고 빠름

단점

  • 기능이 매우 제한적 (undo 제한, 색상 없음)
  • vim에 비해 편의성 부족

서버 환경에서 vim이 설치되지 않은 경우 vi로 대신 사용 가능

 

 

4. sed – 파일을 직접 열지 않고 편집하는 스트림 편집기

sed 's/old/new/g' filename.txt
  • 파일을 열지 않고 명령어만으로 내용을 치환하거나 일부 수정할 수 있습니다.
  • 자동화 스크립트나 배치 작업에 자주 사용됩니다.

예시

  • 문자열 치환 후 출력:
  • bash
    복사편집
    sed 's/error/INFO/g' log.txt
  • 파일 자체를 수정하려면 -i 옵션 사용:
  • bash
    복사편집
    sed -i 's/http/https/g' config.txt

장점

  • 빠르고 자동화에 적합
  • 직접 편집기 실행 없이 파일 수정 가능

단점

  • 상호작용 불가능 (인터랙티브 편집 불가)
  • 정규표현식 익숙하지 않으면 불편

 

 

5. awk – 조건 기반 텍스트 편집/출력

awk '{gsub("error","warning"); print}' log.txt
  • sed와 유사하지만, 구조화된 텍스트 처리에 더 강력
  • 주로 파일 편집보다는 특정 조건에 따라 내용을 출력/필터링/수정할 때 사용

예시

  • 특정 열만 출력:
  • bash
    복사편집
    awk '{print $1, $3}' data.txt
  • 조건에 따라 출력 제어:
  • bash
    복사편집
    awk '$2 == "active" {print}' users.txt

장점

  • 조건 기반 출력, 집계, 통계 처리에 최적
  • 로그 분석, CSV 처리 등에 강력

단점

  • 단순 편집보다는 출력 가공 목적
  • 스크립트 문법 이해가 필요

 

 

 

요약 정리표

nano CLI 간단한 파일 수정 초보자 친화적, 직관적 단축키
vim CLI (모드 기반) 고급 편집, 반복 작업 매우 강력하지만 진입장벽 있음
vi CLI (전통) 최소 환경에서의 기본 편집 매우 가볍고 어디서나 사용 가능
sed 명령어 기반 문자열 치환/삭제/삽입 등 자동 수정 자동화 스크립트에 적합
awk 명령어 기반 조건 기반 출력 및 필드 편집 로그/CSV 가공, 분석용에 강력