[리눅스마스터 2급 2차] 1과목 – 4. 에디터(Editor)

[1과목: 리눅스 운영 및 관리]

1. 파일 시스템 관련 명령어

2. 쉘(Shell)

3. 프로세스 관리


4. 에디터(Editor)

4. 1. 에디터 종류

  • 원본 파일의 복사본을 임시 기억 장치에 만들어, 수정 후 원본에 저장하는 버퍼 기반 방식
  • 장점: 내용의 수정 사항을 중지/종료하여 원본 파일 보존 가능
  • 단점: 편집기의 비정상적인 종료 시 수정 내용 소실
  • Linux의 편집기 종류: vi, emacs, pico, vim, nano, gedit 등


4. 2. 에디터 활용

4. 2. 1. vi편집기 ★

  • 1796년 빌 조이가 초기 BSD릴리즈에 포함될 편집기로 만듦 ★★★
  • UNIX의 기본으로 포함되어, Linux배포판에서 가장 많이 사용
  • 모드형 편집기로 명령, 입력, 콜론(실행)모드로 구성

명령모드(Command Mode)
: vi편집기를 처음 실행하거나 입력모드, 콜론모드에서 [ESC]를 누를 경우 진입

[입력]

명령어설명
i커서 앞부터 입력(입력모드로 진입)
a커서 뒤부터 입력(입력모드로 진입)
o커서 아랫줄에 빈줄 삽입 후 입력(입력모드로 진입)
O커서 윗줄에 빈줄 삽입 후 입력(입력모드로 진입)

[커서이동]

명령어설명
k / j / l / h커서 위 / 아래 / 오른쪽 / 왼쪽 이동
$현재 행 끝으로 이동

[잘라내기 및 붙여넣기 / 되돌리기]

명령어설명
x커서 위치의 글자 1개 삭제 *ex) 3x: 문자 3개 삭제
yy / dd현재 줄 복사 / 잘라내기 *ex) 3yy: 3줄 복사
yw / dw커서 위치부터 오른쪽으로 한 문장 복사 / 잘라내기 (공백 까지)
yb / db커서 앞부터 왼쪽으로 한 문장 복사 / 잘라내기 (공백 전까지)
p붙여넣기
u되돌리기(undo)

입력모드(Insert Mode)
: 문자를 입력(타이핑)하여 파일 내용을 수정하는 모드

  • 명령 모드에서 [i], [a], [o], [O]입력 시 입력모드로 진입
  • 파일 수정 후 [ESC]입력 시 명령모드로 진입

콜론모드(Colon Mode) ★★★
: 파일 저장, 종료, 파일명 변경 등의 기능 수행. 실행(ex)모드라고 도 함

  • 명령모드에서 [:]입력 시 콜론모드로 진입.
  • [ESC]입력 시 명령모드로 진입

[파일 저장 / 종료]

명령어설명
:$문서의 끝으로 커서 이동
:w현재까지 수정한 내용 저장
:w [파일명]지정한 파일명으로 저장.
:f [파일명]현재 작업 중인 파일명 수정. 수정 시 원본 파일은 그대로 유지
:qvi편집기 종료. 수정 내용이 있을 경우 종료 불가
:q!vi편집기 강제 종료.(강제 명령수행)
:e!마지막 저장 이후 모든 편집 취소(강제 명령수행)
!(강제명령수행)
: 파일에 수정된 내용이 있을 때 :q 또는 :wq를 입력할 경우 정말 수행할 것인지에 대한 메세지가 뜨며, 수행한다는 명령어를 한번 더 입력 필요. (혹은 :q수행이 되지 않는 경우도 있음)
 이 때 :q! 또는 :wq!를 입력할 경우 추가적인 메세지 없이 :q!(강제 종료) 또는 :wq!(강제 저장 후 종료)

[행 번호]

명령어설명
:set nu행 번호 표시
:set nonu행 번호 가리기

[탐색]

명령어설명
:/[문자열]문자열을 아래 방향으로 탐색
탐색 중 [n]: 계속 탐색 / [N]: 역방향 탐색
:?[문자열]문자열을 위 방향으로 탐색
탐색 중 [n]: 계속 탐색 / [N]: 역방향 탐색
:/^[문자열]해당 문자열으로 시작하는 행 탐색 *^: 행의 시작

