시스템 관리자라면 환경 설정을 위해 텍스트 파일 편집하거나 셸 스크립트 파일을 작성해야 하는 경우가 생긴다.
텍스트 편집기를 사용하여 파일을 편집할 수 있는데 대부분의 리눅스 배포판은 과거 유닉스에서 사용된 vi의 개선된 버전인 vim을 제공한다.
파일을 오픈하여 편집하기 위해 가장 자주 사용하는 vi의 명령어 형식은 다음과 같다.
vi [options] fileName
vi는 모달 편집기이며 해당 터미널에서 다른 작업은 수행할 수 없다.
vi 편집기는 명령 모드 , 입력 모드 그리고 라인 모드(ex모드)의 세 가지 모드로 구분된다는 점이다.
또 대문자와 소문자를 구별하여 정확히 사용해야 한다.
vi 편집기를 시작하면 처음에는 명령 모드로 시작된다. 텍스트를 추가하거나 변경하려면 먼저 한 글자 또는 두 글자의 명령 키를 입력하여 입력 모드로 이동한 후 작업하여야 한다.
사용자가 어느 모드 인지 모를 땐 ESC키를 두 번 누르면 항상 명령 모드로 돌아온다.
텍스트 입력
명령 모드에서 다음 표에 해당되는 키를 눌러 입력 모드로 들어갈 수 있다.
명령 키 | 설명 |
A | 현재 라인의 끝에 텍스트를 추가할 수 있다. |
O | 현재 라인의 위에 라인이 열리고 텍스트를 추가할 수 있다. |
a | 현재 커서 위치의 오른쪽부터 텍스트를 추가할 수 있다. |
i | 현재 커서의 위치부터 텍스트를 삽입할 수 있다. |
l | 현재 라인의 처음에 텍스트를 삽입할 수 있다. |
o | 현재 라인의 아래에 라인이 열리고 텍스트를 추가할 수 있다. |
커서 이동 명령
명령 모드에 있을 때 커서 이동을 위해 화살표를 사용할 수 있으나 더욱 편리하게 움직일 수 있도록 커서 이동만을 위한 명령 키가 있다.
명령 키 | 설명 |
방향키 | 커서를 방향키에 따라 한 번에 한 글자씩 이동한다. |
hjkl | h는 왼쪽 l은 오른쪽 j는 아래,k는 위로 움직인다. |
w | 다음 단어의 첫 자로 이동한다. 단어의 구분은 빈칸,탭,구두점으로 한다. |
W | 빈칸 탭을 구분으로 다음 단어의 첫 자로 이동한다. |
b | 앞 단어의 첫 자로 이동한다 w와 같이 단어를 구분한다. |
B | 앞 단어의 첫 자로 이동한다 W와 같이 단어를 구분한다. |
0 | 현재 라인의 첫 칸으로 이동 |
$ | 현재 라인의 마지막 칸으로 이동 |
HML | H는 화면에서 첫 라인, M은 가운데 라인 L은 마지막 라인의 첫 칸으로 이동한다. |
Page up키 | 한 페이지 위로 이동한다. |
Page down키 | 한 페이지 아래로 이동한다. |
gg | 첫 라인으로 이동한다. |
30G | 30번째 라인으로 이동한다. |
G | 마지막 라인으로 이동한다. |
텍스트를 삭제,변경,복사
명령 모드에서 명령 키를 사용하면 텍스트를 삭제하거나 변경할 수 있다. 이동 명령을 통해 커서를 적당한 위치로 옮긴 후 작업해야 한다. 삭제 명령 키는 다음과 같다.
명령 키 | 설명 |
x | 커서 위치의 한 문자를 삭제한다. |
3x | 커서의 위치부터 세 자를 삭제한다. |
dw | 커서의 위치부터 다음 단어 전까지 삭제한다. |
3dw | 커서의 위치부터 세 단어를 삭제한다. |
db | 커서 왼쪽부터 이전 단어를 삭제한다. |
D | 커서의 위치부터 현재 라인의 끝까지 삭제한다. |
d0 | 커서의 왼쪽부터 현재 라인의 처음까지 삭제한다. |
dd | 현재 라인을 삭제한다. |
3dd | 현재 라인부터 세 라인을 삭제한다. |
dG | 현재 라인부터 파일의 끝까지 삭제한다. |
dH | 현재 라인부터 화면의 앞까지 삭제한다. |
dL | 현재 라인부터 화면의 끝까지 삭제한다. |
텍스트를 변경할 때 사용되는 명령 키이다.
명령 키 | 설명 |
r | 커서 위치의 한 문자가 대치된다. |
R | 커서의 위치부터 계속 대치할 수 있다. 입력 모드로 전환된다. |
s | 커서 위치의 문자가 삭제되고 입력모드로 전환된다. |
S | 현재 라인에 존재하는 문자가 삭제되고 현재 라인에서 입력모드로 전환된다. |
C | 커서 위치부터 라인 끝까지 삭제되고 입력 모드로 전환된다. |
c0 | 커서 왼쪽부터 라인의 앞까지 삭제되고 입력 모드로 전환된다. |
cw | 커서 위치부터 단어의끝까지 삭제되고 입력모드로 전한된다. |
cH | 현재 라인부터 화면의 앞까지 삭제되고 입력모드로 전환된다. |
cL | 현재 라인부터 화면의 끝까지 삭제되고 입력 모드로 전환된다. |
변경이나 삭제를 위한 명령 키는 텍스트를 변경하거나 삭제하면서 텍스트를 버퍼에 복사한다.
다음은 복사를 위한 명령 키이다.
명령 키 | 설명 |
yy | 현재 라인을 복사한다. |
3yy | 현재 라인부터 세 번째 라인을 복사한다. |
yw | 커서의 위치부터 다음 단어의 앞까지 복사한다. |
y$ | 커서의 위치부터 라인의 끝까지 복사한다. |
y0 | 커서 왼쪽부터 단어 앞까지 복사한다. |
yG | 현재 라인부터 파일의 끝까지 복사한다. |
y) | 커서의 위치부터 한 문장을 복사한다. |
y} | 커서의 위치부터 한 문단을 복사한다. |
텍스트를 복사한 다음 p 또는 P 명령을 사용하면 버퍼의 내용을 붙여 넣기 할 수 있다.
p는 커서의 왼편에 붙여 넣기 한다. 라인을 복사한 경우 현재 라인의 위에 붙여 넣기 하며
P는 커서의 오른편에 붙여 넣기 한다. 라인을 복사한 경우 현재 라인의 아래에 붙여 넣기 한다.
도트는 앞서 수행한 작업을 반복 수행할 수 있다.
파일의 저장과 vi종료
텍스트 편집 작업을 수행한 후 결과를 저장하고 종료하려면 명령 모드에서 ZZ을 입력하면 된다.
명령 모드에서 콜론: 을 입력하여 라인 모드로 들어가 명령을 수행할 수 있다.
이전에 수행했던 명령을 취소하려면 명령 모드에서 u를 입력한다. 취소 작업을 잘못해 다면 Ctrl+r을 입력하여 원위치로 돌아갈 수 있다.
또한 검색을 하여 해당 위치로 커서를 이동시킬 수 있는데 /를 타이핑하여 라인 모드로 전환한 뒤 패턴을 입력하고 enter키를 누르면 지정된 문자열을 찾아 커서가 이동된다. 같은 검색을 반복하려면 명령 모드에서 n을 입력한다.
이때 정규표현식을 사용할 수 있다.
'Linux' 카테고리의 다른 글
[Linux] 마운트와 언마운트 (0) | 2020.11.18 |
---|---|
[Linux] 파일 찾기와 문자열 검색 명령어 (0) | 2020.11.17 |
[Linux] 서비스의 실행과 종료 (0) | 2020.11.17 |
[Linux] 운영체제의 부팅 (0) | 2020.11.17 |
[Linux] 파일의 종류 (0) | 2020.11.16 |
댓글