[과제 3]
vi 편집기 조사하고 문서화 + 실습
vi 편집기란?
Visual editor의 약자로 리눅스나 유닉스에서 환경설정 파일 등을 수정해야 할 때 사용하는 편집기
리눅스에서 가장 많이 사용하는 텍스트 에디터이다.
vi 편집기는 4가지 모드가 있다.
1. 명령 모드 (command mode)
다양한 명령을 내리는 모드
2. 입력 모드 (insert mode)
키보드를 이용해 자유롭게 텍스트 입력
3. EX 모드 (ex mode)
명령어 사용 (저장, 나가기 등)
4. 비쥬얼 모드( visual mode)
시작하기
vi[파일명]
처음 실행시 명령 모드 상태가 된다.
다른 폴더에 존재하는 파일명 입력할 때는 경로도 함께 입력해야 한다.
기존에 hello.c 라는 파일이 없어 hello.c 파일을 새로 만들어준다.
종료하기
명령 모드로 먼저 전환한 후 이동 명령키 입력
esc 누르면 명령 모드로 전환
key | 동작 |
:w | 현재 변경사항 저장 |
:wq | 현재 변경사항 저장 후 나가기 |
:q! | 저장하지 않고 나가기 |
:q | 나가기 |
:!bash | 쉘 환경으로 전환 |
ZZ | 현재 변경사항 저장 후 나가기 |
입력 모드 전환하기
key | 동작 |
i | 현재 커서의 위치로 입력 모드로 전환 |
I( i 대문자 ) | 현재 커서 줄의 맨 앞 위치로 입력 모드 전환 |
a | 현재 커서의 바로 뒤 위치로 입력모드 전환 |
A | 현재 커서 줄의 맨 뒤 위치로 입력 모드 전환 |
i,I,a,A모두 왼쪽 밑 모서리에 -- INSERT -- 표시가 나온 것을 보아 입력모드로 변경되었다는 것을 알 수 있다.
커서 이동하기
명령 모드로 먼저 전환한 후 이동 명령키 입력
esc 누르면 명령 모드로 전환
key | 동작 |
h | 왼쪽으로 1 space 이동 |
l( L 소문자 ) | 오른쪽으로 1 space 이동 |
j | 아래 줄로 이동 |
k | 윗 줄로 이동 |
왼쪽 방향키 | 왼쪽으로 1 space 이동 |
오른쪽 방향키 | 오른쪽으로 1 space 이동 |
아래 방향키 | 아래 줄로 이동 |
위 방향키 | 윗 줄로 이동 |
아래 사진은 모두 세 번째 줄 p에 커서를 놓고 실습했다.
입력 되돌리기
u를 누르면 한 단계가 되돌아가고 반복해서 사용하면 그 전으로도 되돌아간다.
왼쪽 밑 모서리에 before 적혀있고 시간도 함께 나온다.
입력 다시 실행하기
ctrl+r
왼쪽 끝 모서리에 Already at newest change 라고 적혀있고, 두 번째 printf 문 맨 끝에 새미콜론이 사라진 것을 볼 수 있다. 가장 나중에 입력된 것이 되돌아간다는 것을 알 수 있다.
지우기
명령 모드 상태에서 커서를 지울 글자로 이동 후 x 키를 누른다.
key | 동작 |
x | 커서 위치 글자 삭제 |
[숫자]x | 커서 위치 포함 숫자만큼 삭제 |
X | 커서 앞 글자 삭제(ex. backspace) |
dw | 커서 위치로부터 다음 단어 첫 글자 전까지 지우기 |
[숫자]db | 커서 위치로부터 숫자만큼 앞에 있는 단어 삭제 |
[숫자]dd | 커서 위치로부터 숫자만큼 줄 삭제 |
D | 커서 위치로부터 줄 끝까지 삭제 |
복사하기
key | 동작 |
[숫자]yw | 커서 위치 포함 뒤에 있는 단어 숫자만큼 복사 |
[숫자]yb | 커서 위치로부터 앞에 있는 단어 숫자만큼 복사 |
[숫자]yy | 커서가 있는 줄 숫자만큼 복사 |
-> '과 m을 각각 한 단어로 인식한 것으로 보임
붙여넣기
key | 동작 |
p | 커서 다음에 붙여넣기 |
P(대문자) | 커서 이전에 붙여넣기 |
p는 앞에 복사하기와 함께 실습해 따로 이곳에 넣지 않겠다.
검색하기
명령 모드로 먼저 전환한 후 이동 명령키 입력
esc 누르면 명령 모드로 전환
key | 동작 |
/[문자열] | 앞에서부터 문자열 검색 |
?[문자열] | 뒤에서부터 문자열 검색 |
이외에 더 많은 명령어들이 있었는데 vi 편집기를 실제로 더 사용하면서 사용한 것들을 추가적으로 정리하면 좋을 것 같다.
참고)
https://blog.lael.be/post/7321
'Kali Linux' 카테고리의 다른 글
week-3 [과제 1] (0) | 2020.05.22 |
---|---|
week-2 [과제 2] (0) | 2020.05.18 |
week-2 [과제 3] (0) | 2020.05.18 |
week-2 [과제 1] (0) | 2020.05.18 |
week-2 [과제 4] (0) | 2020.05.17 |
댓글