Linux · System ·[Linux] Vi Editor2018년 10월 11일 · 4분 읽기Vi, VIM(Vi IMproved=향상된 VI) #빠른 편집 속도가 특징인 리눅스의 대표적인 에디터이다.vi는 Visual의 약자이다명령어설명예제vi {파일명}파일열기, 작성vi test.txtvi +{행번호} {파일명}파일을 열고, 입력한 행으로 커서 이동vi -100 test.txtvi +/“{검색 문자열}” {파일명}“문자열”의 처음발생 단어부터 열기vi -/“adc” test.txtvi –r {파일명}손상된 파일 회복vi -r test.txtview {파일명}읽기 전용으로 열기기view test.txt수정 파일 열기 #vi {파일명} 명령어로 입력했을 때, 입력한 파일명이 실제 존재 한 경우 파일을 수정.신규 파일 생성 #vi {파일명} 명령어로 입력했을 때, 입력한 파일명이 실제 존재 하지 않는 경우 파일을 생성.vi 커서 이동 #커서설명h (←)왼쪽으로 커서 이동j (↓)아래로 커서 이동k (↑)위로 커서 이동l (→)오른쪽으로 커서 이동w오른쪽 한 단어의 끝 부분으로 커서 이동e오른쪽 한 단어의 앞 부분으로 커서 이동b왼쪽 한 단어의 앞 부분으로 커서 이동Enter한 행 아래로 커서 이동Back space한 문자 왼쪽으로 커서 이동Space Bar한 문자 오른쪽으로 커서 이동^행의 맨 왼쪽으로 커서 이동$행의 맨 오른쪽으로 커서 이동H화면의 맨 위로 이동M화면의 중간으로 이동L화면의 맨 아래로 이동숫자G‘숫자’ 만큼 지정한 줄로 커서 이동Ctrl + i한 화면 위로 이동Ctrl + b한 화면 아래로 이동Ctrl + d반 화면 위로 이동Ctrl + u반 화면 아래로 이동Ctrl + e한 줄씩 위로 이동Ctrl + y한 줄씩 아래로 이동문자, 행 , 삽입 명령어 #커서설명a커서 오른쪽에 문자 삽입A커서 오른쪽, 행의 끝에 문자 삽입i커서 왼쪽에 문자 삽입I커서 왼쪽, 행의 처음에 문자 삽입o커서 아래에 행 삽입O커서 위에 행 삽입ESC종료텍스트 변경 명령어 #명령어설명cw단어 변경cc행 변경C커서 오른쪽의 행 변경s커서가 위치한 문자열 대체S커서가 위치한 라인의 문자열 대체r커서 위치 문자를 다른 문자로 대체r-Enter행 분리J현재 행과 아래 행 결합xp커서 위치 문자와 오른쪽 문자 교환~문자형(대, 소문자) 변경u이전 명령 취소U행 변경 사항 취소, 이전의 최종 행 취소.이전 최종 명령 반복텍스트 삭제 명령어 #명령어설명x커서가 있는 문자 삭제nx커서가 있는 위치부터 n개의 문자를 삭제dw현재 커서에 있는 한 단어 삭제dd커서가 있는 라인 삭제ndd커서가 있는 라인부터 n개의 라인 삭제db커서의 위치에서 거꾸로 한 단어 삭제D커서 오른쪽 행 삭제:5,10d5~10번째 행 삭제복사 및 이동 명령어 #명령어설명yy커서가 위치한 줄 복사Y행 yank 또는 복사yh커서의 왼쪽 문자 복사yl커서에 위치한 문자 복사yi커서가 위치한 줄과 그 아랫줄 복사yk커서가 위치한 줄과 그 윗줄 복사Pyank 되거나 삭제된 행 현재 행 위로 삽입pyank 되거나 삭제된 행 현재 행 아래에 삽입:1,2 co 31~2행을 3행 다음으로 복사:4,5 m 64~5행을 6행 위로 이동yank : 홱 잡아당기다한줄복사 #해당 라인에서 ‘yy’, 즉 y를 두번 누르면 캐시에 저장이 된다.붙여넣기를 원하는 곳으로 이동하여 ‘p’를 누르면 커서 다음 라인에 붙여넣기가 된다.블럭복사 #v키를 누른 후 커서를 이동하여 블력을 설정한다.putty의 경우 블럭이 설정되는 모습이 보이나, ssh의 경우 블럭 모습이 나타나지 않으나 실제로는 설정되고 있다.원하는 부분을 블럭으로 설정한 뒤(설정 완료키는 없다) ‘y’키를 누르면 캐시에 복사가 된다.같은 방법으로 원하는 곳으로 이동하여 ‘p’를 누르면 커서 다음 라인에 붙여넣기가 된다.행 번호 설정 명령어 #명령어설명:set nu 또는 :set number에디터의 각 행의 좌측에 행 번호 표시:set nonu에디터의 각 행의 좌측 행 번호 숨기기행 찾기 명령어 #명령어설명G파일의 마지막 행으로 가기21G파일의 21번째 행으로 가기Ctrl + G현재 File name과 커서의 라인 정보탐색 및 대체 명령어 #명령어설명/{검색할 문자열}오른쪽 아래 방향으로 문자열 검색?{검색할 문자열}왼쪽 위 방향으로 문자열 검색n문자열의 다음으로 계속 검색N문자열의 이전으로 계속 검색:g/search-string/s/각 발생 탐색 후 확인하고 대체:s/string/rep현재 행의 str을 rep로 대체:1,.s/string/rep/1부터 현재 행의 str을 rep로 대체:%s/string/rep/g파일 전체 str을 rep로 전부대체:.$/aaa/bbb커서의 위치로부터 파일의 끝까지 있는 모든 aaa를 bbb로 대체화면 정리 명령어 #명령어설명Ctrl + l불필요한 화면정리 후 다시 표시파일 명령어 #명령어설명예제:r {파일명}커서 다음에 파일 삽입:r test.txt:{행번호} r {파일명}입력한 파일을 입력한 행번호 다음에 삽입:10 r test.txt보관 및 종료 명령어 #명령어설명:w변경사항 저장:w {파일명}변경사항 입력한 파일명으로 저장:wq변경사항 보관 후 vi 종료. ZZ 명령과 같음. :w(기록)과 :q(종료) 를 연속적으로 수행ZZ변경사항 보관 후 vi 종료. 임시 버퍼의 내용을 vi로 호출할때 사용되었던 파일에 기록한 후 vi를 빠져나옴:q!변경사항 보관하지 않고 종료q수정한 파일을 저장하지 않고 vi 종료e!수정한 것을 무시하고 다시 편집상태로기타 #문자설명.현재 line%전체 line$파일 맨끝 line1,$%2,32 ~ 3 lineAdvertisement 관련 글[Linux] tree Directory 구조 조회Linux · System[Linux] alias 명령어 치환Linux · System[Linux] 네트워크 - wget 웹 다운로드Linux · Network Commands[Linux] 네트워크 - scp 서버간 파일 복사Linux · Network Commands [Linux] alias 명령어 치환 →