vi 에디터

2023. 10. 6. 16:37리눅스/CentOS

vi 에디터

 - Linux에 기본적으로 설치되는 CLI 환경의 문서 편집 프로그램
 - 초창기 Unix에서 사용하던 프로그램
   90년대에 vim으로 업그레이드 되었으나 아직까지 vi 에디터라고 부른다
 - 사용 환경이 세 가지로 구분
명령 모드 : 기본 사용 환경, 커서 이동, 실행 취소/다시 실행, 복사/잘라내기/붙여넣기, 삭제, 입력/실행 모드 전환
입력 모드 : 내용 편집을 위한 환경, 파일의 내용을 입력/수정/삭제, 명령 모드 전환
실행 모드 : 그 외 대부분의 기능들을 사용하기 위한 환경, 명령 모드 전환
(ex 모드)
 - 실행 명령어
vi : 빈 문서 열기
vi 파일명 : 해당 파일 열기

 - 명령 모드 사용 방법
* 명령모드에서 숫자를 입력하면, (입력한 숫자 * 입력 모드에서 타이핑 한 것)이 출력된다
   1. 커서 이동
1) 글자 단위 커서 이동(방향키 대체)
 h : 한 글자 왼쪽으로 이동
 j : 한 글자 아래로 이동
 k : 한 글자 위로 이동
 l : 한 글자 오른쪽으로 이동

2) 단어 단위 커서 이동
 > 소문자를 눌러주면 특수 문자를 별개 단어로 인식
   대문자로 눌러주면 공백 문자와 개행 문자만을 기준으로 단어를 구분
 w : 다음 단어의 첫 글자로 이동
 b : 이전 단어의 첫 글자로 이동
 e : 다음 단어의 마지막 글자로 이동

3) 줄 내부 커서 이동
 0 : 줄의 첫 글자로 커서 이동
 $ : 줄의 마지막 글자로 커서 이동

4) 화면 내부 커서 이동
 H : 화면 상의 첫 줄로 이동
 M : 화면 상의 가운데 줄로 이동
 L : 화면 상의 마지막 줄로 이동

5) 문서 내부 커서 이동
 gg : 문서의 첫 줄로 이동(=[[)
 G : 문서의 마지막 줄로 이동(=]])
 :숫자 : 숫자번째 줄로 이동(실행 모드 기능)

   2. 입력 모드 전환(입력 후 ESC로 전환)
i : 커서 왼쪽으로 내용 입력
I : 커서가 있는 줄의 왼쪽으로 내용 입력
a : 커서 오른쪽으로 내용 입력
A : 커서가 있는 줄의 오른쪽으로 내용 입력
o : 커서 아래에 빈 줄 삽입 후 내용 입력
O : 커서 위에 빈 줄 삽입 후 내용 입력
s  : 커서가 있던 글자를 지우고 내용 입력
S : 커서가 있던 줄을 지우고 내용 입력

   3. 실행 취소, 다시 실행
u : 실행 취소(되돌리기)
ctrl + r : 다시 실행

   4. 삭제
> 다른 줄에는 영향을 끼치지 않는다
x : 커서 오른쪽 글자 삭제(delete 기능)
   > 커서 오른쪽에 지울 내용이 더 없다면 커서 왼쪽 글자 삭제(backspace 기능)
X : 커서 왼쪽 글자 삭제(backspace 기능)
   > 커서 왼쪽에 지울 내용이 더 없을 때 전환되는 기능은 없다

   5. 복사, 잘라내기 , 붙여넣기
yy : 커서가 있는 줄 복사
숫자 + yy: 커서가 있는 줄부터 숫자만큼의 줄 복사
dd : 커서가 있는 줄 잘라내기
숫자 + dd: 커서가 있는 줄부터 숫자만큼의 줄 잘라내기
p : 커서 뒤로 붙여넣기
P : 커서 앞으로 붙여넣기

     * y나 d를 한 번만 누르고 커서 이동 키를 누면 커서가 이동해야 하는 만큼 복사/잘라내기   
   
 - 실행 모드 사용 방법
   1. 줄 번호 출력/숨기기
:set nu : 줄 번호 출력
:set nonu : 줄 번호 숨기기

   2. 검색
/Pattern : 위에서 아래로 Pattern 검색
?Pattern : 아래에서 위로 Pattern 검색

     * 동작 후 추가 입력
