Yozzang의 해킹일기 💻
article thumbnail
Published 2022. 6. 25. 00:52
[명령어] vi Operating System/Linux
728x90

이번 포스트에서는 리눅스의 텍스트 에디터인 vi에 대해 다루겠다.

 

vi : 쉘 상에서 새로운 문서를 편집할 수 있는 환경을 제공한다.

명령 모드 : 

vi 명령어를 통해 vi를 시작할 경우 실행되는 모드. 방향키를 통해 커서를 이동할 수 있다.

  1. k : 한 줄 위로 이동
  2. j : 한 줄 아래로 이동
  3. l : 한 문자 오른쪽으로 이동
  4. h : 한 문자 왼쪽으로 이동
  5. ^ / 0 : 줄의 시작으로 이동
  6. $ : 줄의 마지막으로 이동
  7. - : 이전 줄의 처음으로 이동
  8. + / Enter : 다음 줄의 처음으로 이동
  9. H : 키 화면 맨 위로 이동
  10. M : 키 화면 중간으로 이동
  11. L : 키 화면 맨 아래로 이동
  12. w : 다음 단어의 첫문자로 이동
  13. b : 이전 단어의 첫문자로 이동
  14. e : 다음 단어의 끝 글자로 이동
  15. ( : 현재 문장의 처음으로 이동
  16. ) : 다음 문장의 처음으로 이동
  17. { : 현재 문단의 처음으로 이동
  18. } : 다음 문단의 처음으로 이동
  19. [[ : 현재 함수의 처음으로 이동
  20. ]] : 다음 함수의 처음으로 이동
  21. ^u : 반 화면 위로
  22. ^d : 반 화면 아래로
  23. ^b : 한 화면 위로
  24. ^f : 한 화면 아래로
  25. ^y : 한 줄만 위로
  26. ^e : 한 줄만 아래로
  27. ^l : 파일 내용 다시 출력
  28. x, #x : 커서 위치의 문자 삭제
  29. X : 커서 바로 앞 글자를 삭제
  30. D : 커서 위치부터 줄 끝까지 삭제
  31. u : 방금 수행한 명령 취소
  32. U : 해당 줄의 모든 편집 취소
  33. d0, d$ : 커서가 있는 위치에서 행의 맨앞까지(맨뒤까지) 삭제
  34. dw, #dw : 커서 위치의 단어 삭제
  35. dd, #dd : 커서 위치의 줄 삭제
  36. r : 현재 커서위치의 한 문자 변경
  37. R : 현재 커서부터 ESC 입력까지 변경
  38. cw : 커서 위치부터 현재 단어의 끝까지 내용 변경
  39. cc : 커서가 위치한 줄의 내용 변경
  40. s, ns : 현재 커서부터 내용 변경
  41. C : 커서 위치에서 줄 끝까지 내용 변경
  42. yw : 현재 커서가 위치한 단어를 복사
  43. yy, #yy : 현재 행을 버퍼로 복사
  44. p : 현재 행 다음에 버퍼 내용 삽입
  45. P : 현재 행 위쪽에 버퍼 내용을 삽입
  46. dd, #dd : 현재 행을 잘라내기
  47. /문자열 : 현재 위치부터 파일의 아래 방향으로 문자열 탐색
  48. ?문자열 : 현재 위치부터 파일의 위 방향으로 문자열 탐색
  49. n : 다음 문자열 탐색
  50. N : 역방향으로 문자열 탐색
  51. ^g : 기본적인 파일 정보 출력
  52. J : 현재 줄과 다음 줄 연결
  53. . : 바로 이전에 수행한 명령 재실행
  54. >> : Tab 크기 만큼 오른쪽으로 이동
  55. << : Tab 크기 만큼 왼쪽으로 이동
  56. ~ : 현재 커서 위치의 한 문자를 소문자 혹은 대문자로 전환

명령 모드

입력 모드 : 

