VI (1)
* vi(visual Editor)
- vi 는 한 줄씩 편집하는 줄 단위 편집기가 아니라 한 화면을 편집하는
비주얼 에디터라는 뜻에서 유래
- GUI 환경에서 작업하는 것이 아니라 CLI 환경에서 작업하는 프로그램
- Windows 에서 마치 메모장과 비슷
- 간결하면서도 강력한 기능을 제공함
vi 에는 3가지 모드가 존재
명령모드, 입력모드, 실행모드
1> 명령모드
- vi의 기본모드
- enter키를 누를 필요없이 하나 하나의 키를 눌러서 동작
- R을 누르면 하단에 -- REPLACE-- 표시가 뜨며 Windows 마치 Insert키와
동일한 작업
2> 입력모드
- 문자나 숫자를 입력
- 하단에 --INSERT-- 표시 됨
3> 실행모드
- 파일 저장, 열기, 새로 만들기 등등
명령모드에서 입력모드로 전환
- a, i, o 등의 키를 누름
명령모드에서 실행모드로 전환
- /, ?, : 등의 키를 누름
입력모드에서 명령모드로 전환
- ESC 키를 누름
입력모드에서 실행모드로 또는 실행모드에서 입력모드로 전환은 할 수 없으므로
반드시 명령모드를 거쳐서 전환해야 함
1> 명령모드
[사용형식]
# vi
: 파일의 이름도 없고 저장된 경로도 없이 빈 문서를 작업할 때
# vi 파일명
: 파일의 문서 편집을 할 때
ex>
// vi
[root@localhost itbank]# vi
: q
1-1>커서 이동(방향키)
←왼쪽 : h
↓아래 : j
↑위 : k
→오른쪽 : l
1-2>커서 이동(단어 단위)
w : 다음 단어의 처음으로 이동 특수문자, 특수기호를 인식함
b : 이전 단어의 처음으로 이동 특수문자, 특수기호를 인식함
e : 다음 단어의 마지막으로 이동 특수문자, 특수기호를 인식함
W : 다음 단어의 처음으로 이동 특수문자, 특수기호를 인식 안함
B : 이전 단어의 처음으로 이동 특수문자, 특수기호를 인식 안함
E : 다음 단어의 마지막으로 이동 특수문자, 특수기호를 인식 안함
1-3>커서 이동(행 단위)
0(숫자) : 행의 맨 처음으로 이동
$ : 행의 맨 마지막으로 이동
1-4>커서 이동(문서 단위)
gg : 문서 전체의 맨 처음
G : 문서 전체의 맨 마지막
1-5>커서 이동(화면(창) 크기 만큼)
H : 화면(창) 크기에서
L : 화면(창) 크기에서 마지막
1-6>잘라내기 및 복사
x : 현재 커서에 있는 단어를 삭제 (마치 Windows delete 키)
X : 커서가 이전 단어를 삭제(마치 Windows에서 backspace 키)
dd : 한 줄 삭제 (잘라내기)
숫자(줄) + dd : 여러 줄을 삭제 (잘라내기)
p(소) : 현재 커서 아래에 붙여넣기
P(대) : 현재 커서 위에 붙여넣기
yy : 한 줄 복사
숫자(줄)+yy : 여러 줄을 복사
1-7>실행 및 취소
u : 되돌리기
ctrl+r : 되돌리기 취소
2> 입력모드 (명령모드에서 입력모드로 전환)
i : 하단에 --INSERT-- 표시 됨 현재 커서 왼쪽에 삽입 (insert)
i 1|2 a
a : 하단에 --INSERT-- 표시 됨 커서가 우측으로 한 칸 이동
기존 커서 우측에 추가 (append)
o(소문자) : 하단에 --INSERT-- 표시 됨 현재 커서 바로 아래에 빈 줄 생성
O(대문자) : 하단에 --INSERT-- 표시 됨 현재 커서 바로 위에 빈 줄 생성
3> 실행모드
3-1> 검색
/ : 어떤 찾을 이름을 검색하고 n 키를 누르면 위에서 아래로 검색하며(↓)
N키를 누르면 아래에서 위로 검색(↑)
? : 어떤 찾을 이름을 검색하고 n키를 누르면 아래에서 위로 검색하며(↑)
N 키를 누르면 위에서 아래로 검색(↓)
[사용형식]
/찾을이름 입력 후 enter
?찾을이름 입력 후 enter
3-2> 치환(바꾸기)
[사용형식]
:줄s/기존내용/바꿀내용
→ 지정한 줄에 있는 기존 내용을 바꿀내용으로 치환
ex> :2s/FILE/FILES // 2 : line
:줄s/기존내용/바꿀내용/g
→ 지정한 줄에 있는 기존내용이 여러개가 있을 경우 한 번에 바꿀 내용으로 치환
ex> 4 hello hello hello
ex> :4s/hello/bye/g
:줄,줄(범위)s/기존내용/바꿀내용
→ 지정한 줄부터 줄까지 있는 기존내용을 바꿀내용으로 치환
ex> :3,11/hello/bye
:%(문서전체)s/기존내용/바꿀내용
ex> :%s/hello/bye
3-3> shell 명령어
[사용형식]
:! command
또는
:! command [option]
→ vi를 잠시 멈추고 지정한 명령어 실행
:!
→ vi를 잠시 멈추고 프롬프트창을 출력 (확인용)
:.! command
→ 지정한 명령어 수행 결과값을 현재 열려있는 파일 안에 삽입
→ 현재 커서 위치부터 삽입하기 때문에 기존 내용이 있으면 사라짐
그래서 사용하려면 빈 줄 생성해서 사용
ex> :.! ls -l /backup
3-4> 창 분할 모드
창 분할
[사용형식]
ctrl+wn
커서 간 창 간 이동
[사용형식]
ctrl + ww
이전 vi 모드로 복귀
:q // 종료
3-5> 파일 관련
:q
→ 종료 (원본을 수정하지 않았을 때 또는 원본을 수정하고 저장했을 때)
:q!
→ 강제종료 (원본을 수정한지를 모를 때 또는 원본을 저장하지 못하는 상황)
:w
→ 저장
:wq
→ 저장하고 종료
:e 파일
→ 파일 열기 (불러오기)
ex>
:e named.conf // 현재 /home/itbank 에 존재하는 파일 열음
:e /backup/grub.cfg // 절대경로
:enew
→ 새로 만들기 (빈문서)
3-5> 파일 및 실행 관련
: w >> 파일
→ 현재 열려 있는 파일의 내용을 지정한 파일에다가 추가해서 저장
ex> :w >> testfile1
:f
→ information(정보)
:줄번호r 파일
→ 현재 열려있는 파일의 내용 안에 지정한 줄번호+1
ex>
[준비물]
[root@localhost backup]# cat testfile2
hello
hi
bye
goodbye //ctrl + d
[root@localhost backup]# vi grub.cfg
:6r testfile2
: 줄번호r! 명령어
또는
: 줄번호r! 명령어 [option]
→ 현재 열려있는 파일의 내용 안에 지정한 줄번호+1에 지정한 명령어의 실행 결과값을 삽입
(참고로 :.! 명령어와 비슷함)
ex> :6r! ls -l /backup
3-6> etc
:set number
→ 줄 번호를 생성 위는 기니까 줄여서
:se nu
:set nonumber
→ 줄 번호를 생성 안함 위는 기니까 줄여서
:se nonu
cf. 파일 만들기
# touch 파일명
<주의> 대문자를 사용할 때 Caps Lock 을 사용하지 말고 Shift키를 눌러서
사용하길 바람(이유는 Caps Lock 누르면 키가 안먹힘)
<주의> 마우스 휠 올리지마!
vi 영역 벗어남!
'BigData_Off1 > 리눅스1' 카테고리의 다른 글
리눅스1> 2017.12.26_10일차- 사용자, shell (0) | 2017.12.22 |
---|---|
VI (2) (0) | 2017.12.21 |
리눅스1> 2017.12.18_6일차-*ftp, 정규 표현식(*,?), 논리 연산자(&&, ||, |), cat, find, halt, reboot (0) | 2017.12.18 |
리눅스1> 2017.12.15_5일차- ln, alias, touch, head, tail, more, less, nl (0) | 2017.12.15 |
리눅스1> 2017.12.12_2일차- Linux 설치 (0) | 2017.12.12 |