[Linux] 편집기 명령어

728x90

구조

  • 대기 모드, 입력 모드, command line 모드

저장과 종료

[root@localhost ~]# cp /etc/passwd aaa
cp: overwrite 'aaa'? y

[root@localhost ~]# which vi
/usr/bin/vi

[root@localhost ~]# ls -l /usr/bin/vi
-rwxr-xr-x. 1 root root 1180488  6월 18  2020 /usr/bin/vi
[root@localhost ~]# which vim
/usr/bin/vim

[root@localhost ~]# vim  aaa

esc → u  되돌리기 undo

esc → :q  에디터 종료

esc → :q!  에디터 강제 종료 (보통 파일 수정 후 내용을 저장하지 않고 종료할 때 사용) ! 는 강제 의미를 갖는다.

esc → :w [다른 파일 이름]  다른 이름으로 파일 저장

esc → :wq  저장하고 종료

esc → :x  저장하고 종료

esc → shift + z + z  저장하고 종료

입력

i  현재 커서 위치에서 입력이 가능해진다.

a  현재 커서 뒤로 입력이 가능해진다.

s  현재 커서에 있는 문자를 지우고 입력이 가능해진다. 4 s 이런식으로 4개 문자 삭제하고 입력 모드로 넘어갈 수 있다.

o  현재 커서가 있는 위치 아래로 공백라인을 확보하고 하고 입력이 가능해진다.

 

I  현재 커서가 있는 문자열의 맨 앞으로 커서가 이동하고 입력이 가능해진다.

A  현재 커서 위치에서 마지막 문자열로 커서가 이동하고 입력이 가능해진다.

S  현재 커서가 있는 위치의 문자열을 지우고 입력이 가능해진다.

O  현재 커서가 있는 위치 위로 공백라인을 확보하고 입력이 가능해진다.

복사 / 붙여넣기

yw (1y 1w == 1x1 yw 한 단어를 복사) 단어를 복사, 6단어를 복사하고 싶다 2y3w == 6yw

yy 라인을 복사 5yy ⇒ 5 line 을 복사

y^ 현재 커서의 앞부분을 복사

y$ 현재 커서의 뒤쪽을 복사

yH 현재 커서가 있는 라인부터 화면에 보이는 윗 부분까지 복사

yL 현재 커서가 있는 라인부터 화면에 보이는 아랫 부분까지 복사

ygg 현재 커서가 있는 라인 부터 파일의 가장 윗 부분까지 복사

yG 현재 커서가 있는 라인 부터 파일의 가장 아랫 부분까지 복사

[주의 : 복사 잘라내기 붙여넣기 삭제 는 모두 대기모드 진행한다.]

yank y	------>  이동 ---> p paste
				nymw    (n,m 은 숫자  곱하기로 이루어진다.)

yw  단어를 복사		1y1w ==1x1 yw      2y3w == 6yw
yy  라인을 복사		5yy  현재 커서가 있는 라인을 포함하여 아래로 5라인을 복사
y^  커서가 있는 앞쪽으로 복사
y$  커서가 있는 뒤쪽으로 복사
yH  커서가 있는 라인 부터 화면에 보이는 윗 부분 까지 복사
yL  커서가 있는 라인 부터 화면에 보이는 아랫 부분 까지 복사
ygg 커서가 있는 라인 부터 파일의 가장 윗 부분 까지 복사
yG  커서가 있는 라인 부터 파일의 가장 아랫 부분 까지 복사

:n,my    n번째라인부터 m번째 라인까지 복사
ex) :10,20y

잘라내기 / 붙여넣기

cw(1y 1w == 1x1 yw 한 단어를 복사) 단어를 잘라내기, 6단어를 잘라내고 싶다 2c3w == 6cw

cc 라인을 잘라내기

c^ 현재 커서의 앞부분을 잘라내기

c$ 현재 커서의 뒤쪽을 잘라내기

cH 현재 커서가 있는 라인부터 화면에 보이는 윗 부분까지 잘라내기

cL 현재 커서가 있는 라인부터 화면에 보이는 아랫 부분까지 잘라내기

cgg 현재 커서가 있는 라인 부터 파일의 가장 윗 부분까지 잘라내기

cG 현재 커서가 있는 라인 부터 파일의 가장 아랫 부분까지 잘라내기

삭제

