본문 바로가기

Linux

05. CentOS7 명령어 - vi 편집기

1. vi

1.1. vi [파일명]

  • 지정한 파일을 편집한다.
  • 존재하지 않는 파일을 파일명으로 지정할 경우 새로운 빈 파일을 편집하며, 이미 존재하는 파일일 경우 해당 파일 수정한다.

1.2. 파일 저장 및 종료

모드 명령 키 기능
마지막 행 모드 :q vi에서 작업한 것이 없을 때 그냥 종료한다.
:q! 작업한 내용을 저장하지 않고 종료한다. (강제종료)
:w [파일명] 작업한 내용을 저장만 한다. 파일명을 지정하면 새 파일로 저장한다.
:wq, :wq! 작업한 내용을 저장하고 vi를 종료한다.
명령 모드 ZZ 작업한 내용을 저장하고 vi를 종료한다.

 

1.3. 입력 모드 전환

명령 키 기능
i 커서 앞에 입력한다. (현재 커서 자리에 입력)
a 커서 뒤에 입력한다. (현재 커서 다음 자리에 입력)
o 커서가 위치한 행의 다음 행에 입력한다.
I (대문자 i) 커서가 위치한 행의 처음으로 이동하여 입력한다.
A 커서가 위치한 행의 마지막으로 이동하여 입력한다.
O 커서가 위치한 행의 이전 행에 입력한다.

 

1.4. 커서 이동하기

  • k : 위
  • j : 아래
  • l : 오른쪽
  • h : 왼쪽
  • ^ 또는 0 : 현재 행의 처음으로 이동 (home)
  • $ : 현재 행의 마지막으로 이동 (end)

 

1.5. 특정 행으로 이동

명령 키 기능
G 파일의 마지막 행으로 커서 이동
행 번호 → G 지정한 행 번호로 커서 이동
:행 번호 지정한 행 번호로 커서 이동 (마지막 행 모드)
:$ 파일의 마지막 행으로 커서 이동 (마지막 행 모드)

 

1.6. 내용 삭제

  • dd : 커서가 위치한 현재 행을 삭제한다.
  • [삭제할 행의 개수] → dd : 커서가 위치한 현재 행부터 지정한 행의 수만큼 삭제한다.
  • D : 커서 위치부터 행의 끝까지 삭제한다.

 

1.7. 명령 취소하기

  • u : 명령을 취소한다. (= ctrl+z)
  • U : 해당 행에서 한 모든 명령을 취소한다.
  • :e! : 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업한다. (마지막 행 모드)

 

1.8. 복사, 잘라내기, 붙이기

명령 키 기능
yy, #yy 커서가 위치한 행을 복사한다. #에는 복사할 행의 수 지정
p 커서가 위치한 행의 아래쪽에 붙여넣는다.
P 커서가 위치한 행의 위쪽에 붙여넣는다.
dd, #dd 커서가 위치한 행을 잘라둔다. 삭제와 같은기능. #에는 잘라둘 행의 수를 지정한다.

 

1.9. 검색

명령 키 기능
/문자열 문자열을 아래 방향으로 검색한다.
?문자열 문자열을 위 방향으로 검색한다.
n 원래 찾던 방향으로 다음 문자열을 검색한다.
N 반대 방향으로 다음 문자열을 검색한다.

 

1.10. 문자열 바꾸기

명령 키 기능
:s/str/rep/ 커서가 위치한 행에서 첫 번째로 나오는 str을 rep로 바꾼다.
:%s/str/rep/g 파일 전체에서 모든 문자열 str을 rep로 바꾼다.
:<범위>s/str/rep/ 범위 내 모든 각 행에서 첫 번째로 나오는 문자열 str을 rep로 바꾼다.
:<범위>s/str/rep/g 범위 내 모든 행에서 str을 rep로 바꾼다.
:<범위>s/str/rep/gc 범위 내 모든 행에서 str을 rep로 바꿀 때 수정할지 여부를 묻는다.