Modify Files in Linux using vi, nano or emacs

1. 소개

이 튜토리얼에서는 리눅스에서 파일을 수정하거나 새 파일을 생성하는 데 사용할 수 있는 몇 가지 편집기를 살펴보겠습니다.

리눅스 배포판에는 많은 커맨드라인 편집기가 있으며, 그중 가장 널리 사용되는 편집기는 Vim, Nano 및 Emacs입니다. 그래서 이들 각각을 하나씩 살펴보겠습니다.

2. Vim

가장 일반적으로 사용되는 커맨드라인 텍스트 편집기는 Vim 편집기입니다. 대부분의 리눅스 배포판에는 Vim이 기본 설치되어 있습니다. 만약 Vim이 설치되어 있지 않은 경우, 다음 명령어를 사용하여 설치할 수 있습니다:

sudo apt-get install vim      # Debian 기반 시스템 / Ubuntu 용
sudo yum install vim          # CentOS / Fedora 용

Vim 편집기로 리눅스에서 파일을 수정하려면 다음 명령어를 사용할 수 있습니다:

vi testFile

이 명령은 기존 파일이 있으면 열고, 존재하지 않는 경우에는 새로운 파일을 생성합니다. 키를 누르면 화면은 다음과 같이 보일 것입니다:

여기서 ~(틸다)은 비어 있는 줄을 나타냅니다. 이제 Vim이 어떻게 작동하는지 살펴보겠습니다.

Vim 편집기는 명령 모드와 삽입 모드와 같은 다양한 모드에서 작동합니다. 명령 모드는 파일을 저장하거나 종료하는 등 관리 작업을 수행하게 해 주며, 삽입 모드는 실제 텍스트를 파일에 입력할 수 있게 해 줍니다.

기본적으로 Vim은 명령 모드로 시작합니다. ‘i’를 입력하면 삽입 모드로 전환되며, ‘Esc’ 키를 눌러 명령 모드로 돌아갈 수 있습니다.

Vim 편집기 명령은 대소문자를 구분하므로, 명령어의 대문자 사용에 특별히 주의해야 합니다.

이제 Vim으로 작업하기 위한 몇 가지 기본 명령어를 살펴보겠습니다.

2.1. 파일 내비게이션 명령어

화살표 키를 사용하여 GUI 편집기에서 하듯이 텍스트를 이동할 수 있습니다. 그와 함께 Vim은 파일 내에서 이동할 수 있는 특수 키도 제공합니다:

명령어 설명
k 현재 줄 위의 줄로 커서를 이동
j 현재 줄 아래의 줄로 커서를 이동
h 커서를 왼쪽으로 한 문자 이동
l 커서를 오른쪽으로 한 문자 이동

2.2. 파일 편집 명령어

내비게이션 방법을 알게 되었으니 이제 파일 내용을 편집하는 명령어를 알아보겠습니다:

명령어 설명
i 현재 커서 위치에서 내용을 추가
I 현재 줄의 시작에서 내용을 추가
o 현재 줄 바로 아래에 새 줄을 추가
x 현재 커서 위치의 문자를 삭제
D 현재 위치에서 현재 줄의 끝까지 텍스트 삭제
dd 현재 줄 전체 삭제

2.3. 파일 내에서 자르기, 복사 및 붙여넣기

마지막으로, 파일 내에서 복사/붙여넣기 작업도 할 수 있습니다:

명령어 설명
yy 현재 줄을 복사
v 복사할 범위를 화살표 또는 Vim 커서 이동 키로 선택
y 선택한 텍스트 복사
d 선택한 텍스트 자르기
p 복사한 텍스트를 커서 위치에 붙여넣기
P 복사한 텍스트를 커서 위치 앞에 붙여넣기

2.4. 파일 관리 작업 명령어

파일 편집이 끝나면 작업을 저장해야 합니다:

명령어 설명
:w 파일 콘텐츠를 저장
:q 종료. 저장하지 않은 변경 사항이 있으면 Vim 편집기가 저장할 것인지 물어봅니다
:wq 또는 ZZ 파일을 저장한 후 종료
:w fileName 파일을 “fileName”이라는 새 이름으로 저장합니다. 이는 GUI 텍스트 편집기의 “다른 이름으로 저장” 기능과 유사합니다

3. Nano

Nano는 GUI 기반 텍스트 편집기와 비슷한 인터페이스 덕분에 다루기 가장 쉬운 편집기입니다. 대부분의 리눅스 배포판에는 Nano가 기본 설치되어 있습니다. Nano가 설치되어 있지 않은 경우 패키지 관리 도구에 따라 다음 명령어를 사용할 수 있습니다:

sudo apt-get install nano      # Debian 기반 시스템 / Ubuntu 용
sudo yum install nano          # CentOS / Fedora 용

Nano 편집기로 리눅스에서 파일을 수정하려면 다음 명령을 사용해야 합니다:

nano testFile

