vi(Visual Editor)
- 한 즐씩 편집하는 줄 단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터라는 뜻에서 유래
- GUI환경에서 사용하는 것이 아니라 TUI환경에서 사용함
- 간결하면서도 강력한 기능을 제공
- Window에서 메모장과 비슷함
즉! 문서 편집기
준비물
/backup/grub.cfg
사용형식
vi
-> 문서 편집기를 실행(메모장 실행것처럼)
vi 파일
-> 지정한 파일을 문서 편집
명령모드
- vi의 기본 모드
- Enter키를 누를 필요없이 하나하나 키를 누르면 동작
- R을 누르면 하단에 --REPLACE-- 표시되며 기존 내용을 수정할 수 있음
명령모드
커서이동
h : ←
j : ↓
k : ↑
l : →
커서이동(단어 단위)
w, W : 다음 단어의 처음
b, B : 이전 단어의 처음
e, E : 다음 단어의 마지막
소문자는 특수문자,기호를 인식
대문자는 특수문자,기호를 인식하지 않음
(참고로 대문자를 사용할 때 Caps Lock을 사용하지 않고 Shift를 눌러서 사용)
커서이동(행 단위)
0(숫자) : 현재 커서가 있는 행의 맨 처음으로 이동(Window에서 Home키와 비슷)
$ : 현재 커서가 있는 행의 맨 마지막으로 이동(Window에서 End키와 비슷)
커서이동(문서 단위)
gg : 파일의 내용 전체에서 맨 처음으로 이동
G : 파일의 내용 전체에서 맨 마지막으로 이동
커서이동(화면(창)크기 단위)
H : 작업하고 있는 화면(창)크기에서의 처음
M : 작업하고 있는 화면(창)크기에서의 중간
L : 작업하고 있는 화면(창)크기에서의 마지막
x : 현재 커서에 있는 문자를 삭제(Window에서 Delete키와 비슷)
X : 현재 커서가 이전 문자를 삭제(
Window에서 Backspace키와 비슷)
dd : 한 줄(행) 삭제(잘내기도 가능)
줄수+dd : 지정한 줄(행) 삭제
yy : 한 줄(행) 복사
줄수+yy : 지정한 줄(행) 복사
p : 현재 커서 아래에 붙여넣기
P : 현재 커서 위에 붙여넣기
u : 되돌리기(undo)
ctrl+r : 되살리기(redo)
R : 화면 하단에 --REPLACE--가 표시
기존 내용을 수정할 수 있음
(참고로 REPLACE에서 빠져나오려면 ESC키를 누름)
명령모드에서 입력모드로 전환할 때 a, i, o 등의 키를 누름
입력모드에서 명령모드로 전환할 때는 ESC키를 누름
입력모드
i : 하단에 --INSERT--가 표시
문자를 입력하면 현재 커서 왼쪽에 삽입
a : 하단에 --INSERT--가 표시
커서가 우측으로 한 칸 이동
기존 커서에 우측에 문자를 추가
o : 하단에 --INSERT--가 표시
현재 커서 아래에 빈 줄 생성
O : 하단에 --INSERT--가 표시
현재 커서 위에 빈 줄 생성
명령모드에서 실행모드로 전환할 때는 /, ?, : 등의 키를 누름
실행모드에서 명령모드로 전환할 때는 ESC키를 누름
입력모드에서 실행모드로 또는 실행모드에서 입력모드로 전환하는 방법은 없으므로 반드시 명령모드를 거쳐야 됨
실행모드
검색
/ : 어떤 찾을 이름을 위에서부터 검색하고 n키를 누르면 검색할 때 위에서 아래로 검색을 하며 N키를 누르면 검색할 때 아래에서 위로 검색
사용형식
/찾을이름 입력 후 enter
n키 또는 N키를 누름
? : 어떤 찾을 이름을 아래에서부터 검색하고 n키를 누르면 검색할때 아래에서 위로 검색을 하며 N키를 누르며 검색할때 위에서 아래로 검색
사용형식
?찾을이름 입력 후 Enter
n키 또는 N키를 누름
바꾸기(치환)
사용형식
:줄번호s/찾은내용/바꿀내용
-> 지정한 줄번호에 찾을 내용을 바꿀내용으로 바꾸기
:줄번호s/찾을내용/바꿀내용/g
-> 지정한 줄번호에 찾을내용이 여러개가 있을 경우 바꿀내용으로 동시에 바꾸기
:줄번호,줄번호s/찾을내용/바꿀내용
-> 줄번호부터 줄번호까지 찾을내용을 바꿀내용으로 바꾸기
:%(전체내용)s/찾을내용/바꿀내용
->편집하고 있는 파일의 전체 내용에서 찾을내용을 바꿀내용으로 바꾸기
shell 명령어
사용형식
:!
-> vi를 잠시 중단하고 프롬프트(작업환경)을 출력
:! 명령어
-> vi를 잠시 중단하곡 명령어 수행 결과값을 출력
:.! 명령어
-> 현재 편집하고 있는 파일 안에 명령어 수행 결과 값을 삽입 이때, 현재 커서 위치부터 삽입함므로 기존내용이 사라집니다. 이를 방지하기 위해 빈 줄을 생성 하여 작업
창 분할
사용형식
ctrl+wn
커서 창간 이동
사용형식
ctrl+ww
:q -> 종료
파일 관련
:q -> 종료(원본을 수정하지 않은 상황이나 저장을 한 상황)
:q! -> 강제종료(원본을 수정한 상황이나 저장을 하면 안 되는 상황)
:w -> 저장
:wq -> 저장 한 후 종료
:e 파일 -> 파일 열기
:enew -> 새로 만들기(빈 문서 생성)
파일 및 실행 관련
:w >> 파일
-> 현재 편집하고 있는 파일의 내용을 지정한 파일에 추가하고 저장
:w 파일
-> 다른 이름으로 저장 파일경로에 저장된다.
:f -> information(정보)
:줄번호r 파일
-> 현재 편집하고 있는 파일 내용 안에 지정한 파일의 내용을 삽입 이때, 줄번호 +1한 위치에 삽입하게 되므로 줄번호 계산을 잘 해야함
:줄번호r! 명령어
-> 현재 편집하고 있는 파일 내용 안에 명령어 수행 결과값을 삽입 이때, 줄번호 +1한 위치에 삽입하게 되므로 줄번호 계산을 잘 해야함
기타(etc)
:set number
-> 현재 편집하고 있는 파일 내용 각 줄에 번호를 생성(참고로 줄여서 :se nu도 됨)
:set nonumber
-> 현재 편집하고 있는 파일 내용 각 줄에 번호를 해제(참고로 줄여서 :se nonu도 됨)
'Linux' 카테고리의 다른 글
리눅스 CentOS - 권한 (1) | 2024.01.11 |
---|---|
리눅스 CentOS - User Account Management (1) | 2024.01.10 |
리눅스 CentOS - FTP (1) | 2024.01.08 |
리눅스 CentOS - 기본 명령어 (1) | 2024.01.07 |
리눅스 CentOS - 리눅스의 계통적 구조(tree) (1) | 2024.01.06 |