iBetter Books
수정

텍스트 편집기 (nano와 vi)

Bash 스크립트를 작성하려면 터미널에서 직접 파일을 편집할 줄 알아야 합니다. VS Code 같은 GUI 편집기는 로컬 개발에서 편리하지만, 서버에 SSH로 접속한 상황이라면 터미널 기반 편집기를 써야 합니다. 리눅스 세계에서 가장 많이 쓰이는 두 가지 편집기를 알아봅니다.

nano: 초보자 친화적인 편집기

nano는 화면 아래쪽에 단축키가 표시되어 있어 처음 써도 헷갈리지 않습니다. 서버에 기본으로 설치되어 있는 경우가 많고, 간단한 파일 수정에 딱 맞습니다.

파일 열기

# 새 파일 만들기nano hello.sh# 기존 파일 열기nano ~/.bashrc

기본 단축키

nano를 열면 화면 하단에 ^G Get Help, ^X Exit 같은 안내가 보입니다. 여기서 ^는 Ctrl 키를 의미합니다.

단축키 기능
Ctrl+O 저장 (Write Out)
Ctrl+X 종료
Ctrl+K 현재 줄 잘라내기
Ctrl+U 붙여넣기
Ctrl+W 검색
Ctrl+\ 찾아 바꾸기
Ctrl+G 도움말
Ctrl+/ 지정 줄 번호로 이동

실습: nano로 파일 작성하기

nano test.txt

편집기가 열리면 텍스트를 입력합니다. 저장하려면 Ctrl+O를 누르고, 파일명 확인 후 Enter를 누릅니다. 종료하려면 Ctrl+X를 누릅니다.

vi/vim: 서버 어디서나 만나는 편집기

vi(Visual editor)는 1976년에 만들어진 편집기입니다. 역사가 오래된 만큼 리눅스가 설치된 거의 모든 서버에 기본으로 포함되어 있습니다. vim(Vi IMproved)은 vi를 개선한 버전으로, 대부분의 Ubuntu에서 vi 명령을 입력하면 vim이 실행됩니다.

vi/vim의 핵심 개념은 "모드"입니다. 키를 누르면 바로 문자가 입력되는 nano와 달리, vi/vim은 현재 모드에 따라 같은 키가 다른 역할을 합니다.

세 가지 모드

모드 진입 방법 역할
명령 모드 (Normal) 시작 시 기본, Esc 이동, 복사, 삭제
입력 모드 (Insert) i, a, o 텍스트 입력
비주얼 모드 (Visual) v 텍스트 선택

최소한 알아야 할 명령어

아래 명령어만 알면 vi/vim으로 파일을 열고, 수정하고, 저장하고 나올 수 있습니다.

명령어 모드 기능
i 명령 → 입력 현재 위치에서 입력 시작
a 명령 → 입력 현재 위치 다음부터 입력 시작
o 명령 → 입력 다음 줄에 새 행 추가 후 입력
Esc 입력 → 명령 명령 모드로 돌아가기
:wq 명령 저장 후 종료
:q! 명령 저장 없이 강제 종료
:w 명령 저장만 (종료 안 함)
dd 명령 현재 줄 삭제
yy 명령 현재 줄 복사
p 명령 붙여넣기
u 명령 실행 취소 (Undo)

실습: vi/vim으로 파일 작성하기

vi test.txt

vi가 열리면 처음에는 명령 모드입니다. 텍스트를 입력하려면 먼저 i를 누릅니다. 화면 하단에 -- INSERT --가 표시되면 입력 모드입니다. 텍스트를 입력한 뒤 Esc를 눌러 명령 모드로 돌아옵니다. 저장하고 종료하려면 :wq를 입력하고 Enter를 누릅니다.

nano vs vi 비교

항목 nano vi/vim
학습 곡선 낮음 (바로 사용 가능) 높음 (모드 개념 이해 필요)
단축키 안내 화면에 표시됨 외워야 함
서버 기본 설치 대부분 있음 거의 항상 있음
편집 속도 보통 숙련 시 매우 빠름
플러그인 생태계 없음 매우 풍부 (vim-plug 등)
추천 대상 초보자, 간단한 수정 서버 작업 빈도가 높은 개발자

처음에는 nano를 쓰는 것을 추천합니다. vi/vim은 단축키를 익히는 데 시간이 걸리지만, 서버 환경에서 작업할 일이 많다면 꼭 익혀두어야 합니다.

기본 편집기 설정

Bash의 일부 명령(예: git commit, crontab -e)은 편집기를 자동으로 열어줍니다. 이때 어떤 편집기를 쓸지는 EDITOR 환경변수로 지정합니다.

# nano를 기본 편집기로 설정export EDITOR=nano

이 설정을 영구적으로 적용하려면 .bashrc에 추가합니다.

echo 'export EDITOR=nano' >> ~/.bashrcsource ~/.bashrc

vi/vim을 선호한다면 nano 대신 vim으로 변경합니다. 현재 기본 편집기가 무엇으로 설정되어 있는지 확인하는 방법은 아래와 같습니다.

echo $EDITOR

실행 결과는 다음과 같이 나타납니다.

nano
03. 텍스트 편집기 (nano와 vi) — 실전 Bash 쉘 프로그래밍 | iBetter Books