웹사이트 검색

LFCS #2: Linux에서 Vi/Vim을 설치하고 사용하는 방법


몇 달 전, Linux Foundation은 전 세계의 개인이 Linux 시스템에서 기본부터 중급 시스템 관리 작업을 수행할 수 있는지 확인하는 데 도움을 주기 위해 LFCS(Linux Foundation Certified Sysadmin) 인증을 출시했습니다.

Linux 관리 작업에는 직접적인 문제 해결 및 유지 관리는 물론, 상위 지원 팀에 문제를 제기할 시기를 파악하는 지능적인 의사 결정도 포함됩니다.

이 시리즈의 제목은 LFCS(Linux 재단 인증 시스템 관리자) 파트 1~33 준비이며 다음 주제를 다룹니다.

Part 1

Linux에서 'Sed' 명령을 사용하여 파일을 조작하는 방법

Part 2

Linux에서 Vi/Vim을 설치하고 사용하는 방법

Part 3

Linux에서 파일 및 디렉토리를 압축하고 파일을 찾는 방법

Part 4

저장 장치 파티셔닝, 파일 시스템 포맷, 스왑 파티션 구성

Part 5

Linux에서 로컬 및 네트워크(Samba 및 NFS) 파일 시스템 마운트/마운트 해제

Part 6

파티션을 RAID 장치로 조립 – 시스템 백업 생성 및 관리

Part 7

