편집기 종류(Visual Editor)
vim :주 사용 편집기
emacs :편집기 // 단축키 위주의 사용 편집기
pico :윈도우 메모장(Noteped)와 유사 매우 단순
VI 편집기 명령어 형식
vi 새 파일을 편집할 수 있는 화면 출력 작업 후 파일이름 지정하여 저장(ex)w filename
vi filename filename 이름을 가진 파일 존재하는 경우 해당 파일을 편집, 없는파일이면 새 파일 생성후 편집
vi -R filename Readonly 상태로 열어준다. 중요한파일,여러 사람이 동시에 수정 가능한 파일 다룰때 사용
view filename -R기능과 같다
vi -r filename 비정상적으로 종료되었을 때 저장된 임시파일을 사용(r =Recoverty)
vi -L 비정상적으로 작업 종료 되었을 시 편집하던 파일 복구할 임시파일의 목록을 표시
vi +38 file name 라인번호 지정 38번 라인부터 시작
vi -c 38 filename
VI 편집기 특성
vi
vim
파일의 크기가 vim이 크다 (성능이 좋다)
gedit ~/.bashrc
alias vi=' /usr/bin/vim
. ~/.bashrc
(vi 명령어 입력시 vim 편집기 실행 적용)
명령어 실습
# vi -L
(작업중 shut down 되었을때)
# ls -l /var/tmp
(비 정상 종료된 파일의 목록이 보임)
# vi -r /var/tmp/file1.swp
# vi +/"fedora" /etc/passwd
# vi +30 /etc/passwd
# cat > /test/file1
# su - fedora
$ vi -R /test/file1
(여러 사용자가 동시에 수정 가능한 파일 다룰때)
(기본 작업 테스트)
# cd /test
# vi filename
( 존재하지 않는 파일이기 때문에 새 파일 생성)
커맨드모드(ESC Mode)
명령어 입력을 하기 위해
Input Mode 로 전환 ( I, A, O)
(반대로 ESC Mode로 돌아가기 위해서는 ESC입력)
작성한 글 편집하기
line : linux -> liNux 로 변경
move -> delete -> insert -> save & quit
(1) move : h, j, k, l
(ESC Mode로 전환)
(2) delete : x, dd
(3) : input : i
(4) save & quit : shift + :
: w!, :wq, :q!, :wq!
(w : 저장 q : 종료 ! : 무시(확인하지않고) )
( . verification )
[TER1]
# vi filename
[TER2]
# cd /test
# cd /etc/services /test
# vi services
: set number ( : set nu ) 라인 넘버수 출력
: set nonumber ( : set nonu) 라인 넘버수 제거
set number 후 ESC Mode 에서 :30 입력시
30번째 라인으로 이동
: 30 = 30G
nG ( : 사용없이 숫자입력후 G 를 입력하면 : n 과 같음)
/ftp -> n -> N
Vi 편집기 모드 변경
명령행모드/입력행모드/최하위행모드
명령행 모드 : 편집작업 및 기타 명령어를 입력 할수 있는 모드
입력행 모드 : 입력만 할 수 있는 모드
최하위행 모드 : 저장 및 기타 검색 작업등을 할 수 있는 모드
Command Mode(Edit Mode) 키 입력을 명령어로 해석
Input Mode(Insert Mode) 키 입력을 파일에 입력
Last Line Mode(Ex Mode) ex 명령어를 수행
입력행 모드(Input Mode)
편집기 실행시 처음 기본 모드
InputMode 에서 CommandMode 로 전환 하는 방법
Insert
- i : 현재 커서 위치로부터 입력
- l : 현재 커서가 있는 행의 처음부터 입력
Append
- a : 현재 커서 위치 이후부터 입력
- A : 현재 커서가 있는 행의 마지막부터 입력
Open Line
- o : 현재 커서가 있는 아래행부터 입력
- O : 현재 커서가 있는 위행부터 입력
명령 모드(Command Mode)
이동
상: j
좌: h 하: k 우: l
w : 다음 문장 처음으로 이동
b : 이전 문장 처음으로 이동
0(^) : 라인의 처음 문자로 이동
$ : 라인의 마지막으로 이동
CTRL + F : 다음 페이지 이동
CTRL + B : 이전 페이지 이동
H : 현재 페이지 가장 첫번째 줄로 이동
L : 현재 페이지 가장 마지막 줄로 이동
1G : 문서의 첫 번째 라인으로 이동
G : 문서의 마지막 라인으로 이동
nG : n 에 숫자입력후 G 입력 입력한 숫자로 이동*(: set number)
삭제
x : 좌우삭제/현재커서 한글자 삭제
dw : 현재 커서 한 단어 삭제
dd : 상하삭제/현재 라인 삭제
:1,3 : 1라인 부터 3라인까지 삭제
dG : 현재 커서부터 문서 마지막까지 삭제
d1G : 현재 커서부터 문처 n까지 삭제 ( 1 : 처음)
Undo
u :이전 상태로 되돌림
U :라인 전체에 대해 이전 상퇴로 되돌림
Join Line
j :현재라인에 아래 라인 붙이기
Replace
r : 현재 글자를 대치
R :<ESC>키를 누르기 전까지 현재 글자 대치
최하위행(Line)모드(Last Line Mode)
복사/붙이기(Copy/yank & Paste)
yy(=Y) 현재 라인 복사(Yank)
3yy(3Y) 현재 커서 라인 포함해서 하위의 3개의 라인 복사
p 현재 커서 아래에 붙이기
P 현재 커서 위에 붙이기
:1,3 co 5 첫 번째 라인부터 3번째 라인까지 복사하여 5번째 라인 아래에 붙이기
:1,3 m 5 첫 번째 라인부터 3번째 라인까지 5번째 라인 아래에 이동하기
검색(Search)
/New 현재 커서 라인부터 찾으려는 문자열 (예 : New)검색
?New 문서의 마지막 라인부터 찾으려는 문자열 검색
n : n(Next), 정방향 다음번째 검색
N : N(Next), 역방향 다음번째 검색
검색/바꾸기(Search & Replace)
: %s/<찾을문자열>/<바꿀문자열>/g
: 5,10s/Old/New/g
(5번째 줄부터 10번째 줄까지만 )
[참고] "<찾을 문자열>" 에는 "정규 표현식"을 사용할 수 있다.
ex) :%s/hello/HELLO/g
1,$ -> :5,10s/HELLO/hello/g
search(substitution)
globally -> %s/hello/HELLO/ , %s/hello/HELLO/g
(g는 모든 찾을문자열 /g가 없을시 첫번째만 변경)
[활용]
ex) :5,10s/^/#/ (주석처리)
:5,10s/^/%// (주석해제)
:5,10s/^/ / (4blank character) (들여쓰기)
:5,10s/^ // (내어쓰기)
Save & Quit
:w w(write) 현재 파일 저장
:w filename 다른 이름으로 저장
:w!(root use) 현재 파일 강제저장
:w file 현재까지의 변경사항을 file로 저장
:3,10w file 3번째 라인부터 10번째 라인까지 file로 저장
:q q(quit) 편집기 종료
:q! 저장안하고 종료
:wq 저장하고 종료
:wq! 현재파일 강제적 저장 종료
:r file file내용을 현재 커서 위치에서 읽어들임
:!CMD vi 편집기를 빠져나가지 않은 상태에서 쉘 명령어를 수행
w!와 wq! 는 root use 일때만 가능
[참고] 저장하고 빠져나가기 (Save & Quit)의 여러가지 방법
:x
:wq
ZZ
:! bash 배쉬셀 추가
[참고] vi 편집기 실행에 대해서
[TER1] # vi filename
: wq!
[TER2]# vi services
: q!
# cat services
vi 편집기 환경파일
편집기 환경파일
라스트 라인 모드에서
: set all (전체 환경기능 출력)
: set (현재 사용하고 있는 기능만 출력)
: set number (사용하고 싶은 기능)
: set nonumber (사용하지 않을 기능)
: set tapstop=4 (: set ts=4)
( : set [기능의이름]=[값] )
no가 앞에 붙어있는 것은 기능이 비활성화 되어있는 상태
VIM편집기의 기본환경 설정 파일 변경 시
지금 사용하는 편집기에만 설정이되고 다음 편집기에는 초기화 된다
지속적 동작을 원할때
vi ~/.vimrc (vim run command)에 옵션값을 입력하여 저장한다
'Learning > └Essential & Admin' 카테고리의 다른 글
리눅스 사용자가 알아두면 좋은 명령어_Unit10 (0) | 2016.10.25 |
---|---|
리눅스 사용자통신명령어_Unit9 (0) | 2016.10.24 |
리눅스 파일 속성관리_Unit7 (0) | 2016.10.21 |
리눅스 파일종류_Unit6 (0) | 2016.10.21 |