Information Security
07-1 vi(m) editor 본문
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 |