티스토리 뷰
vi (Visual Editor) : 텍스트편집기
- 리눅스에서 가장 많이 사용하는 텍스트 편집기
- 모드 형 편집기
vim (Vi IMproved) : 향상된 vi
- vi 기능을 향상시킨 vi의 클론버전
- 비주얼 모드가 추가됨
- 현재 가장 많이 사용되는 텍스트 편집기
모드(mode)형과 비모드형 편집기
1. 모드형
- 입력모드와 명령모드가 구분
- 입력모드는 텍스트를 입력할 때 사용하는 모드
- 명령모드는 삭제, 복사, 붙여넣기 편집이 가능한 모드
- vi는 모드형 편집기
2. 비모드형
- 입력모드와 명령 모드가 구분되어 있지 않음
- 편집 기능을 Ctrl이나 Alt 같은 특수 키와 함께 사용
- 메모장, 한글, 워드는 비모드 형 편집기
# 명령모드 / 입력모드 / 실행모드
각각의 모드에서 실행할 수 있는 키입력들이 다르다.
vi를 실행시키면 항상 명령모드다.
- 명령모드 -> 입력모드 : i, a, o
- 입력모드 -> 명령모드 : esc
- 명령모드 -> 실행모드 : :, /, ?
- 실행모드 -> 명령모드 : esc
vim 설치
- #> yum -y install vim
- #> alias vi="vim"
# vi="vim" 임을 Xshell 에도 alias로 등록
vi [파일명]
- 파일이 존재하는 경우 : 해당 파일을 열어 내용을 수정
- 파일이 존재하지 않는 경우 : 새로운 파일을 만들어 내용을 입력
명령모드 -> 입력모드
- a (append) : 커서가 위치한 곳에서 한 칸 뒤로 이동한 후에 입력모드 전환
- i (insert) : 커서가 위치한 곳에서 입력모드 전환
- o (open line) : 현재 커서가 위치한 행에서 개행한 후 입력모드 전환
파일 내용 입력
- 1. vi [파일명]
- 2. 내용 수정/입력 후
- 3. ESC → <입력모드> → <명령모드>
- 4. :w (저장)
- 5. :q (종료)
#> vi /etc/resolv.conf
입력시
# 이와같이 수정가능한 창이 나온다.
이미 존재하는 파일에 vi명령을 했으므로 해당 파일을 열어 내용을 수정할 수 있다.
# 이와같이 practice 디렉토리에 vi_test1.txt 를 생성해보자.
존재하지 않는파일이므로 새로운 파일이 생성된다.
#)_ 참고
#> rm -rf ./* 은 해당 디렉토리 내의 모든파일 삭제
# 입력시 새 파일이 생성된 것을 알 수 있다.
좌측의 '~' 표시는 비어있는 행을 나타낸다.
#> i 키를 입력시 '끼워넣기' 로 모드가 변하면서 입력이 가능해진다
#> ESC 키를 누르면 다시 명령모드로 돌아오게되므로 입력/수정 이 불가능하다.
#> : 키를 눌러 실행모드로 들어갈 수 있다.
#> :w 를 입력후 엔터를 치면 저장된다.
#> :q 입력시 vi모드가 종료된다.
#> :wq 는 저장 후 종료 가 된다.
i, a, o 는 직접 눌러보며 차이점을 알아가야한다.
커서 이동
- 명령모드에서 아래 키로 이동이 가능하다.
(k) ↑
(h) ← (j) ↓ (l) →
vi가 처음 나왔을때의 키보드는 방향키가 없던 시절이었기 때문에,
익숙해진다면 손의 이동의 동선을 최소화 할 수 있다.
- ^ : 행의 맨 앞으로 커서를 이동
- $ : 행의 맨 끝으로 커서를 이동
# 실습을 위해 /etc/services 파일을 현재경로에 test-2 로 카피해보자.
#> cp /etc/services ./test-2 입력하고, 해당 파일을 열면
# 맨 앞이 #으로 시작하는 행은 주석문이다.
Ctrl + b : 이전화면 (back)
Ctrl + f : 다음화면 (front)
#> :set number - 행번호 표기
[#]gg : [#]으로 이동, [#]이 생략되면 1을 의미하여 문서의 처음으로 이동
[#]G : [#]으로 이동, [#]이 생략되면 마지막 행을 의미하며 문서의 끝으로 이동
삭제 ( 명령모드 에서 사용)
x : 커서에 위치한 문자 삭제 (Delete 키)
dd : 커서가 위치한 행 삭제
ex) 10줄 삭제 : 10dd //현재 커서가 위치한 곳으로부터 10줄 삭제
999줄 삭제 : 999dd
복사 (yank)
yy : 커서가 위치한 행을 복사
ex) 3줄 복사 : 3yy //현재 커서가 위치한 곳으로부터 3줄 복사
붙혀넣기 (put)
p : 현재 행에 붙여넣기
명령어 취소/다시실행
u : undo, 바로 이전에 행한 명령어 취소
Ctrl + r : 바로 이전에 취소했던 명령을 다시실행
명령모드에서의 삭제/복사/저장/종료
#> :20d - 20번째 행 삭제
#> :1,3d - 1번 ~ 3번행 삭제 (1,2,3행 삭제)
#> :w - 저장
#> :w! - 강제저장 // ! 는 '강제' 라고 알면 된다.
#> :q - 종료
#> :q! - 강제종료
#> :w [파일명] - 새로운 파일이름으로 문서 저장
#> :e! - 편집한 내용을 저장하지 않고 파일 다시 열기
# 명령모드에서 :w test-3 입력시 새로운 파일이름으로 현재 파일과 동일한 파일 저장
행번호 출력
#> :set number(:set nu 와 동일)
문자열 검색
/[문자열]
ex) /tcp
n : 다음으로 일치하는 문자열로 이동
N : 이전으로 일치하는 문자열로 이동
문자열 치환
#> :%s/[OLD]/[NEW]/g
ex) :%s/udp/tcp/g //문서 전체의 udp를 tcp로 치환
'SYSTEM > LINUX' 카테고리의 다른 글
10) Redirection, Pipe (0) | 2018.04.22 |
---|---|
8) Link (0) | 2018.02.21 |
7) Grep&Regular-Expression (0) | 2018.02.17 |
6) Basic Command2 (0) | 2018.02.15 |
5) Basic Command1 (0) | 2018.02.14 |