리눅스 vi 기본 (검색/치환/창나누기)
< vi : 문서 편집기 >
vi [tagea]
[root@localhost ~]# vi /etc/passwd
줄번호 설정 (:set nu)
줄 번호를 끈다(:set nonu)
방향키 : k
h j l
[[ = 문서의 제일앞
]] = 문서의 제일 뒤
페이지 이동
ctrl + f : 다음페이지
ctal + b :이전페이지
화면 상에서 이동
h
shift + m
l
x :삭제
u :되돌리기
커서 이동
w : 단어의 처음으로
e : 단어의 끝으로 <다음단어의 끝>
b : 단어의 처음으로 <이전단어의 처음>
책갈피(마크)
지정 m[?] a~z
호출 `[?] (숫자 1 왼쪽키) A~Z 52개 지정가능
지정한것 불러들일때 `[?]
-커서기준-
i 현재 위치에서 입력 모드로 변경
a 현재 위치에서 우측으로 한 칸 이동 후 입력 모드로 변경
o 커서 아래에 새로운 행을 추가하고 입력모드로 변경
s 현재 문자를 지우고 입력모드로 변경
x 한 글자씩 삭제
dd 행 삭제
[숫자] dd 지정숫자만큼 행 삭제
yy 행 복사
[숫자] yy 지정숫자만큼 행 복사
p 행 붙여넣기
dd와 yy의 활용법
dw 다음단어 삭제 yw 행
de 다음단어 삭제 ye
db 이전단어 삭제 yb
d0 행 처음까지 삭제 y0
d$ 행 끝까지 삭제 y$
dG 문서 끝까지 삭제 yG
dgg 문서 처음까지 삭제 ygg
검색
/ 찾을것: ↓ n ↓ 정방향
N ↑ 역방향
? 찾을것: ↑ n ↑ 정방향
N ↓ 역방향
치환
:[범위]s/원본/수정/옵션
1. :s/test/1234 범위 지정안해서 한줄만 치환
2. :s/test/1234/g 범위커서행 모두 치환 (g=범위전체)
3. :10,11s/w/1234 10~12행당 1개씩 치환
4. :10s/w/1234/g 10행 모두 치환
5. :10,12s/i/1234/g 10~12행 모두 치환
6. :%s/th/1234/g 문서 전체 모두 치환 (%=문서전체)
7. :6s/\/etc/!!! /etc를 !!!로 치환
'/'를 치환할때는 앞에'\'(역슬래쉬)를 사용한다
-Shell 명령어-
:! vi를 잠시 중단하고 명령어 수행
:.! 수행한 명령의 결과를 vi 편집기로 출력한다
1. :! ls -l 뒤로가서 결과값을 보여준다
2. :.! ls -l 원본행 삭제시키고 결과값을 보여준다
3. :cd vi내부에서 경로이동(:!cd안됨)
-Split window-
[n]split[filename] 가로 나누기 n창크기,몇줄
[n]vs[filename] 세로 나누기 (vim에서만 사용가능)
1. :15 split /backup/inittab 위에서 15줄까지 inittab킨다
ctrl ww 창 이동
ctrl wn 새 창 띄우기
:e 파일열기
:enew 현재창 닫고 빈 문서 연다
:q 종료
:q! 강제종료
:w 파일 저장
:wq 파일 저장 후 종료
:w /backup/test /backup에 test란 이름으로 저장 (다른이름으로 저장)
:wq /backup/test /backup에 test란 이름으로 저장하며 종료 (다른이름으로 저장)
:숫자r [파일명] 숫자행 아래에 행추가후 파일 내용 삽입
:숫자r! [명령어] 숫자행 아래에 행추가후 명령수행 내용 삽입
:.! cat 파일명
:.! 명령어
:20r /backup/inittab 20번째 줄에 /backup/inittab 내용이 들어왔다
:11r! ls -l 11번째 줄에 /ls -l내용이 들어왔다