n : 검색 방향으로 다음 찾기
N : 검색 방향의 반대로 다음 찾기

   3. 찾아 바꾸기(치환)
:[범위]s/찾을내용/바꿀내용/[옵션]

     * 범위
생략 : 커서가 있는 줄에서 내용을 찾아서 검색
n : n번째 줄에 있는 내용을 찾아서 변경
n1,n2 : n1번째 줄부터 n2번째 줄에서 내용을 찾아서 변경
% : 문서 전체에서 내용을 찾아서 변경
(1,$)

     * 옵션
g : 한 줄에 찾는 내용이 여러개 있으면 전부 변경

   4. 파일명과 현재 커서의 위치 확인
:f : 현재 열려 있는 파일의 이름과 커서의 위치를 출력[파일명/몇째 줄 중에 몇째 줄/줄 기준 퍼센트/수(tab키 입력되면 범위로)]

   5. 리눅스 명령어 동작
:! 명령어 : vi를 잠시 멈추고 Linux 명령어 동작

   6. 파일에 다른 내용 입력
> : 기호 뒤에 숫자를 넣어서 해당 줄을 기준으로 동작 가능

:.! 명령어 : 커서가 있던 줄을 지우고 명령어 동작 결과를 삽입
> 화면에 결과가 출력되는 명령어 사용
:r! 명령어 : 커서가 있는 줄 아래로 명령어 동작 결과를 삽입
> 화면에 결과가 출력되는 명령어 사용
:r 파일명 : 커서가 있는 줄 아래로 다른 파일의 내용 삽입

   7. 저장, 종료, 불러오기
> 저장, 종료, 불러오기는 !를 붙여서 강제 진행이 가능(ex. :q! = 강제 종료)

:w : 저장
:w 파일명 : 다른 이름으로 저장
:q : 종료
:wq : 저장하고 종료
:wq 파일명 : 다른 이름으로 저장하고 종료
:e 파일명 : 기존 문서를 종료하고 다른 문서 불러오기
:enew : 기존 문서를 종료하고 새 파일 열기


 - 화면 분할
ctrl + w + n : 화면 분할
ctrl + w + w : 분할된 화면 간 커서 이동

 

 

실습

저장

 

 

종료

 

 

파일명이 없을 경우 파일명을 지정해야 한다

 

 

저장하고 종료

 

 

다른 이름으로 저장하고 종료

 

 

파일 불러오기

 

 

새 파일 불러오기

 

 

8 'ctrl + w + n'은 화면분할 명령어 'ctrl + w + w'는 커서 이동

 

 

문제

설정 : itbank 홈 디렉터리에서 /backup/inittab 파일을 열고 시작
(조건 : 시작하면서 vi 열고나서 문제 3번이 끝날때까지 화면은 vi유지)

 

문제 1
(1) inittab 12번째줄 아래에 itbank 홈 디렉터리 내부의 목록 삽입
     (ls -l 결과로 파일 a,b,c,d,e가 출력되는 내용을 삽입)
(2) 파일 안에 있는 내용 변경 : run -> bank, sys -> kg
(3) 지금까지 작업한 모든 내용을 /test/linux.test 로 저장
    /home/.kg.test 로 저장 후 열기
    /backup/bank 로 파일 저장
      빈 문서 열어서 /backup/bank 불러오기

 

문제 2
/home/itbank/ 안에 있는 모든 내용 삭제 후
/home/itbank/a/b/, /home/test/c/d/ 만들기
※ 단, 생성 명령은 반드시 한 줄로 실행할 것

 

문제 3
/home/.kg.test 문서를 연 후 안에 있는 내용 전부 삭제
named.conf, named.rfc1912.zones를 itbank에 업로드
/kg/ 안에 두개 파일 병합시키기
(절대경로 : named.1 , 상대경로 : named.2)
named.1 파일과 named.2 파일 내용을 차례대로 삽입 후 저장하고 종료
※ 각 삽입내용은 별도로 구분
( ex. ----------- named.1 ------------)

 

 

vi실습 파일 병합 체크 방법[용량 확인]

'리눅스 > CentOS' 카테고리의 다른 글

기초 명령어2  (0) 2023.10.06
기초 명령어1  (0) 2023.10.06
FTP 기본  (0) 2023.10.06
기호  (0) 2023.10.05
경로  (0) 2023.10.05