Information Security

07-1 vi(m) editor 본문

Linux

07-1 vi(m) editor

leeeeye321 2017. 9. 16. 15:05

Vim(VI improve : 향상된 vi)

-CLI(Command Line Interface) 환경에서 편집과 프로그래밍을 할 수 있도록 개발된 에디터

 

vim 패키지 설치

 

설치 완료

 

alias 설정

 

#vi [파일명]

-[파일명] 존재하면 해당 파일을 vi 텍스트 에디터로 연다.

-[파일명] 존재하지 않으면 해당 이름으로 새로운 파일을 생성한다.

 

명령 모드(Esc 모드) : Esc 키를 누르면 들어가는 상태로 명령들을 입력할 수 있는 모드

이 상태에서 파일을 저장하거나 입력, 찾기 등 다른 명령을 수행

 

입력 모드 : i, a, o, I, A, O를 누른 후 텍스트를 입력할 수 있는 모드

 

실행 모드(콜론(:) 모드) : Esc를 누른 후 :을 입력한 상태

 

vi 단축키

 

입력 모드

 

커서 이동

 

실행 모드

 

명령 모드

ZZ : 저장 후 종료

 

유용한 단축키

 

/etc/login.defs를 TEST-A 파일에 복사

 

 

vi 에디터로 TEST-A 파일을 편집할 수 있다.

 

행 번호 출력

[esc]를 누르고 :set number를 입력하면 행 번호가 출력된다.

 

:set nu도 같은 결과가 나온다.

 

행 번호 기준으로 커서 이동

-"15gg"라고 입력한 결과이다.

-[#]gg를 입력하면 [#]행으로 이동한다.

-[#]을 생략하면 1을 의미하여 문서의 처음으로 이동한다.

 

-"12G"라고 입력한 결과이다.

-[#]G를 입력하면 [#]행으로 이동한다.

-[#]을 생략하면 마지막 행을 의미하여 문서의 끝으로 이동한다.

 

-":16"이라고 입력한 결과이다.

-:[#]을 입력하면 [#]행으로 이동한다.

 

ex) 100번째 행으로 이동하기

1) 100gg

2) 100G

3) :100

 

삭제

 

명령 모드

-> x : 커서에 위치한 문자 삭제(Delete 키)

dd : 커서가 위치한 행 삭제

ex) 커서가 위치한 곳부터 3줄 삭제 : 3dd

 

복사(yank)

 

명령 모드

-> yy : 커서가 위치한 행 복사

ex) 커서가 위치한 곳부터 10줄 복사 : 10yy

 

붙여넣기(put)

 

명령 모드

-> p : 붙여넣기

 

undo

 

u : 바로 이전에 실행한 명령어 취소

 

redo

 

ctrl + r : 바로 이전에 취소했던 명령을 다시 실행

 

※ e! : 편집한 내용 저장하지 않고 파일 다시 열기

 

문자열 치환

%s/[OLD]/[NEW]/g : 문서 전체에 [OLD]를 [NEW]로 치환

 

문자열 검색

/[문자열]

 

☆ #vimtutor를 입력하면 vim 튜토리얼을 진행하며 단축키 사용을 연습해볼 수 있다.

 

★★

vi를 사용하여 파일의 내용을 변경하던 중에, 세션 연결이 해제 되거나 프로세스가 강제로 종료되는 경우 vi는 기존에 변경된 내용을 저장하고 있는 스왑(Swap) 파일을 생성한다.

 

ex) 수정하고 있던 파일명 : abc.txt

스왑 파일명 : .abc.txt.swp

-원본 파일이 위치한 곳에 숨김 파일로 생성되며 확장자 swp가 붙는다.

 

 

내용을 입력하던 중 세션을 끊었다.

 

세션을 다시 연결하고 파일 목록을 확인하면 스왑 파일이 생성된 것을 확인할 수 있다.

 

다시 수정을 시도

 

-파일의 내용이 나오지 않고 위와 같은 메시지가 나온다.

-swp 파일이 존재하면 문제가 있다고 판단하여 복구 메시지가 출력된다.

-이런 경우에는 #vi -r [파일명] 명령어로 파일을 복구 한 뒤,

스왑 파일을 삭제해야 다음 번 해당 파일 편집 시 복구 메시지가 출력되지 않는다.

 

명령어 파일 복구 명령

 

복구 성공

 

스왑 파일 삭제

 

삭제 확인

 

다시 수정 시도

 

이제 복구 메시지가 출력되지 않는다.

수정을 완료한다.

 

SSH 배너 실습

 

/etc/ssh/sshd_config : SSH 서버용 주 설정 파일

 

129번째 행으로 이동

 

-129번째 행 주석 처리 해제 후

위와 같이 수정

-/etc/issue.net : SSH 접속(원격지) 후 패스워드를 입력하기 전에 메시지를 표시하는데 사용되는 파일

 

-수정 내용을 적용하기 위하여 SSH 서버용 프로그램(데몬) 재시작

-시작 시 주 설정 파일(/etc/ssh/sshd_config)을 읽어 해당 파일 내의 설정을 시스템에 적용 시킨다.

 

 /etc/issue.net 파일 수정

 

파일 안의 내용 삭제

 

삭제 후 Server-A 접속 성공 시 화면에 출력할 메시지를 작성

 

작성 후 저장하고 다시 로그인 테스트를 해본다.

패스워드를 입력하기 전에 설정한 메시지가 출력된다.

 

/etc/issue : 원격지가 아닌 콘솔을 통해서 로그인할 경우 표시할 메시지를 저장하고 있는 파일

/etc/motd : 원격 접속 프로그램(SSH, telnet 등)을 이용하여 접속 후 패스워드 인증이 완료되어 정상 로그인을 했을 경우 보여질 메시지를 저장하고 있는 파일

'Linux' 카테고리의 다른 글

08-1 Redirection & Pipe  (0) 2017.09.19
07-2 리다이렉션(Redirection)  (0) 2017.09.18
6-3 파일 링크  (0) 2017.09.16
06-2 기본 명령어(grep, watch)  (0) 2017.09.16
06-1 Xshell의 기능  (0) 2017.09.16