x  현재 커서의 뒤 문자를 삭제, 5x -> 5개의 문자를 삭제

X  현재 커서의 앞 문자를 삭제

단어와 라인삭제

dw(1y 1w == 1x1 yw 한 단어를 복사) 단어를 삭제, 6단어를 삭제하고 싶다 2d3w == 6dw

dd 라인을 삭제

d^ 현재 커서의 앞부분을 삭제

d$ 현재 커서의 뒤쪽을 삭제

dH 현재 커서가 있는 라인부터 화면에 보이는 윗 부분까지 삭제

dL 현재 커서가 있는 라인부터 화면에 보이는 아랫 부분까지 삭제

dgg 현재 커서가 있는 라인 부터 파일의 가장 윗 부분까지 삭제

dG 현재 커서가 있는 라인 부터 파일의 가장 아랫 부분까지 삭제

이동

^  현재 커서가 놓인 라인의 맨 앞으로 이동

$  현재 커서가 놓인 라인의 맨 뒤로 이동

gg  맨 윗줄로 이동

G  맨 아랫줄로 이동

:[숫자]  command line 모드에서 숫자를 지정하면 해당 라인으로 이동

:n, my  n 번째 라인부터 m 번째 라인까지 복사

:n, md

:n, mc

검색

/  현재 커서 위치의 아래부터 검색

?  현재 커서 위치의 위부터 검색

/단어 (정규 표현식으로 검색 가능) esc → n 아래로 검색된 내용 확인, esc → N 위로 검색된 내용 확인

?단어 (정규 표현식으로 검색 가능) esc → n 아래로 검색된 내용 확인, esc → N 위로 검색된 내용 확인

치환

:n, ms/찾고자하는 단어(정규 표현식 가능)/바꾸려는 단어(정규 표현식 가능)

:10, 20s/nlogin/hahaha/g ← 한 번에 모두 변경

:10, 20s/nlogin/hahaha/gc ← 선택해서 변경 가능

ex):1, $s/nologin/hahaha/g

      :1, $s/hahaha/nologin/gc === :s/hahaha/nologin/gc

      :argdo, %s/hahaha/nologin/g | update 다중 파일 오픈 시 패턴을 정의해서 한 번에 파일을 변경

y  바꾼다.

n  안바꾼다.

a  나머지 모두 바꾼다.

q  커서 위치의 문자를 바꾸지 않고 종료한다.

l  커서 위치의 문자까지만 바꾸고 종료한다.

^E ^Y  변경을 하다가 아래 위로 변경하고자 하는 부분을 찾아볼 때 사용, 변경 하는 것이 아니다.

vim 환경 세팅

cd ~ 로 이동 하고 vim .vimrc 파일을 생성한다. rc 는 Run Controll 이라는 뜻일 것이다... 아마도..

.vimrc 에는 vim 에 관련된 환경값들이 들어온다.

set autoindent 는 indent를 다음줄에도 유지하게 하는 설정이다.

set nu 는 편집기에 line 수가 나오도록 한다.

다중 편집

cp /etc/passwd aaa

cp /etc/passwd ccc

vim aaa ccc ⇒ aaa 파일과 ccc 파일을 동시에 연다.

다중 파일 오픈 시 :n 과 :N 을 이용하여 다음 파일로 이동이 가능하다.

 

aaa 파일이 오픈되고 :n 하면 ccc 파일이 오픈되고, ccc 파일에서 :N 하면 aaa 파일이 오픈된다.

만약 3개 이상의 파일을 열어서 동시에 작업하는 경우 2개 이상의 파일을 한번에 넘어서 이동해야 할 경우 :2n :2N 의 형태로 명령하면 된다.

 

주의할 점은 파일에 수정이 발생했으면 저장하지 않고서 다음 파일로 이동할 수 없다. 혹은 :N! :n! 을 사용하여 저장하지 않고 이동할 수 있다.

 

다중 파일 오픈 시 현재 작업하고 있는 파일과 파일의 목록을 보고 싶으면 esc 를 눌러 대기 상태에서 :ls 를 입력하면 된다.

:b[숫자] 는 :ls 명령어로 확인된 파일 별 숫자를 확인하여 파일 이동 시에 사용한다.

ab 파일로 이동하고 싶으면 :2 로 이동할 수 있고, eee 파일로 이동하고 싶으면 :4 로 이동할 수 있다.

728x90