반응형
vi
vi(visual editor)에 대해 알아봅시다
vi는 한 줄씩 편집하는 줄 단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터라는 뜻에서 유래하였습니다.GUI 환경이 아닌 CLI 환경에서 작업을 하고 WindowsOS에서 제공하는 메모장과 비슷하다고 볼 수 있습니다. 즉, 문서 편집기라고 할 수 있습니다
사용형식
사용 형식 : vi [인자값]
vi /backup/test로 파일을 생성한 후 vi 편집기의 맨 처음 명령 모드입니다
가장 먼저 알아두면 좋은 vi 명령어입니다
:se nu
: set number
이런 식으로 바뀝니다
vi 모드
vi는 세 가지 모드가 존재하는 것으로 알고 있습니다
가장 먼저
- 명령 모드 -
-> 가장 기본 모드입니다
enter 키를 누를 필요가 없으며 하나하나의 키를 누면 바로 동작합니다
커서 이동
h : 왼쪽으로 이동
j : 아래로 이동
k : 위로 이동
l : 오른쪽으로 이동
w, W : 다음 단어의 처음
b, B : 이전 단어의 처음으로 이동
e, E : 다음 단어의 끝으로 이동합니다
w를 누르면
다음 단어의 처음으로 이동합니다 만약
이런 식으로 한 줄에 두 단어가 있으면
다음 2222222쪽으로 커서가 이동합니다
* 참고로 소문자는 특수문자, 특수기호를 인식합니다
대문자는 특수문자, 특수기호를 인식을 못 합니다
-> 이게 무슨 말이냐면 사진으로 설명드리겠습니다
이런 식으로 secondary 안에 @가 있는 사진입니다
만약 커서가 s에 존재하면 w(다음 단어의 처음)를 누르면 특수문자를 인식하기 때문에 @로 커서가 이동합니다
w(소문자)를 누르고 난후의 모습
커 이동(행으로 생각)
0(zero) : 현재 커서에서 맨 처음으로 이동 (windows에서의 home와 비슷)
$ : 현재 커서 위치에서 맨 끝으로 이동 //Windows에서 end 키와 비슷
커서 이동(문서 이동)
gg : 편집하고 있는 파일의 문서 전체에서 맨 처음으로 이동
G : gg와 반대, 맨 마지막으로 이동
커서 이동(화면 크기 단위)
H : 현재 보이는 화면 크기에서 처음
M : 현재 보이는 화면 크기에서 중간
L : 현재 보이는 화면 크기에서 마지막으로
-----
x : 현재 커서에서 있는 문자를 삭제 (delete 키와 비슷)
X : 현재 커서에 이전 문자를 삭제 (backspace라고 생각하면 이해가 쉬움)
dd : 행 한 줄 삭제 (※ 잘라내기 용도로 사용 가능)
줄 수 + dd : 지정한 줄 수를 삭제
yy : 현재 커서에 있는 줄(행)을 복사
줄 수+yy : 지정한 줄 수를 복사
p : 현재 커서 아랫줄에 붙여넣기
P : 현재 커서 위 줄에 붙여넣기
u : 되돌리기
ctrl + r : 되살리기
R : 화면 화단 REPLACE 표시 기존 문자를 수정 //되돌리기 esc 키
->>줄 수 숫자 3을 누르면 커서 기준형에서 밑에 두 줄 포함 총 세 줄이 복사 삭제가 됨
입력모드
a, i, o 등의 키를 누르면 전환 // 입력 모드에서 다시 명령 모드로 돌아가려면 esc 키를 누르면 됨
i : 명령 모드에서 i 키를 누르면 현재 커서 왼쪽으로 삽입
a : 기존 커서의 위치에서 우측으로 한 칸 이동하고 입력 모드 실행
o : 현재 커서 바로 아래 빈 줄을 생성하고 실행
O(대문자) : 현재 커서 바로 위에 빈 줄을 생성
실행 모드
명령 모드 ----> 실행 모드로 전환
? / : 등의 키를 누름
검색
/ : 어떤 찾을 이름을 위에서부터 검색하고 n 키를 누르며 검색할 때
위에서 아래로 검색을 하며 N 키를 누르면 검색할 때 아래에서 위로 검색함
=> /찾을 이름 입력 후 Enter n, N을 사용하며 찾으면 됨
? : 어떤 찾을 이름을 아래에서부터 검색하고 n 키를 누르며 검색할 때
위에서 아래로 검색을 하며 N 키를 누르면 검색할 때 아래에서 위로 검색함
=> ?찾을 이름 입력 후 Enter n, N 누름
바꾸기(치환)
명령 모드에서 해주셔야 합니다
사용 형식
:줄번호 s/기존 내용/바꿀 내용
->지정한 줄 번호에 기존 내용을 바꿀 내용으로 바꾸기
행의 내용을 한 번에 바꿈
:줄번호s/기존 내용/바꿀 내용/g
17줄 Hello world에서 l 을 i로 바꿔보겠습니다
17줄 l 을 i로 모두 바꾸겠다 enter
:17s/l/i로 쓸 경우에 Heilo world로 바뀜
그리서 /g를 붙이는 건 한 줄에 같은 글자를 모두 바꿀 때 사용!!
한 줄이 동시에 바뀌는 걸 확인할 수 있습니다
범위 바꾸기
(5,10 -> 5줄에서 10줄까지)
:줄번호,줄번호s/기존 내용/바꿀 내용
문서 전체
:%s/기존 내용/바꿀 내용
->현재 편집하고 있는 파일의 전체 내용에서 기존 내용을 바꿀 내용으로 바꾸기
:%s/기존 내용/바꿀 내용/g //+행의 모든 내용까지
그 외....
shell 명령어
:! -> vi를 잠시 중단하고 작업환경을 볼 수 있다
:! command ->vi를 잠시 중단하고 명령어를 수행 결과값을 볼 수 있다
:q -> 종료
:q! ->강제 종료 (원본을 수정했을 경우나 저장을 해선 안 되는 경우)
:w -> 저장
:wq -> 저장 종료
:e 파일 -> 파일 열기
:enew -> 새로 만들기
반응형
'❌이전글 > 이전글' 카테고리의 다른 글
DHCP가 무엇일까? 왜사용할까? (0) | 2019.04.20 |
---|---|
리눅스CentOS7 - Web 서버 ,PHP MySQL, DB연동 (3) | 2019.04.19 |
리눅스CentOS7 - 사용자 계정 생성 삭제와 비밀번호 설정 (0) | 2019.04.19 |
리눅스(CentOS7) - User Account Management 사용자 계정과 관련된 파일과 디렉터리 (0) | 2019.04.19 |
리눅스 - 명령어 구조 (0) | 2018.12.18 |
리눅스CentOS7 - 해상도 조절 (0) | 2018.12.12 |
리눅스Linux - root 유저 접속 제한 (0) | 2018.12.12 |
리눅스Linux 소개 (0) | 2018.12.12 |