이렇게 하면 해당 이름으로 기존 파일이 없으면 화면이 다음과 같이 표시됩니다. 기존 파일을 열면 해당 파일의 내용이 화면에 표시됩니다:

상단에는 Nano 버전 번호와 파일 이름이 표시되고, 하단에는 가장 자주 사용되는 명령어의 단축키가 표시됩니다. 여기서 ^ 기호는 <Ctrl> 키를 의미하므로, ^Y는 <Ctrl+Y>를 의미합니다.

Nano로 작업할 때 몇 가지 주의할 점은 다음과 같습니다:

  • Nano는 모드가 없으므로, 편집기에서 바로 입력을 시작할 수 있습니다.
  • Nano 명령어는 대소문자를 구분하지 않으므로, Ctrl+o는 Ctrl+O와 동일합니다.

Nano 편집기로 작업하는 방법에 대한 몇 가지 기본 명령어를 살펴보겠습니다.

3.1. 파일 내비게이션 명령어

화살표 키를 사용하여 파일을 탐색할 수 있습니다. Nano 편집기에도 이러한 작업을 수행하기 위한 특별한 단축키가 있습니다:

명령어 설명
Ctrl+P 현재 줄 위로 커서를 이동
Ctrl+N 현재 줄 아래로 커서를 이동
Ctrl+B 커서를 왼쪽으로 한 문자 이동
Ctrl+F 커서를 오른쪽으로 한 문자 이동
Ctrl+Space 현재 줄에서 한 단어 앞으로 이동

3.2. 파일 내에서 자르기, 복사 및 붙여넣기

복사/붙여넣기 작업도 할 수 있습니다:

명령어 설명
Ctrl+6 마커를 설정하고 자르거나 복사할 파일을 탐색
Alt+6 선택한 텍스트 복사
Ctrl+k 선택한 텍스트 자르기
Ctrl+u 선택한 텍스트 붙여넣기

3.3. 파일 관리 작업 명령어

모든 편집을 마친 후, 변경 사항을 저장 또는 폐기하려고 합니다:

명령어 설명
Ctrl+O 파일 내용을 저장합니다. Nano는 파일 이름을 입력하라는 메시지를 표시합니다.
Ctrl+X 종료합니다.

4. Emacs

Emacs는 리눅스 및 유닉스 시스템에서 가장 오래되고 다재다능한 텍스트 편집기 중 하나입니다. Emacs는 Vim과 같은 기능과 강점을 가지며, 동시에 Nano와 유사한 기억하기 쉬운 명령어를 가지고 있습니다. Emacs를 설치하려면 리눅스 배포판에 따라 다음 명령어를 사용할 수 있습니다:

sudo apt-get install emacs     # Debian 기반 시스템 / Ubuntu 용
sudo yum install emacs         # CentOS / Fedora 용

Emacs 편집기로 리눅스에서 파일을 수정하려면 다음과 같이 합니다:

emacs tempFile

상단에는 편집 섹션, 즉 메인 버퍼가 있고, 하단에는 파일 이름 및 현재 커서 위치와 같은 세부 정보를 표시하는 상태 표시줄이 있습니다.

마지막 행은 Emacs가 사용자와 상호 작용하는 데 사용하는 미니 버퍼입니다. Emacs의 대부분 명령은 키 또는 메타 키(운영 체제에 따라 또는 )로 시작합니다.

키는 약자로 “C”로 표시되며, 메타 키는 약자로 “M”으로 표시됩니다. 키는 약자로 “E”로 표시됩니다.

Emacs는 모드가 없으므로, 그냥 편집기에서 바로 입력할 수 있습니다.

Emacs로 작업하기 위한 몇 가지 기본 명령어를 알려드리겠습니다.

4.1. 파일 내비게이션 명령어

화살표 키를 사용하여 파일을 탐색하거나 단축키를 사용할 수 있습니다:

명령어 설명
C-p 현재 줄 위로 커서를 이동
C-n 현재 줄 아래로 커서를 이동
C-b 커서를 왼쪽으로 한 문자 이동
C-f 커지를 오른쪽으로 한 문자 이동
M-f 현재 줄에서 한 단어 앞으로 이동
M-b 현재 줄에서 한 단어 뒤로 이동
C-a 줄의 시작으로 이동
C-e 줄의 끝으로 이동

4.2. 파일 내에서 자르기, 복사 및 붙여넣기

복사/붙여넣기 작업도 수행할 수 있습니다:

명령어 설명
C-Space 마커를 설정하고 자르거나 복사할 파일을 탐색
E-w 선택한 텍스트 복사
C-w 선택한 텍스트 자르기
C-y 선택한 텍스트 붙여넣기

4.3. 파일 관리 작업 명령어

마지막으로 작업을 저장합시다:

명령어 설명
C-x C-s 파일에 내용을 저장합니다.
C-x C-c 변경 사항을 저장하지 않고 Emacs 편집기를 종료합니다.

5. 결론

이 기사에서는 Vim, Nano, Emacs를 살펴보았습니다. 특히 이들의 기본 명령어에 대해 알아보았습니다.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다