시스템 시작 프로세스 및 서비스 관리(SysVinit, Systemd 및 Upstart

Part 8

사용자 및 그룹, 파일 권한, Sudo 액세스를 관리하는 방법

Part 9

Yum, RPM, Apt, Dpkg, Aptitude 및 Zypper를 사용한 Linux 패키지 관리

Part 10

기본 쉘 스크립팅 및 파일 시스템 문제 해결 학습

Part 11

vgcreate, lvcreate 및 lvextend 명령을 사용하여 LVM을 관리하고 생성하는 방법

Part 12

설치된 도움말 문서 및 도구를 사용하여 Linux를 탐색하는 방법

Part 13

GRUB(Grand Unified Bootloader) 구성 및 문제 해결 방법

Part 14

Linux 프로세스 리소스 사용량을 모니터링하고 사용자별 프로세스 제한 설정

Part 15

Linux 시스템에서 커널 런타임 매개변수를 설정하거나 수정하는 방법

Part 16

Linux에서 SELinux 또는 AppArmor를 사용하여 필수 액세스 제어 구현

Part 17

사용자 및 그룹에 대한 ACL(액세스 제어 목록) 및 디스크 할당량을 설정하는 방법

Part 18

네트워크 서비스 설치 및 부팅 시 자동 시작 구성

Part 19

익명 로그인을 허용하도록 FTP 서버를 설정하는 최종 가이드

Part 20

기본 재귀 캐싱 DNS 서버 설정 및 도메인 영역 구성

Part 21

MariaDB 데이터베이스 서버를 설치, 보안 및 성능 조정하는 방법

Part 22

파일 시스템 공유를 위해 NFS 서버를 설치 및 구성하는 방법

Part 23

SSL 인증서를 사용하여 이름 기반 가상 호스팅으로 Apache를 설정하는 방법

Part 24

Linux에서 서비스에 대한 원격 액세스를 활성화하기 위해 Iptables 방화벽을 설정하는 방법

Part 25

Linux를 라우터로 전환하여 트래픽을 정적으로 및 동적으로 처리하는 방법

Part 26

Cryptsetup 도구를 사용하여 암호화된 파일 시스템을 설정하고 스왑하는 방법

Part 27

시스템 사용량, 중단을 모니터링하고 Linux 서버 문제를 해결하는 방법

Part 28

패키지 설치 또는 업데이트를 위해 네트워크 저장소를 설정하는 방법

Part 29

네트워크 성능, 보안 및 문제 해결을 감사하는 방법

Part 30

가상 머신 및 컨테이너를 설치하고 관리하는 방법

Part 31

효율적으로 프로젝트를 관리하기 위해 Git의 기본 사항을 알아보세요.

Part 32

Linux에서 IPv4 및 IPv6 주소 구성을 위한 초보자 가이드

Part 33

Ubuntu에서 네트워크 결합 및 브리징 생성을 위한 초보자 가이드

이 게시물은 33개의 튜토리얼 시리즈 중 2부입니다. 이 부분에서는 LFCS 인증 시험에 필요한 Vi/Vim 편집기의 기본 파일 편집 작업 및 이해 모드를 다룹니다.

Vi 편집기에서 기본 파일 편집 작업 수행

Vi는 Unix용으로 작성된 최초의 전체 화면 텍스트 편집기였습니다. 작고 단순하도록 의도되었지만 NotePad++ 또는 gedit와 같은 GUI 텍스트 편집기에만 사용하는 사람들에게는 약간 어려울 수 있습니다. 예.

Vi를 사용하려면 나중에 강력한 텍스트 편집 절차에 대해 배우기 시작하기 위해 먼저 이 강력한 프로그램이 작동하는 3 모드를 이해해야 합니다.

대부분의 최신 Linux 배포판에는 vim(“Vi개선 ”)이라고 알려진 vi의 변형이 함께 제공됩니다. 이는 Linux 배포판보다 더 많은 기능을 지원합니다. 원본 vi는 그렇습니다. 이러한 이유로 이 튜토리얼에서는 vivim을 같은 의미로 사용합니다.

배포판에 Vim이 설치되어 있지 않으면 다음과 같이 설치할 수 있습니다.

sudo apt install vim         [On Debian, Ubuntu and Mint]
sudo yum install vim         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim  [On Gentoo Linux]
sudo apk add vim             [On Alpine Linux]
sudo pacman -S vim           [On Arch Linux]
sudo zypper install vim      [On OpenSUSE]    

왜 Vi를 배워야 할까요?

vi 편집기를 배워야 할 최소한 2가지 이유가 있습니다.

  1. vi는 POSIX에서 요구하므로 사용하는 배포판에 관계없이 항상 사용할 수 있습니다.
  2. vi는 상당한 양의 시스템 리소스를 소비하지 않으며 키보드에서 손가락을 떼지 않고도 상상할 수 있는 모든 작업을 수행할 수 있게 해줍니다.

또한 vi에는 프로그램이 시작된 직후 :help 명령을 사용하여 실행할 수 있는 매우 광범위한 내장 매뉴얼이 있습니다. 이 내장 매뉴얼에는 vi/m 매뉴얼 페이지보다 더 많은 정보가 포함되어 있습니다.

Vi 편집기 실행

vi를 시작하려면 명령 프롬프트에 vi를 입력하세요.

vi

그런 다음 i를 눌러 삽입 모드로 들어가면 입력을 시작할 수 있습니다.

vi/m을 시작하는 또 다른 방법은 다음과 같습니다.

vi filename

그러면 나중에 디스크에 저장할 수 있는 filename이라는 새 버퍼(버퍼에 대해서는 나중에 자세히 설명)가 열립니다.

Vi 모드 이해

Vi 편집기에는 여러 가지 모드가 있으며, 각 모드는 고유한 목적을 제공하고 사용자가 특정 작업을 수행할 수 있도록 합니다.

알아야 할 주요 모드는 다음과 같습니다.

Vi 명령줄 모드

명령 모드에서 vi를 사용하면 사용자가 파일을 탐색하고 vi 명령을 입력할 수 있습니다. 이 명령은 대소문자를 구분하는 간단한 조합입니다. 더 많은 편지. 거의 모든 명령에는 해당 횟수만큼 명령을 반복하기 위해 숫자가 접두어로 붙을 수 있습니다.

예를 들어, yy(또는 Y)는 현재 줄 전체를 복사하는 반면, 3yy(또는 3Y)는 현재 줄을 복사합니다. 현재 줄 전체와 다음 두 줄(총 3줄).

Esc 키를 누르면 언제든지 명령 모드(작업 중인 모드에 관계없이)로 들어갈 수 있습니다. 명령 모드에서 키보드 키가 텍스트 대신 명령으로 해석된다는 사실은 초보자에게 혼란을 주는 경향이 있습니다.

Vi Ex 모드

ex 모드에서는 파일을 조작할 수 있습니다(현재 파일 저장 및 외부 프로그램 실행 포함). 이 모드로 들어가려면 명령 모드에서 콜론(:)을 입력하고 바로 뒤에 사용해야 하는 ex-mode 명령의 이름을 입력해야 합니다. 그 후 vi는 자동으로 명령 모드로 돌아갑니다.

Vi 삽입 모드

삽입 모드(이 모드를 시작하는 데 일반적으로 문자 i가 사용됨)에서는 텍스트를 입력하기만 하면 됩니다. 대부분의 키 입력으로 인해 화면에 텍스트가 나타납니다(중요한 예외 중 하나는 삽입 모드를 종료하고 명령 모드로 돌아가는 Esc 키입니다).

Vi 명령 사용법

다음 표에는 일반적으로 사용되는 vi 명령 목록이 나와 있습니다. 파일 편집 명령은 명령에 느낌표를 추가하여 시행할 수 있습니다(예를 들어 :q!는 저장하지 않고 강제로 종료합니다).

 Key Command

 설명

 h or left arrow

한 문자 왼쪽으로 이동

 j or down arrow

한 줄 아래로 이동

 k or up arrow

한 줄 위로 올라가세요

 l (lowercase L) or right arrow

한 문자 오른쪽으로 이동

 H

화면 상단으로 이동

 L

화면 하단으로 이동

 G

파일의 끝으로 이동

 w

한 단어를 오른쪽으로 이동

 b

한 단어를 왼쪽으로 이동

 0 (zero)

현재 줄의 시작 부분으로 이동

 ^

현재 줄에서 공백이 아닌 첫 번째 문자로 이동

 $

현재 줄의 끝으로 이동

 Ctrl-B

한 화면 뒤로 이동

 Ctrl-F

한 화면 앞으로 이동

 i

현재 커서 위치에 삽입

 I (uppercase i)

현재 줄의 시작 부분에 삽입

 J (uppercase j)

현재 라인을 다음 라인과 결합합니다(다음 라인으로 이동).

 a

현재 커서 위치 뒤에 추가

 o (lowercase O)

현재 줄 뒤에 빈 줄을 만듭니다.

 O (uppercase o)

현재 줄 앞에 빈 줄을 만듭니다.

 r

현재 커서 위치의 문자 바꾸기

 R

현재 커서 위치에 덮어쓰기

 x

현재 커서 위치의 문자를 삭제합니다.

 X

현재 커서 위치 바로 앞(왼쪽) 문자 삭제

 dd

현재 줄 전체를 잘라내기(나중에 붙여넣기 위해)

 D

현재 커서 위치부터 줄 끝까지 잘라내기 (이 명령은 d$와 동일합니다)

 yX

이동 명령 X를 내리고 현재 커서 위치에서 적절한 수의 문자, 단어 또는 줄을 복사(양크)합니다.

 yy or Y

현재 줄 전체를 양크(복사)합니다.

 p

현재 커서 위치(다음 줄) 뒤에 붙여넣기

 P

현재 커서 위치 앞에(이전 줄) 붙여넣기

 . (period)

마지막 명령을 반복하세요

 u

마지막 명령 실행 취소

 U

마지막 줄의 마지막 명령을 실행 취소합니다. 커서가 해당 줄에 있는 동안에는 작동합니다.

 n

검색에서 다음 일치 항목 찾기

 N

검색에서 이전 일치 항목 찾기

 :n

다음 파일; 편집을 위해 여러 파일을 지정한 경우 이 명령은 다음 파일을 로드합니다.

 :e file

현재 파일 위치에 파일을 로드합니다.

 :r file

현재 커서 위치(다음 줄) 뒤에 파일 내용을 삽입합니다.

 :q

변경 사항을 저장하지 않고 종료합니다.

 :w file

현재 버퍼를 파일에 씁니다. 기존 파일에 추가하려면 :w >> file을 사용하세요.

 :wq

현재 파일의 내용을 쓰고 종료합니다. x와 동일합니다! 그리고 ZZ

 :r! command

명령을 실행하고 현재 커서 위치(다음 줄) 뒤에 출력을 삽입합니다.

Vi 옵션

다음 옵션은 vim을 실행하는 동안 유용할 수 있습니다(~/.vimrc 파일에 추가해야 함).

echo set number >> ~/.vimrc
echo syntax on >> ~/.vimrc
echo set tabstop=4 >> ~/.vimrc
echo set autoindent >> ~/.vimrc

  • set number는 vi가 기존 파일이나 새 파일을 열 때 줄 번호를 표시합니다.
  • syntax on은 코드 및 구성 파일을 더 읽기 쉽게 만들기 위해 구문 강조 표시(여러 파일 확장자에 대해)를 켭니다.
  • set tabstop=4는 탭 크기를 4 공백으로 설정합니다(기본값은 8).
  • 자동 들여쓰기 설정은 이전 들여쓰기를 다음 줄로 넘깁니다.

Vi에서 텍스트 검색 및 바꾸기

vi에는 검색을 기반으로 커서를 특정 위치(한 줄 또는 전체 파일)로 이동하는 기능이 있습니다. 또한 사용자의 확인 여부에 관계없이 텍스트 교체를 수행할 수도 있습니다.

라인 내에서 검색하기

f 명령은 줄을 검색하고 현재 줄에서 지정된 문자가 나타나는 다음 위치로 커서를 이동합니다.

예를 들어, fh 명령은 현재 줄 내에서 문자 h의 다음 인스턴스로 커서를 이동합니다. 문자 f나 검색 중인 문자는 화면 어디에도 표시되지 않지만 Enter를 누르면 해당 문자가 강조 표시됩니다.

예를 들어 명령 모드에서 f4를 누르면 다음과 같은 결과가 나옵니다.

전체 파일 검색

/ 명령을 사용하고 그 뒤에 검색할 단어나 문구를 입력하세요. n 명령을 사용하여 이전 검색 문자열을 사용하거나 다음 문자열(N 명령 사용)을 사용하여 검색을 반복할 수 있습니다. 명령 모드에서 /Jane을 입력한 결과입니다.

텍스트 검색 및 바꾸기

Vi는 명령(sed와 유사)을 사용하여 다양한 행 또는 전체 파일에 대해 대체 작업을 수행합니다.

전체 파일에 대해 "old "라는 단어를 "young "으로 변경하려면 다음 명령을 입력해야 합니다.

 :%s/old/young/g 

주의사항: 명령 시작 부분에 콜론이 있습니다.

콜론(:)은 ex 명령을 시작합니다. 이 경우 s는 (대체용) %는 첫 번째 줄에서 마지막 줄까지를 의미하는 단축키(범위는 n,m로 지정할 수도 있습니다. 이는 "라인 n에서 라인 m까지 "를 의미합니다) ”), old는 검색 패턴이고 young은 대체 텍스트이며 g는 모든 항목에서 대체가 수행되어야 함을 나타냅니다. 파일의 검색 문자열 중 하나입니다.