명령 모드에서 i 또는 a 키를 눌러 입력 모드로 넘어갈 수 있다. 입력 모드에서는 자유롭게 코드나 글을 작성할 수 있으며, 명령 모드로 돌아갈 때에는 ESC를 누르면 된다.

  • i : 커서가 현재 위치한 부분에서부터 시작
  • a : 커서 바로 다음 부분부터 시작
  • shift+spacebar : 영/한 변환

입력 모드

콜론 모드 : 

명령 모드에서 : (콜론)을 입력하면 화면 맨 아랫줄에 입력 가능한 공간이 출력된다. 여기서 vi를 종료할 수 있다.

  1. #y : #으로 지정한 행을 복사 (ex: :10d -> 10행을 복사)
  2. <범위>y : 범위로 지정한 행을 복사 (ex: :10, 20d -> 10행~20행을 복사)
  3. #d : #으로 지정한 행을 삭제 (ex: :10d -> 10행을 삭제)
  4. <범위d> : 범위로 지정한 행을 복사 (ex: :10, 20d -> 10행~20행을 삭제)
  5. pu : 현재 행 다음에 버퍼 내용 붙이기
  6. #pu : #으로 지정한 행 다음에 버퍼 내용 붙이기
  7. 1, $ : 첫 줄에서 마지막 줄까지 (파일내의 모든 줄)
  8. % : 첫 줄에서 마지막 줄까지 (파일내의 모든 줄)
  9. 1,. : 첫 줄에서 현재 줄까지
  10. .,$ : 현재 줄에서 마지막 줄까지
  11. .-2 : 현재 줄에서 앞쪽으로 2번째 줄
  12. 10,20 : 10번째 줄에서 20번째 줄까지
  13. s/문자열1/문자열2/ : 커서가 위치한 줄에서만 문자열1을 문자열2로 바꿈
  14. <범위>s/문자열1/문자열2/ : <범위>안의 모든 줄에 대해서 각 줄의 첫번째 문자열1을 찾아 문자열2로 바꿈
  15. <범위>s/문자열1/문자열2/g : <범위>안의 모든 줄에 대해서 모든 문자열1을 문자열2로 바꿈
  16. <범위>s/문자열1/문자열2/gc : <범위>안의 모든 줄에 대해서 각 문자열1을 문자열2로 치환할 때 수정할지 안 할지를 묻는다.
  17. r 파일명 : 지정한 파일을 현재 커서 위치에 삽입
  18. e 파일명 : 현재 파일 대신 지정한 파일을 읽음
  19. n : vi 시작시 여러 파일을 지정하였을 경우 다음 파일로 이동
  20. ! 명령 : vi를 중단하고 지정한 명령 수행
  21. r! 명령 : 실행 결과를 편집 파일에 끼워넣기 한다.
  22. sh : vi를 잠시 빠져나가서 쉘을 수행
  23. f 파일명 : 파일 이름을 지정한 이름으로 변경
  24. w %.old : 현재 파일을 .old 이름으로 저장해 둘 때
  25. set nu : 파일 내용의 각 줄에 줄 번호 표시
  26. set nonu : 줄 번호 취소
  27. set list : 눈에 보이지 않는 특수문자표시
  28. set nolist : 특수문자보기 기능 취소
  29. set showmode : 현재 모드 표시
  30. set noshowmode : 현재 모드 표시기능 취소
  31. set : set으로 설정한 모든 vi변수 출력
  32. set all : 모든 vi 변수와 현재 값 출력
  33. set ts=4 : Tab 크기를 4로 조정
  34. g/pattern : 파일에서 패턴이 포함된 가장 마지막 위치를 찾아 이동한다.
  35. g/pattern/p : 파일에서 패턴이 포함된 모른 라인을 출력한다.
  36. g/pattern/d : 파일에서 패턴이 포함된 모른 라인을 삭제한다.

콜론 모드

'Operating System > Linux' 카테고리의 다른 글

[명령어] Makefile  (0) 2022.06.27
[명령어] gcc  (0) 2022.06.26
[명령어] crontab, awk, du  (0) 2022.06.24
[명령어] tar, gzip, compress/uncompress  (0) 2022.05.10
[명령어] find, at  (0) 2022.05.09
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!