[탐색 및 변경] ★★★★★

명령어설명
:s/[기존문자열]/[변경문자열]커서가 위치한 행에서 문자열 변경
:%s/[기존문자열]/[변경문자열]문서 전체에서 문자열 변경
:[시작행],[마지막행]s/[기존문자열]/[변경문자열]행위 범위를 지정하여 문자열 변경
:s/linux/Linux    # 현재 행에서 'linux'를 찾아 'Linux'로 변경
:%s/liunx/Linux   # 문서 전체에서 'linux'를 찾아 'Linux'로 변경
:1,5s/unix/UNIX   # 1행부터 5행까지 'unix'를 찾아 'UNIX'로 변경
:3,$s/unix/UNIX   # 3행부터 문서 끝($)까지 'unix'를 찾아 'UNIX'로 변경
:.,10s/unix/UNIX  # 현재 행(.)부터 10행까지 'unix'를 찾아 'UNIX'로 변경


4. 2. 2. emacs편집기 ★

  • 1984년 리차드 스톨만이 매크로 기능이 있는 텍스트 교정 및 편집기로 개발 ★★★
  • LISP언어에 기반을 둔 환경 설정 언어
  • C, LISP, Fortran, HTML등의 소스 코드를 작성할 경우 각각에 해당하는 모드 설정 가능
  • 단순 편집기를 넘어, 텍스트 처리를 위한 포괄적인 통합 환경 제공
  • LISP 코드를 불러오는 데는 시간이 많이 걸린다는 단점
  • 비모드형 편집기로, 여러 명령은 [Ctrl], [Alt]와 키를 조합하여 사용
키 조합설명
[Ctrl] + [x] -> [Ctrl] + [s]파일 저장
[Ctrl] + [x] -> [Ctrl] + [c]종료
[Ctrl] + [b]뒤(왼쪽)로 이동
[Ctrl] + [f]앞(오른쪽)으로 이동
[Ctrl] + [p]위 행으로 이동
[Ctrl] + [n]아래 행으로 이동
[Ctrl] + [a]행의 시작으로 이동
[Ctrl] + [e]행의 끝으로 이동
[Ctrl] + [s] + [탐색문자열]커서 아래로 문자열 탐색
[Ctrl] + [r] + [탐색문자열]커서 위로 문자열 탐색


4. 2. 3. pico편집기

  • 1989년 워싱턴 대학의 아보일 카사르가 개발한 UNIX기반 텍스트 에디터
  • 메뉴 선택 방식의 텍스트 편집기로, 기본 인터페이스는 Windows의 메모장과 유사
  • 사용하기 편리하지만 기능이 부족하고 업데이트가 잘 되지 않는 단점
  • 자유 소프트웨어 라이센스가 아니기 때문에 소스 수정이 불가
  • GNU프로젝트에서는 pico의 복제버전 에디터인 nano를 개발


4. 2. 4. vim편집기 ★

  • 1991년 브람 무레나르가 vi편집기와 호환되면서 독자적으로 다양한 기능을 추가하여 만든 편집기 ★★★
  • 편집 시 다양한 색상 이용 가능
  • 패턴 검색 시 하이라이트 기능을 제공하여 빠른 검색 가능
  • 콜론모드(실행모드)에서 히스토리 기능 제공
  • 다중 되돌리기 기능 및 유니코드를 비롯한 다국어 지원 및 문법 검사 기능


4. 2. 5. nano 편집기★

  • 1999년 GNU프로젝트에서 크리스 알레그레타가 pico의 복제버전으로 개발 ★★★
키 조합설명
[Ctrl] + [a]행의 처음으로 커서 이동
[Ctrl] + [e]행의 끝으로 커서 이동
[Ctrl] + [p]위 행으로 커서 이동
[Ctrl] + [n]아래 행으로 커서 이동
[Ctrl] + [y]이전 페이지로 이동
[Ctrl] + [v]다음 페이지로 이동
[Ctrl] + [k]현재 행 삭제
[Ctrl] + [u]붙여넣기
[Ctrl] + [o]저장
[Ctrl] + [x]종료

Leave a Comment