대기모드 -> 입력모드(i, a, o...) / 명령모드(:, /, ?)
입력모드 -> 대기(Esc)
명령모드 -> 대기(Esc)
* 대기 모드
i : 커서 위치한 곳에서 입력모드 전환
I : 커서 위치한 라인 처음으로 이동 후 입력모드로 전환
a : 커서 위치한 곳에서 오른쪽으로 한 칸 이동 후 입력모드로 전환
A : 커서 위치한 라인 끝으로 이동 후 입력모드로 전환
o : 커서 위치한 다음 라인에 줄 삽입 후 입력모드로 전환
O : 커서 위치한 이전 라인에 줄 삽입 후 입력모드로 전환
s : 커서 위치한 곳에서 한 글자 삭제 후 ㅇ비력모드로 전환
S : 커서 위치한 라인 삭제 후 입력모드로 전환
R : 커서 위치한 곳에서 수정모드로 전환
u : 되돌리기
Ctrl + r : 되돌리기 취소
w : (다음)단어 단위로 이동, 숫자+w : 몇 단어 앞으로 이동
b : (이전)단어 단위로 이동, 숫자+b : 몇 단어 전으로 이동
0 : 라인 맨 앞으로 이동
$ : 라인 맨 뒤로 이동
G : 문서 마지막으로 이동, 숫자+G : 몇 번째 행으로 이동(:숫자와 동일)
gg : 문서 처음으로 이동
x : 커서가 위치한 글자 삭제
dd : 라인 삭제(잘라내기), ∵ 삭제해도 캐시?에 임시로 남아있기 때문에... 남아있음
d + 숫자 + d : 현재 줄부터 숫자만큼 줄 제거
d + ↑ : 커서 위치의 줄과 윗줄까지 제거
d + ↓ : 커서 위치의 줄과 아랫줄까지 제거
d + ← : 커서 전의 한 글자 제거
d + → : 커서가 위치한 글자 제거
d + 숫자 + 방향키 : 커서 줄 포함 해당 방향으로 몇 줄(몇 글자) 제거
y도 위의 d와 비슷함. 삭제 or 복사의 차이
yy : 라인 복사
p : 붙여 넣기(다음 줄)
P : 붙여 넣기(이전 줄)
~ : 대소문자 변환
* 명령 모드(:)
w : 저장. 파일명 변경하고 싶으면 "w 파일명"
q : 종료(!를 뒤에 붙일 경우 강제종료)
n : 파일 여러개 열었을 경우 다음 파일 ex) vi file1 file2 file3
N : 파일 여러개 열었을 경우 이전 파일
args : 파일을 여러개 열었을 경우 현재 파일 확인
e! : 파일을 저장하기 않고 최종 저장된 상태로 파일 다시 열기
/문자열 : 해당 위치에서 아래쪽으로 문자열 검색(n은 다음 문자, N(b)는 이전 문자로 이동)
?문자열 : 해당 위치에서 위쪽으로 문자열 검색(n은 다음 문자, N(b)는 이전 문자로 이동)
%s///g : 가장 기본적인 치환 문법
%는 문서 전체, 특별한 행을 바꾸고 싶을땐 %대신 숫자
첫번째 /와 두번째 / 사이에는 검색할 문자열(정규표현식 사용 가능)
두번째 /와 세번째 / 사이에는 치환하고 싶은 문자열 작성
g는 옵션, g를 안쓰면 행에서 첫번째만 치환하고 뒤의 것을 작업하지 않음.
g옵션을 사용하게 되면, 행에서 매칭되는 것이 두개 이상 있을 때 모두 치환해주는 옵션
ex) %s/te/et/ -> te를 et로 바꿔라. (행의 첫번째만)
1,3s/et/te/gc-> 1번째 줄부터 3번째 줄까지
%s/te/et/g -> te를 et로 바꿔라. (문서 전체)
%s/et/te/gc-> c를 붙이게 되면 하나하나 물어보는 옵션 (윈도우의 찾아바꾸기 기능과 흡사)
%s/et*/ta/gc -> et*인 문자를 바꿈
%s/et./te/gc -> et. 3글자까지만 바꿈
%s/et.*/te/gc-> et.*을 하게 되면 한 행이 모두 선택됨
p.s. s는 sed라는 명령어. 궁금한 사람은 찾아보세요~
문서 작성해놓고 앞에 배운 치환식들 활용해가면서 눈으로 확인 가능
! : vim이 아닌 bash쉘에서의 명령을 보고자 할때 사용
(vim 작업 중에 ip를 확인하고자 할 때 나가서 보는 것이 아닌 그 자리에서 확인 가능)
r! : 앞의 bash쉘에 내렸던 명령의 내용을 확인하는 것이 아닌 내용을 붙여넣고 싶을 때 사용
ab : 약어. 내가 등록해놓은 것을 나중에 바꿔줄 때, 약어가 앞 풀어줄 내용이 뒤
ex) ab IP Internet Protocol
una : 앞에 등록한 약어 제거
ex) una IP
map : 앞이 매크로, 뒤가 명령어. 등록하고 싶을 때 사용(대기모드에서 명령모드에 쓸 명령어 등록)
ex) map r : wq -> 대기모드에서 r을 누르게 되면 :wq까지 자동입력
unmap : 앞의 매크로 등록 취소
ex) unmap r
숫자 split 파일명 : 간혹 두개의 문서를 비교할 때 사용
(숫자는 문서를 분할할 때 몇줄을 다른 곳에 할당할 것인지)
ex) 2 split file2 : fie2를 열어 2줄 할당해서 같은 콘솔창에 보여줌
숫자 vs 파일명 : split은 위아래로 화면을 나눔. vs는 양옆으로 나눔. 숫자는 칸수
Ctrl+ww : 파일 간 옮겨다닐 때 사용(커서가 있는 위치에서 명령어 작용)
set : 환경설정 확인
set ic : 검색 시, 대소문자 구분 안 함
set noic : ic 설정 해제
set nu : vi에서 라인 번호 표시
set nonu : vi에서 라인 번호 표시하지 않음
set ts=칸수 : 리눅스에서 tab은 기본 8칸, 이것을 칸수만큼 수정할 때 사용
set list : tab과 개행 문자 보이기
set nolist : tab과 개행 문자 숨기기
set ff : 파일 타입 지정 ex) set ff=dos(or unix)
(두 가지가 개행 집어넣는 타입이 다르기 때문에 윈도우<->리눅스 간 파일 이동 시,
코딩 파일의 경우 제대로 작동하지 않는 경우가 발생. 그것을 맞춰줌, \n or \r\n)
p.s. 만약 환경설정할 것이 많은 경우 사용자의 홈디렉터리 안에다가 .exrc라는 파일 생성
그 안에 원하는 set 명령어 작성해서 사용 가능
- vi 실습
1. vi로 /root/install.log 파일을 열기
2. 프롬프트를 200번 라인으로 이동
3. 200번 라인부터 5라인을 복사한 후 문서의 제일 마지막 라인에 붙여넣기
4. 현재 문서에서 라인 번호를 표시
5. 300번 라인으로 이동
6. 수정모드로 edit 문자열 입력
7. 5번에서 작업했던 내용 취소
8. 100번 라인으로 이동
9. 현재 프롬프트를 기준으로 오른쪽으로 5개의 문자열 삭제
10. 현재 프롬프트를 기준으로 위쪽으로 mailcap 문자열 검색
11. 현재 문서에서 el6으로 되어있는 모든 문자열을 centos6으로 변경
12. 문서의 마지막으로 이동
13. find / -name install.log 명령의 출력 결과를 문서로 불러들이기
14. /root/anaconda-ks.cfg 파일의 내용을 현재 문서로 불러들이기
15. 500번 라인부터 50라인을 잘라내서 600번 라인 밑으로 붙여넣기
16. 저장하고 종료
'운영 > CentOS' 카테고리의 다른 글
[CentOS] Permission (0) | 2015.12.30 |
---|---|
[CentOS] User, Group 관리 (0) | 2015.12.30 |
[CentOS] find / grep 명령어 (0) | 2015.12.19 |
[CentOS] 리눅스 디렉터리 구조 (0) | 2015.12.07 |
[CentOS] 기초명령어 실습 (0) | 2015.12.06 |