또는 c를 명령 끝에 추가하여 대체를 수행하기 전에 확인을 요청할 수 있습니다.

:%s/old/young/gc

원본 텍스트를 새 텍스트로 바꾸기 전에 vi/m은 다음 메시지를 표시합니다.

  • y: 대체 수행(예)
  • n: 이번 항목을 건너뛰고 다음 항목으로 이동(아니요)
  • a: 이 패턴과 이후의 모든 패턴 인스턴스에서 대체를 수행합니다.
  • q 또는 Esc: 대체를 종료합니다.
  • l (소문자 L): 이 대체를 수행하고 종료합니다(마지막).
  • Ctrl-e, Ctrl-y: 제안된 대체 내용을 보려면 각각 아래로 스크롤하고 위로 스크롤합니다.

Vi에서 여러 파일 편집하기

명령 프롬프트에 vim file1 file2 file3을 입력해 보겠습니다.

vim file1 file2 file3

먼저 vim은 file1을 엽니다. 다음 파일(file2)로 전환하려면 :n 명령을 사용해야 합니다. 이전 파일로 돌아가고 싶을 때는 :N이 작업을 수행합니다.

file1에서 file3으로 전환하려면 다음과 같이 하세요.

a). :buffers 명령은 현재 편집 중인 파일 목록을 표시합니다.

