vi 개론
ex : vi 편집기가 이용되기 이전 유닉스의 기본 편집기 - ex는 라인 편집기라는 형식
하이텔등의 vt모드에서 사용하는 기본 편집기와 비슷함
vi : ex를 visual 하게 만들었다고 하여 이름이 vi라고 함
기본 명령어들이 ex와 동일(ex 명령어라고 함)
HP-UX 11.X등의 유닉스 버전에서는 VI와 ed , ex, view , e 등의 프로그램이 아예
같은 프로그램 코드를 사용하여 하드 링크로 되어 있기도 함
vim : 오리지널 버전의 vi보다 여러가지가 개선
한글 처리 및 기타 상요자 인터페이스가 vi보다 향상
사용자에 따라서는 vim이 추가적으로 제공하는 여러가지 멋진 기능을 활용하는데에
취미를 붙이게 될 수 도 있음
vi 기본 사용법
vi 편집기
- 명령어 모드 : 입력한 글자는 모두 명령어로 인식하여 명령을 수행
- search 모드 : 문자열을 검색
- ex 모드 : 보다 자세한 명령할 수 있음
- 삽입 모드 : 입력한 글자는 문서 내용이 됨
기본적으로 vi는 두가지의 구분된 모드하에서 동작
- 명령어 모드 와 삽입모드
- 최초로 vi를 실행시켰을 때의 모드는 명령어 모드
vi 편집기의 시작
- 모드 전환
vi에는 명령어 모드와 삽입 모드가 있어 파일을 편집하다가 새로운 내용을 입력하려면
삽입 모드로 전환하여야 함.
입력을 끝내고 다시 편집하려면 명령어 모드로 전환해야 함
MS 윈도우의 워드나 아래 한글등의 문서 편집기에는 이런 모드 전환 없이 입력과
편집이 하나의 모드 안에서 이루어짐
vi 개론
10dw - 10회 삭제 단어 현재 커서 위치로 부터 10개의 단어를 삭제하라
삽입 모드 i,l,A,o,O,c 알파벳의 공통점
명령어 모드 -> 삽입 모드
i : 현재 위치한 커서앞에 입력
a : 현재 위치한 커서 앞에 입력
l : 현재 라인의 첫 문자 앞에 입력
A : 현재 라인의 마지막 문자 뒤에 입력
o : 현재 라인 다음에 새로운 라인을 만듬
O : 현재 라인 이전에 새로운 라인을 만듬
삽입 모드에서 <ESC>를 누르기 전까지 입력한 글자는
<Backspace> 키로 지울 수 있지만, 삽입 모드로 들어오기 전에
입력한 글자는 <Backspace> 키로 지울 수 없습니다.
이럴 경우에는 다음에 설명되는 삭제 명령어를 사용하셔야 합니다.
<삭제에 관련된 명령어>
글자 혹은 라인을 삭제할 경우 삭제 명령어와 x와 d를 사용합니다.
<문자 삭제>
x 현재 커서가 위치한 문자 삭제
X 현재 커서가 위치한 앞 문자 삭제
라인 삭제 : 라인을 지우는 명령어는 d
이 명령어를 사용할 때는 d에 뒤이어 쓰는 문자들은 삭제의
범위를 표현
dd : 현재 커서 라인 전체를 지움
dw : 현재 커서로 부터 다음 단어 처음까지를 지움
d3l : 현재 커서로 부터 다음 세 글자를 지움
d0 : 현재 커서로 부터 다음 라인의 시작까지를 지움
d1G : 현재 커서로 부터 파일의 시작까지를 지움
dG : 현재 커서로 부터 파일의 끝까지를 지움
D : 현재 커서로 부터 라인의 마지막까지를 지움
< 변경 명령어 >
r - 한글자만 변경
R - <ESC> 가 눌리기 전까지의 모든 글자를 변경
cc - 현재 커서가 위치한 라인 전체를 변경
cw - 현재 커서가 위치한 다음 단어를 변경
c3l - 현재 커서가 위치한 다음 3 단어를 변경
c0 - 현재 커서로 부터 라인의 시작까지를 변경
c1G - 현재 커서로 부터 파일의 시작까지를 변경
cG - 현재 커서로 부터 파일의 마지막까지를 변경
c$ - 현재 커서로 부터 라인의 마지막까지를 변경
< 자르기 복사 붙여넣기>
자르기 : vi의 클립보드는 단 하나이므로 , 두가지를 삭제했다면,
먼저 삭제한 내용은 영원히 없어지게 됨.
< 복사하기 명령어>
yy - 현재 커서가 위치한 라인 전체를 복사
yw - 현재 커서가 위치한 다음 단어를 복사
y0 - 현재 커서가 위치한 라인의 시작까지를 복사
yG - 현재 커서로 부터 파일의 마지막까지를 복사
<붙이기 명령어>
삭제하거나 복사한 항목을 붙여놓고 싶을때는 p또는 P(Paste) 명령을 사용함
-p : 현재 커서 위치의 다음 문자나 다음 라인에 붙여짐
-P : 현재 커서 위치에 끼워 넣어지거나 앞쪽 라인으로 삽입됨.
여기에서 삭제하거나 복사한 단위가 문자 단위인지 아닌지 라인 단위인지에 따라
붙여넣기가 다르게 동작함
< 찾기 명령어>
찾기를 하려면 명령어 모드에서 seach 모드로 들어가야 합니다.
명령어 모드 -> search 모드(/ ?)
명령어 모드 <- search 모드 (Enter)
명령어 모드 -> search 모드 /- 현재 커서 위치에서 다음 방향으로 찾기 수행
?- 현재 커서 위치에서 이전 방향으로 찾기 수행
명령어 모드 <- search 모드 Enter : 즉시 찾기를 수행한 후 다시 명령어 모드로 돌아감
다음 찾기 명령어 n - 이전과 같은 방향으로 찾기 반복
N - 이전과 반대 방향으로 찾기 반복
바꾸기 명령어 : 다른 명령어와는달리 ex명령어를 사용하기 때문에 약간 복잡
명령어 모드 -> ex모드 (:)
명령어 모드 <- ex모드 (Enter)
:1.#s/old/new/g
첫번째 라인부터 마지막 라인까지 , 즉 파일 전체에서 old라는 글자를 new 라는 글자
로 대체함
:1.20s/old/new/gc
첫번째 라인부터 20번째 라인까지 , 특 20줄에서 old 라는 글자를 new 라는 글자로
대체하되 , 바꾸기 전에 물어봄
: n.ms/old/new/g
n번째 라인에서 m번째 라인까지 old라는 글자를 new라는 글자로 대체함
파일 제어 명령어
다음 명령어들은 ex모드에서 수행되는 명령어 들입니다. 따라서 명령어 앞쪽에서 항
상 : 가 붙습니다.
ex) 명령에서 수행되는 명령
:r file 현재 라인 다음으로 파일을 읽어들임
:w 현재의 내용을 파일로 저장함
:w! 사용권한을 무시하고 현재 내용을 파일로 덮어씀
:w file 다른 이름ㅇ로 저장함
:wq 저장후 종료함
: x 저장한 후 종료함
:q 저장하지 않고 종료함
:q! 저장하지 않고 종료함
:!cmd 쉘 명령 수행
:r!cmd 쉘 명령 수행 결과를 현재 커서 이후로 읽어들임
man
Name : 명령어 이름(Command line)
Synopsis : Syntax 요약
Description : 명령어 , 옵션등의 의미설명
Examples : 사용 예
See Also : 유사하거나 관련 있는 명령어
Files 관련 파일명
맨페이지와 섹션
맨페이지는 각 영역에 따라 다음과 같이 여러 섹션으로 나뉘어져 있습니다.
1번 섹션 : 사용자 명령어
2번 섹션 : 리눅스 시스템 콜
3번 섹션 : 라이브 러리
5번 섹션 : 파일 형식
8번 섹션 : 시스템 관리 명령어
기본적인 파일 제어 명령어
cd , pwd( 경로 이동 및 확인)
cd 라는 명령어를 이용하여 디렉토리를 이동함.
$ man 섹션 번호 명령어( 또는 라이브러리 함수명)
여기에서 디렉토리 명을 생략하면 사용자의 홈 디렉토리로 이동합니다.
pwd : 자신이 현재 어느 위치에 있는지 확인해야 할 경우에 사용함.
이때 사용하는 명령어는 pwd
파일 정보 확인 -ls
디렉토리 안에 어떤 파일이 있는지 알고 싶을 때 사용한다.
-l 긴 형식으로 파일의 정보를 자세히 보여줌
-a 숨김 파일을 볼수 있는 옵션으로 파일의 속성까지 보여줌
-F 파일 타입을 보여줌(flag file type)
-R 서브 디렉토리를 재귀적으로 나타냄
-i 파일의 Inode 값을 보여줌(file name wi
사용 권한
drwxr_xr_x : 열자리의 문자들 중 첫번째 자리를 제외한 나머지 9자리는 세
자리씩 끊어서 세개의 그룹을 형성
첫번째 세문자 그룹은 소유자 Owner 혹은 User 권한
두번재 세문자 그룹은 그룹(소유 Group)의 권한
세번째 세문자 그룹은 그밖의 타인의 권한
디렉토리 생성 및 삭제 -mkdir , rmdir
mkdir 디렉토리를 만들때 사용하는 명령어
rmdir 디렉토리를 삭제할때 사용하는 명령어
파일 삭제 , 복사 및 이름 변경
rm : 파일 제어에 있어서는 파일을 지움
-i 삭제전 , 삭제할 지를 물어봄
-r 자식 디렉토리까지 삭제함
cp :파일을 복사
-i 타켓 파일이 이미 존재할때 해당 파일에 덮어 쓰며 복사할 것잊니를 체크
하는 옵션
-r 자식 디렉토리 및 자식 디렉토리의 파일까지 복사하는 옵션
mv : 파일을 이동시킴
-i 타겟 파일이 존재할때 파일을 이동시킬 것인지를 체크하는 옵션
링크라는 개념은 다른 운영 체제에는 없는 조금 특별한 기능입니다.
링크의 방법 1. 하드 링크
파일 시스템이 다르면 inode값을 공유 할 수 없으므로 동일한 파일 시스템 안에서
만 링크가 가능하다
2. 심볼릭 링크 - 원본 파일의 이름을 공유하는 방법
파일 내용보기 - cat , more , less , head , tail
$cat (파일명) : 파일의 내용 전체를 확인하고자 할때 사용하는 명령어이다.
$less 파일명 :
$more 파일명 : 파일의 내용을 페이지 단위로 보여지며, 앞/뒤로 스크롤 시킬수
있는 기능을 가지고 있습니다. 주로 이 명령어는 단독으로
$head 파일명 : 파일의 시작 부분 10줄을 보여줌
$tail 파일명 : 파일의 끝부분 10줄을 보여줌
파일 찾기 - locate , find
$locate 파일명
$find <경로>[옵션] 파일명 - locate보다 다양한 조건으로 파일의 위치를 찾아 낼
수 있는 명령어이다
-name filename : 파일명이 filename과 일치하는 파일을 찾습니다.
-type x : 파일 타입이 x와 일치하는 파일을 찾습니다.
grep 명령어 : 파일 내에서 특정한 문자열 패턴을 검색하여 해당하는 라인을 화면에
출력하는 명령어입니다. 파일에서 문자열을 찾아내는 경우뿐만 아니라 명령문의
수행 결과가 아주 많을때 필요한 정보가 포함된 부분만 출력하는 경우에 이용할
수도 있습니다.
$grep 문자열<파일명>
파일의 압축과 관리 -tar
공개된 리눅스용 소스 파일들이 많다 이런 경우 대게 .tar.gz 등의 확장자로 된
파일로 압축되어 있음. 시스템으로 다운받아 설치하려면 이 파일의 압축을 풀고
설치 프로그램을 수행해야 함.
$tar[옵션]<tar파일명>[파일명1파일명2...]
명령어
-cvzf tar 파일명 다음에 나열되는 파일들을 하나의 파일로 묶어 gzip 도구로
압축 시키는 옵션
-xvzf tar 파일명으로 압축된 파일을 풀어 설치하는 옵션
다운받은 파일의 확장자가 .tar.gz인 경우 이 옵션을 이용
-cvif tar 파일명 다음에 나열되는 파일들으 하나의 파일로 묶어 bzip2도구로
압축시키느 옵션
-xvjf tar파일명으로 압축된 파일을 풀어 설치하는 옵션
3가지 모드
Normal : vi 처음 실행했을 때 노멀모드이다. 이 상태에서는 텍스트입력이 불가. 커서를 이동해서 각종 자르고 붙이고 편집.Insert : 보통 'a' 'i'를 누르고 입력모드로 들어간다. Esc키누르면 노멀모드로.Command-line : ' : ' 입력하면 가장 아랫라인에 프롬프트 상태로 되고 가종 명령 실행 저장 나가기 등등.
$ vi$ vi <파일명>
나가려면 일단 노멀모드 상태이어야 한다.:q 만약 파일에 변경사항이 있으면 알려준다. 저장하지 않으면 나갈 수가 없다.:q! 무조건 나간다. 저장 되었건 안되었건:wq 변경사항 저장하고 나간다.
vi처음시작하면 노멀모드이다. a,A,i 눌러서 입력모드로 들어가서 입력하면된다.a 현재 커서가 위치한 다음칸부터 입력A 현재커서가 위치한 줄의 끝에서부터 입력i 현재 커서가 위치한 그 자리부터 입력
노멀모드에서 커서 이동키h 왼쪽으로j 아래로k 위로l 오른쪽으로자판에 방향키가 있다면 방향키도 가능하다
b 한단어 뒤로(왼쪽)f 한단어 앞으로(오른쪽)^ 커서가 위치한 줄의 처음으로$ 커서가 위치한 줄의 마지막으로( 커서가 위치한 문장의 처음으로) 커서가 위치한 문장의 마지막으로{ 커서가 위치한 단락의 처음으로} 커서가 위치한 다란의 마지막으로1G 현재파일의 가장 처음으로0G 현재파일의 가장 마지막으로
지금까지에 모든 조작전에 숫자를 입력할 수 있고 그 숫자만큼 움직인다.예를 들어서 '5b'를 차례로 누르면 5단어 뒤로 커서가 이동하고 '5^'를 누르면 5줄 위로 커서가 이동한다.
아래는 화면을 움직이는 키이다. 커서는 움직이지 않는다. 그런데 화면이 움직여 커서가 화면 끝에 걸리면 그 때부터는 커서가 화면끝에서 계속걸려서 움직인다.Ctrl + e 한 줄씩 화면을 아래로 이동Ctrl + d 한 화면 아래로 이동Ctrl + y 한 줄식 화면을 위로 이동Ctrl + u 한 화면 위로 이동
x 커서가 위치한 한글씩 지운다.숫자x 입력한 숫자의 글자를 지운다.dw 커서 위치한 한 단어를 지운다.d$ 커서 위치한 라인을 지운다.dd 커서 위치한 라인 지운다.d} 커서 위치한 다락을 지운다.
cw 커서가 위치한 곳부터 커서 위치한 단어의 끝부분까지 변경할 수 있는 입력모드로 전환c$ 커서가 위치한 곳부터 커서 위치한 라인의 끝부분까지 변경할 수 있는 입력모드로 전환c} 커서가 위치한 곳부터 커서 위치한 단락의 끝부분까지 변경할 수 있는 입력모드로 전환위 바꾸기 키를 입력하면 변경할 범위의 끝에 ' $ ' 표시가 생긴다. 그리고 모든 변경 마친다음 Esc눌러 노멀모드로 나와야한다.
기본적으로 복사는 y, 붙이기는 p 자르기는 위에서 말한 지우기 x로 한다.여기에 숫자, w, $, } 등과 조합해서 범위를 정한다. 예를 들어서 5y, yw, y$
' / '나 ' ? '로 찾는다./ 커서아래로? 커서위로
특정문자를 찾아서 바꾸는 것은 명령모드로 들어가서 다음과 같이 입력한다.:%s/찾고자하는 물자/바꾸고자하는 문자예 :%s/A/B A를 찾아서 B로바꾼다
옵션사용가능하다예 :%s/A/B/g - 모든 A를 찾아서 B로 자동으로 바꾼다.:%s/A/B/gc - 모든 A를 찾아서 B로 하나하나 물어가면서 바꾼다. y, n 눌러서 결정
다중창 사용
vi에서 창을 분할하여 사용가능하다. 명령모드에서 다음을 입력한다.:hide 현재커서가 위치한 창을 닫는다:only 현재커서가 위치한 창만 남기고 모두 닫는다:split filename 입력한 파일을 다른창에서 불러온다:sview filename split와 동일하고 다만 읽기모드로 불러온다. 편집불가:vsplit filename 창을 세로로해서 파일 불러온다.
창간 이동과 창크기 조정은 다음과 같이Ctrl + w 방향기 커서이동Ctrl + ww 다음창으로 이동Ctrl + w _ 현재창 최대화Ctrl + w + 현재창 한줄 키움Ctrl + w - 현재창 한줄 줄임Ctrl + w = 모든창 같은 크리로
환경설정 파일은 다음 세가지가 있다./etc/vimrc~/.vimrc~/.exrc
위 파일은 없을 수 도 있다. 더 많은 정보는 아래 사이트 참조
'컴퓨터 > 프로그램,각종팁' 카테고리의 다른 글
엑셀(Excel)에서 루트 계산 방법 (0) | 2009.04.03 |
---|---|
순서도 작성을 위한 프로그램들 (1) | 2009.03.12 |
[UNIX/LINUX] vi 편집기 명령어 모음 (2) | 2009.03.08 |
MR제거? & MR제거 동영상 만드는 방법 (0) | 2009.02.23 |
[추천프로그램] FLV,SWF,AVI,MOV,ASF,MPEG,RM,MP4,MP3,3GP,K3G,OGG,MMF,WAV 파일변환 (1) | 2009.02.02 |