vi 편집기 / vim 편집기
많은 사람들이 애용하는 TUI 환경의 편집기.
vi = /bin/vi
vim = /usr/bin/vim
이하 문서에서는 당연히 많이 쓰고 자동 지원되는 vi 편집기를 중점으로 다뤄보겟다.
1. vi 편집기 실행방법
1) vi : 새 파일을 편집할 수 있는 화면이 나온다.
2) vi [filename] : 파일이름이 지정된 파일이 있을경우 해당 파일을 편집하고, 없을 경우 새파일을 해당이름으로 편집할 수 있는 화면 상태가 된다.
3) vi -r [filename] : Recovery, 이전 작업중 비정상적으로 작업이 끝난경우 편집중인 파일을 복구할때 사용하게 된다.
4) vi -L : 복구할수 있는 파일의 리스트를 확인할 수 있다.
5) vi [OPTIONS] [filename] : 특정 옵션을 부여하여 파일을 편집할 수 있다 ex) +38 은 38번째 줄 부터 편집기 실행.
* /usr/share/vim/vim80/tutor 안에는 vi의 기본적인 매뉴얼을 확인 할 수 있다. vimtutor 로도 열어볼 수 있으나 기본 설정 언어에 따라 번역내용이 다르다.
2. 편집기의 기능
기본기능 : 이동, 삭제, 입력, 저장&종료
3. vi 편집기의 모드
1) Command Mode : 명령모드
조작모드 진입방법 : 최초 vi 편집기 실행시 , 다른모드에서는 ESC키 입력후 가능.
상하좌우 이동방법 : 방향키 또는 별도 커맨드 입력.
j : 아래로 / k : 위로 / h : 좌(왼쪽)으로 / l : 우(오른쪽)으로
* 추가적인 이동방법
w : 단어 단위로 앞으로 이동 / b : 단어 단위로 뒤로 이동
^ : 라인의 처음으로 이동 / $ : 라인의 끝으로 이동
Ctrl+F : 다음페이지로 이동 / Ctrl+B : 이전 페이지로 이동
G : 문서의 마지막줄로 이동 ex) 1G : 1번줄 마지막위치로 / 30G : 30번줄 마지막위치로
조작모드 내 편집방법 :
x : 커서에 위치한 글자 삭제 / dw : 커서에 위치한 단어 삭제
d0 : 현재 커서 기준 왼쪽라인 전체삭제 / d$ : 현재 커서 기준 오른쪽라인 전체 삭제
dd : 커서 기준의 행 전체 삭제 / (n)dd : 커서 기준의 n숫자만큼의 줄 삭제
dG : 현재 커서 기준 하위 모든 내용 삭제
d(n)G : 커서기준 (n) 수 만큼 위로 줄 삭제 ex) d1G = 커서기준 문서 첫번째 줄까지 모두 삭제
u : 바로 이전 상태로 되돌림 / ctrl+R : 실행취소를 다시 되돌리기 (다시실행)
r : 한글자를 수정할 수 있음 (이동 -> x(삭제) -> i(입력모드) -> 수정입력 을 한번에 할수 있음)
2) Input(insert) Mode : 입력모드
입력모드 진입방법 : i, a, o ..등등 을 입력해야 입력모드로 전환됨.
i , I : 현재 커서 위치로부터 입력 / 현재 커서가 있는 행의 처음부터 입력
a, A : 현재 커서 위치 이후 입력 / 현재 커서가 있는 행의 마지막부분부터 입력
o, O : 현재 커서 위치 있는 아래행부터 입력 / 현재 커서 위치 있는 위행부터 입력
3) Last line Mode : 최하위행
최종모드 진입방법 : shift+; 즉 : or / or ?
최하위행 내 저장 & 종료 방법 :
w : 저장하기 / w! : 강제적 저장하기 (root) / w [filename] : [filename]으로 저장하기.
q : 종료하기 / q! : 저장 안하고 편집기 종료
* wq / wq! 등으로 조합하여 많이 사용함
![CMD] : vi 편집기를 빠져나가지 않고 쉘 명령어를 수행하기
[참고] 저장하고 빠져나가기의 여러방법
:x / :wq / ZZ 등의 방법 도 있다.
최하위행 내 편집방법 :
: set nu : 라인번호 표시하기
: set nonu : 라인번호 지우기
: 30 (30G) : 특정 줄로 이동하기 (지금은 30번째줄)
: n, nd : n ~ n 까지의 줄 내용 삭제
/[word] : 특정 단어 검색 이후 n 은 아래로 검색 N은 위로 검색
?[word] : 특정 단어 검색 이후 N은 아래로 검색 n은 위로 검색
yy(=Y) : 한 줄 전체 복사 , 3yy : 커서기준 아래 3줄 복사
p : 커서기준 아래줄에 붙여넣기, P : 커서기준 윗줄에 붙여넣기
* 1, 3 co 5 : 1번째 라인부터 3번째 라인까지 5번째 라인 아래에 복사해서 붙여넣어라
* 1, 3 m 5 : 1번째 라인부터 3번쨰 라인까지 5번째 라인 아래로 이동해라 ( 잘라내고 붙여넣는 개념 )
:s%/[findword]/[changeword]/g : 단어를 찾아서 치환
:[1,3]s%/[findword]/[changeword]/g : 1번째 라인부터 3번째 라인 사이의 단어를 찾아서 치환
* CMD 끝에 g가 있는데 g가 있을경우 범위내 전체 문서 g가 없을경우 줄 기준으로 첫 단어만 치환됨
[참고] last line mode 의 응용방법 4가지
1) :5,10s/^/#/ /* 주석처리 */
2) :5,10s/^#// /* 주석해제 */
3) :5,10s/^/ / (4 blank character) /* 들여쓰기 */
4) :5,10s/^ // /* 내어쓰기 */
4. vi 편집기의 환경파일
기 설정되어있는 여러가지 기능들이 내장되어있다, 해당 내용들은 set이라는 환경파일내에 저장되어있다 : set all 로 set 환경파일 접속하여 설정내용을 끄고 키거나, 지정값을 변경하며 이용가능하다.
* ~/.vimrc 의 환경설정 파일을 별도로 만들어 내가 원하는값만 넣어서 적용도 가능하다.
-> 주로 이용되는방식
1) 주로 설정하는 set 내 설정값내용
: set tabstop=4 : 탭간격 조정 ( 약어 : set ts=4 )
: set number : 라인 번호 달기 ( 약어 : set ni )
: set autoindent : 자동 들여쓰기 ( 약어 : set ai )
VI 편집기 ... 언젠가는 적응되겠지 ..
'모의해킹 침해대응 과정 > Linux 기초' 카테고리의 다른 글
리눅스 기초때기 3일차. 특수 퍼미션 SetUID/SetGID/Sticky Bit (0) | 2021.04.01 |
---|---|
리눅스 기초때기 3일차. 파일 속성 정보 관리(Permission) / CHOWN, CHGRP, CHMOD,UMASK (0) | 2021.04.01 |
리눅스 기초때기 2일차. 기타 관리용 명령어 / WC, SU, SUDO,LAST,WHO,W (0) | 2021.03.31 |
리눅스 기초때기 2일차. / CAT, MORE, HEAD,TAIL (0) | 2021.03.31 |
리눅스 기초때기 2일차 파일 관리 / TOUCH, CP, MV, RM (0) | 2021.03.30 |