Linux

Linux 명령어 - vi (1)

사실 나도 모름 2023. 3. 11. 01:28

Linux에서 반드시 기억해야 할 명령어 중 하나는 vi 라 생각한다.

vi 는 쉽게 말하면 문서 편집기다.

문서작성할 때 vi 를 쓰긴 하지만 나중에 관리자가 되기 위해서는 다양한 시스템 파일들을 수정하고 작성할 수 있어야 한다.

오늘 설명할 것은 vi 를 사용할 때 편집속도를 향상시켜줄 수 있는 단축키?를 알려주려고 한다.

최대한 쉽게 설명할 것이니 끝까지 읽어보고 모든 것은 반드시 실습을 해보기를 바란다.

일단 손에 익어야지 뭘하든 빠릿빠릿하게 할테니 말이다.

참고로 가끔 중복되는 기능을 가진 단축키도 있다.

 

vi 에는 3가지 모드가 있다.

- 초기 모드는 '이동모드'                                    <---------   오늘 공부해 볼 거

- 문서를 직접 수정하는 모드는 '편집모드'           <---------   오늘 공부해 볼 거

- 문서에서 특정 명령을 실행하는 '실행모드'

 

 

3대 모드 탈출 방법은 Esc를 한두번 눌러주면 된다.

 

 

 

1. 커서 이동 - 1

 

문서편집할 때 커서의 위치를 옮길 때 우리는 방향키를 가장 많이 이용한다.

vi 도 마찬가지로 방향키만 누르면 커서가 움직인다.

그런데 vi 에서는 h, j, k, l 도 방향키와 똑같은 역할을 한다.

 

h 는 왼쪽

j  는 아래

k 는 위

l  은 오른쪽

 

알아두고 위 방법으로 연습해보는 것도 추천한다.

 

 

 

2. 커서 이동 - 2 (문서 단위 이동)

 

문서에 줄이 엄청 많다고 가정해본다. (약 1000줄 정도)

만약에 맨 끝 줄에 있는 문장을 수정해야한다 혹은 내용을 끝에다 더 추가해야한다 같은 상황이면 어떻게 할 것인가?

방향키나 j 만 꾹 누르고 끝에 도달하기를 기다릴 것인가?

이것이 작업이 늦어지는 요인 중 하나이다.

이 단축키만 알면 한번에 끝으로 갈 수 있다.

 

shift + g  : 문서 맨 끝으로 이동

gg           : 문서 맨 위로 이동

 

 

 

3.  커서 이동 - 3 (단어 단위 이동)

 

문서에서 한 줄이 좀 길다고 가정하자.

문장의 요소마다 점프하면서 커서를 이동시킬 수도 있다.

얘는 굳이? 싶겠지만 알아두면 그래도 편하다.

 

shift + e   : 행 맨 끝으로 이동

e              : 단어의 끝으로 이동

shift + w  : 다음 행의 처음으로 이동

w             : 다음 단어의 처음으로 이동

shift + b   : 행 맨 처음으로 이동

b              : 단어의 처음으로 이동

 

 

 

4. 커서 이동 - 4

 

얘는 기억해도 되고 안해도 된다.

그렇게 많이 쓰이진 않는다.

 

shift + l     : 현재 화면의 맨 끝 행으로 이동 (high)

shift + m   : 현재 화면의 중간 행으로 이동 (middle)

shift + h    : 현재 화면의 맨 처음 행으로 이동 (low)

ctrl + f      : 페이지 앞으로 이동

ctrl + b     : 페이지 뒤로 이동

 

 

 

5. 커서 이동 - 5 (행 단위 이동)

 

$     : 행 맨 끝으로 이동

0     : 행 맨 처음으로 이동

 

 

 

 

6. 복사, 붙여넣기, 삭제

 

우리가 똑같은 문장을 여러줄 입력해야할 때가 있다.

마우스로 복붙이 가능하지만 키보드에 손갔다가 마우스에 손갔다가 번갈아가면서 하면 불편하다.

이것도 간단한 단축키가 있다.

 

yy      : 현재 행 복사

2yy    : 현재 행부터 두 줄 복사 (앞에 숫자만 바꾸면 복사할 행 수를 지정가능)

p       : 현재 행 아래에 붙여넣기

dd     : 현재 행 삭제

2dd   : 현재 행부터 두줄 삭제

 

이 단축키들은 2, 3번 내용들과 조합해서 사용할 수도 있다.

ex) de : 단어 삭제, 

 

 

 

7. 글자 교체, 삭제

 

r + 교체할 글자       : 말그대로 한 글자 교체

x                              : 한 글자 삭제

 

 

 

8. insert 모드

 

insert 모드로 변환하지 않으면 내가 원하는 대로 입력할 수 없다.

방법은 여러가지지만 상황에 따라 유용하게 다 쓰인다.

 

i               : 현재 커서 위치에서 편집

shift + i    : 현재 행 맨 앞으로 가서 편집

a              : 현재 커서 위치에서 우측으로 한 칸 이동 후 편집

shift + a   : 현재 행 맨 뒤로 가서 편집

s              : 현재 커서 위치에서 한 글자지우고 편집

shift + s   : 현재 행의 모든 문자를 지우고 편집

o              : 커서 아래에 새로 행을 추가하고 편집

shift + o   : 커서 위에 새로 행을 추가하고 편집

 

 

 

9. 되돌리기

 

u       : undo - 원래대로 되돌리기

r        : redo - 다음 작업했던대로 되돌리기

 

 

 

10. visual / visual block (캡쳐화면 참조)

 

v           : visual 모드

              윈도우의 드래그같은 느낌 - 방향키나 1번의 방법을 이용해서 드래그한다.

VISUAL 모드

ctrl + v  : visual block 모드

              드래그이긴 한데 일정한 영역만 드래그 - 방향키나 1번의 방법을 이용해서 드래그

VISUAL BLOCK 모드

모드 탈출은 항상 Esc 누르기

 

 

 

글이 너무 길어져서 두번으로 나누어야겠다.

현재까지 초기모드와 편집모드에 대해 알아봤다.

 

다음 글로 실행모드에 사용되는 명령어들을 알아보겠다.

 

 

 

- 저장하고 나가는 거는 초기모드에서 콜론 (:) 을 누르고 wq

- 저장 안하고 나가는 거는 q

- 저장 안하고 강제로 나가는 거는 q! (q + 느낌표)

 

 

이것까지는 알려줘야지 실습이 될 것 같다.

'Linux' 카테고리의 다른 글

CentOS6 - Linux 싱글유저모드 - 비밀번호 수정  (0) 2023.03.10
puTTy 기본 세팅 및 사용법  (0) 2023.03.09