리눅스에 대해 세번째로 남기면서, 수업 4일차의 내용입니다.
이때는 VI 에 대해 진행했습니다.
리눅스는 GUI 보다는 텍스트로 여러가지 명령과 작업을 진행하기 때문에 특히나 이 vi 라는 것에 대해 잘 알아야 한다네요.
vi(visual screen editor) : 리눅스나 유닉스에서 일반적으로 사용하는 텍스트 편집기
자체 윈도우가 있는 것이 아니라 터미널에서 실행 되고, 메뉴가 없다.
vi 는 세가지 상태(모드,Mode)가 있다.
1) 명령상태 또는 esc 상태
2) 입력상태 또는 편집 상태
3) ex상태 또는 :(콜론) 상태
#vi
vi 를 실행하면 처음상태가 명령상태이다. 키보드 입력이 하나의 명령으로 동작한다.
i(insert) 나 a(append) 를 누르면 입력상태로 전환된다.
왼쪽하단에 -끼워넣기- 또는 -INSERT- 로 표시됨
다시 명령상태로 전환하려면 esc 키를 누르면 된다.
ex 상태는 콜론(:) 으로 시작하는 상태를 말한다.
:set nu ---> 라인번호 출력
:set nonu ---> 라인번호 해제
처음 vi 를 실행하면 명령상태 이므로 아래 문자키를 입력하여 입력상태로 만들고 입력을 하게 된다.
■ 입력상태 설명
i : 현재 커서 앞쪽에 입력
a : 현재 커서 뒤쪽에 입력
I : 현재 라인 처음에 입력(라인이 공백으로 시작하면 실제 단어 앞에 입력 됨)
A : 현재 라인 마지막에 입력
o : 현재 라인 아래 줄에 입력
O : 현재 라인 위쪽 줄에 입력
명령상태로 바꾸려면 esc 키를 누르면 된다. (왼쪽 하단에 -끼워넣기- 또는 -INSERT- 가 표시되면 입력상태, 없으면 명령상태이다.)
■ 삭제(esc 키를 눌러서 명령상태에서 입력하는 것임)
x 또는 delete 키 : 한자 삭제
dd : 한 줄 삭제
dw : 한 단어 삭제 (단어 첫번째 글자에 커서를 위치시켜야 함)
d$ : 현재 커서 부터 마지막까지 삭제 ($는 마지막을 의미)
d0 : 현재 커서 부터 라인의 처음부분까지 삭제 (숫자 0 은 처음을 의미)
d^ : 현재 커서 부터 라인의 처음부분까지 삭제 (^ 는 처음을 의미)
■교체
r : 한 글자 교체(r 누르고 새로운 문자 입력)
cw : 한 단어 교체(cw 누르고 새로운 단어 입력후 esc 누르기)
cc : 한 줄 변경(cc 누르고 새로운 내용 입력후 esc 누르기)
dw 나 cw 이용시 단어의 첫번째 글자에 커서를 위치시키고 작업을 해야 함
리눅스 명령어 상태(# 상태)로 빠져 나가려면 명령상태로 바꾼다음 아래 명령을 입력후 엔터를 치면된다.
:q (저장하지 않고 종료, q - quit)
:wq (저장후 종료, w - write, q - quit)
vi 실행시 파일명을 지정하지 않았으면 리눅스 명령어 상태로 나올 때 저장할 파일명을 입력해야 한다.
:q 엔터를 쳤을 때 하단에 ! to override(덮어쓰려면 ! 더하기) 메시지가 나오는 경우가 있는데
1)읽기 전용파일을 편집후 빠져 나올 때
또는
2)파일을 수정후 저장하지 않고 그냥 빠져 나올 때 이런 메시지가 출력된다.
이때는 !(force - 강제 실행을 의미)를 사용해서 빠져나오면 된다.
:q! (저장하지 않고 강제 종료)
:wq! (저장후 강제종료)
--->리눅스는 대소문자를 구분함
:q! 를 입력해서 리눅스 명령어 상태로 빠져 나온다.
#vi
입력 상태 만들고 단어를 입력
one
two
three
esc 누른 후 :wq 엔터 입력 ---> 파일명을 지정하지 않아서 메시지가 출력된다.
:wq test2.txt
---> :wq 저장할파일명
---> 기본적으로 vi 를 실행한 디렉토리(현재 디렉토리)에 저장된다.
---> 다른 디렉토리에 저장하려면 :wq /tmp/test3.txt 와 같이 경로와 파일명을 입력하면 된다.
#vi test2.txt
---> vi 실행하면서 test2.txt 파일을 open 하기. 즉 존재하는 파일 편집하기
■ 이전작업 취소 ---> u(undo 를 의미)
■ 이전 작업 반복 ---> .(점)
■ 문자키를 이용한 커서 이동하기(명령상태에서 하기)
k(위)
h(왼쪽) l(오른쪽)
j(아래)
■ 라인번호 출력 및 해제(명령상태에서 입력)
1)
:set number
:set nonumber
2)
:set nu
:set nonu
3)
:se nu
:se nonu
:help (도움말 출력)
:help usr_03
:help wq
:q (도움말 종료)
색상 설정하기
:color evening
:color morning
:color desert
■ 검색
/검색단어(명령상태에서 / 누르고 검색단어 입력후 엔터)
--->후방 탐색(앞에서 뒤로 검색)
n 을 누르면 다음 단어로 이동된다.
N 을 누르면 이전 단어로 이동
?검색단어
--->전방 탐색(뒤에서 앞으로 검색)
:set nohls (검색어 색상 해제)
:set hls (검색어 색상 출력)
■ 라인이동 및 페이지 이동
shift + g : 마지막 라인으로 이동(대문자 G, go 를 의미)
1번 라인으로 이동하기
---> 1G 또는 :1 엔터
33번 라인으로 이동하기
---> 33G 또는 :33 엔터
ctrl + f(또는 Page Down 키) : next page 로 이동
ctrl + b(또는 Page Up 키) : previous page 로 이동
b : 이전 단어로 이동
w : next 단어로 이동
enter : next 라인으로 이동
space bar : 같은 라인에서 next 문자로 이동
esc :q 입력해서 빠져 나오기
■ 실습
1)메모장 이용하여 아래 내용으로 /root 디렉토리에 redhat.txt 생성하기
2)vi 이용하여 아래 내용으로 /tmp 디렉토리에 redhat2.txt 생성하기
Redhat Linux
CentOS Linux
Debian Linux
--->터미널에서 vi 로 작업후 탐색기(파일 브라우저)에서 확인을 하면 된다.
#vi -c 100 /etc/services
---> 파일을 open 하면서 100 번 라인으로 이동하기
-c 는 command 를 의미
또는
#vi +100 /etc/services
#vi -c "color morning" /etc/hosts
---> O
#vi -c"color morning" /etc/hosts
---> X
#vi +"color morning" /etc/hosts
---> O
#vi + "color morning" /etc/hosts
---> X
리눅스 명령어 대기상태로 빠져 나오기
#vi linux.txt (---> vi 저장할파일명)
~ 표시는 라인에 아무 내용도 없다는 의미
아래와 같이 입력하기
apple
apple apple apple
orange
orange orange orange
mango
mango mango mango
■ 치환
:1,10s/원래단어/바꿀단어 ---> 1번 라인에서 10번 라인까지 변경
:%s/원래단어/바꿀단어 ---> 파일 전체에서 첫번째 단어만 변경
:%s/원래단어/바꿀단어/g ---> 파일 전체에서 한 줄의 모든 단어 변경
:%s/원래단어/바꿀단어/gc ---> 파일 전체에서 한 줄의 모든 단어 변경시 확인질문 출력(confirm)
:%s/apple/tico (명령상태에서 입력후 엔터-결과 확인)
:%s/orange/matiz/g (g 는 global 을 의미)
■ 복사 및 붙여넣기
한줄 복사 : yy (yank)
한줄 붙여넣기 : p (paste) - 현재 라인 아래 줄에 붙여넣기
P - 현재 라인 윗 줄에 붙여 넣기
여러줄 대상으로 할 때는 숫자이용
숫자-yy-p ---> 여러 줄 복사해서 붙여넣기
3dd (3줄 삭제)
3p (3번 붙여넣기)
■ 라인합치기 : J (Join)
■ 파일편집 및 읽기
:e 파일명(기존 파일 편집하기)
:e! 파일명(현재 작업을 중단하고 다른 파일 편집)
:r 파일명(현재 라인 아래에 기존 파일 읽어오기)
■ 다중파일 편집
vi 파일명1 파일명2 ...
:args (목록 출력)
:n (다음 파일로 이동)
:prev (이전 파일로 이동)
■ vi 에서 저장후 종료 방법
1) :wq
2) ZZ(: 없이 대문자로 입력)
3) :x
4) :exit
■ 블록지정
shift + v : 라인 단위 블록 지정(shift + v 를 누른후 화살표키를 이용하여 블록을 지정)
블록을 지정한 상태에서 y : 복사하기
블록을 지정한 상태에서 d : 삭제하기
블록을 지정한 상태에서 p : 붙여넣기
이상입니다. (현재 포스팅하는 시간은 수업중입니다 ㅋ)
아무쪼록 항상 행.복.하시길~^^
'◇ Tip & Info ◇' 카테고리의 다른 글
엠토리, 리눅스 세상에서 - 5th : Shell(쉘) (0) | 2011.02.23 |
---|---|
엠토리, 리눅스 세상 접속 - 4th : 여러가지 명령어 (0) | 2011.02.17 |
엠토리, 리눅스 세상 접속 - 2nd : 리눅스 디렉토리, 구조, 기능, 명령어 개요, 설정 등 (0) | 2011.02.13 |
엠토리, 리눅스 세상 접속 - 1st : 수업 OT, VMware, 리눅스 설치 (0) | 2011.02.12 |
PocketSword (포켓스워드) 아이폰용 무료 성경 앱 (1) | 2011.01.09 |