:buffers

b). :buffer 3 명령(끝부분에 s 없음)은 편집을 위해 file3을 엽니다.

위 이미지에서 파운드 기호(#)는 파일이 현재 열려 있지만 백그라운드에 있음을 나타내고, %a는 현재 편집 중인 파일을 표시합니다.

반면, 파일 번호 뒤의 공백(위 예에서는 3)은 해당 파일이 아직 열리지 않았음을 나타냅니다.

임시 Vi 버퍼

두 개의 연속 라인(예: 4)을 a(파일과 연결되지 않음)라는 임시 버퍼에 복사하고 해당 라인을 현재 vi의 파일의 다른 부분에 배치하려면 섹션에서 우리는…

  • vi 명령 모드에 있는지 확인하려면 ESC 키를 누르세요.
  • 복사하려는 텍스트의 첫 번째 줄에 커서를 놓습니다.
  • 현재 라인과 후속 라인 3개를 a라는 버퍼에 복사하려면 "a4yy"를 입력하세요. 계속해서 파일을 편집할 수 있습니다. 복사된 줄을 즉시 삽입할 필요가 없습니다.
  • 복사된 줄의 위치에 도달하면 p 또는 P 명령 앞에 "a를 사용하여 <라는 이름의 버퍼에 복사된 줄을 삽입합니다. b>아:

    1. 커서가 있는 현재 줄 뒤에 버퍼에 복사된 줄을 삽입하려면 “ap을 입력하세요.
    2. 현재 라인 앞에 버퍼 a에 복사된 라인을 삽입하려면 “aP를 입력하세요.

원하는 경우 위 단계를 반복하여 파일의 여러 위치에 버퍼 내용을 삽입할 수 있습니다. 이 섹션에 있는 것과 같은 임시 버퍼는 현재 창이 닫힐 때 삭제됩니다.

요약

앞서 살펴보았듯이 vi/m은 강력하고 다재다능한 CLI용 텍스트 편집기입니다. 아래에 자신만의 트릭과 의견을 자유롭게 공유해 주세요.

업데이트: VI 편집 기술을 확장하고 싶다면 다음 두 가지 가이드를 읽어 보시기 바랍니다. 유용한 VI 편집기 요령과 팁.

LFCS eBook을 지금 구매하실 수 있습니다. 지금 사본을 주문하고 인증된 Linux 시스템 관리자가 되기 위한 여정을 시작하십시오!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

마지막으로, 다음 링크를 사용하여 시험 바우처를 구입하여 소액의 커미션을 받아 이 책을 계속 업데이트하는 데 도움이 되는 것을 고려해 보십시오.