LINUX(Server)

VI Editor

천천히, 한 걸음씩 2024. 4. 12. 07:51

VI Editor

- Visual Editor의 약자로 UNIX계열 시스템에 사용되는 대표적인 편집기
  
* 사용방법

1) #vi 기존 파일이름  // 기존파일을 연다.
2) #vi 새로운 파일이름 // 새로운 빈 파일을 연다.
3) #vi  // 새로운 빈파일을 만들고
   저장할때 파일명을 입력한다.

! 실습
#mkdir -p /practice/vi_test  // 실습용 디렉터리 생성
#cd /practice/vi_test  // 디렉터리로 이동
#vi vi-1.txt  // 빈파일 생성

#cp /etc/login.defs /practice/vi_test/file-1 //login.defs파일 복사
#vi ./file-1 // 기존 파일을 연다.

① 명령 모드


@ 방향키

w  : 한단어 오른쪽으로 이동
b  : 한단어 왼쪽으로 이동
^  : 커서라인에서 첫글자로 이동
$  : 커서라인에서 마지막글자로 이동
G  : 문서의 마지막으로 이동
gg : 문서의 처음으로 이동

:라인넘버 : 해당 라인으로 이동
 Ex) :15 // 15번 라인으로 이동
 :1520 // 1520번 라인으로 이동
  
ctrl + b : 이전 화면
ctrl + f : 다음 화면

@ 복사 & 붙여 넣기

yy(yank)  : 커서의라인을 복사   
숫자yy    : 커서라인을 기준으로 숫자라인만큼 복사
 Ex) 3yy //커서를 기준으로 3줄 복사
        10yy //커서를 기준으로 10줄 복사

p(put)   : 커서라인을 기준으로 아래에 붙여넣기
P      : 커서라인을 기준으로 위에 붙여넣기
u(undo)  : 해당 명령어를 취소하기
ctrl+r   : 취소한 명령을 다시 실행

@ 삭제

x       : 커서에 위치한 한 글자 삭제
dw      : 커서에 위치한 한 단어 삭제
dd      : 커서를 기준으로 한 줄 삭제
숫자dd  : 커서를 기준으로 숫자라인만큼 삭제
      Ex) 10dd // 커서를 기준으로 10줄삭제
  3dd // 커서를 기준으로 3줄 삭제

:숫자1,숫자2 d : 숫자 1번부터 숫자 2번행까지 삭제
  Ex) :1,10 d   // 1번부터 10번행까지 삭제
   dG      : 커서를 기준으로 하위의 모든 라인 삭제
  
@ 검색 & 치환

/문자열 : 특정문자열 검색
  Ex) /UMASK //UMASK글자 검색

n - 다음 [문자열]로 커서이동
N - 이전 [문자열]로 커서이동

:%s/[OLD]/[NEW]/g // 문서 전`체 [이전글자]를 [새글자]로 변경
  Ex) :%s/MAX/MING/g

 

② 편집 모드  
- 편집에 사용되는 모드
- 명령모드 i,a,o,I,A,O누를 경우 진입
- esc를 눌러서 편집 모드 탈출

i : 현재 커서 위치부터 편집을 시작
a : 현재 커서 다음 위치부터 편집을 시작
I : 현재 라인의 가장 앞에서부터 편집을 시작
A : 현재 라인의 가장 끝에서부터 편집을 시작
o : 커서위치의 아랫줄부터 편집을 시작
O : 커서위치의 윗줄부터 편집을 시작


③ 실행 모드

:set number   == :set nu // 라인을 보여준다.
:set nonumber == :set nonu      // 라인을 보여주지 않는다.

:w // 저장
:q   // 저장하지 않고 종료
:q! // 저장하지 않고 강제종료
:wq // 저장후 종료
:wq! // 강제로 저장후 종료

 

vim 설치

#yum -y install vim // vim 패키지 설치
#alias vi="vim" // alias에 등록
   vi를 실행해도 vim실행

#vi /etc/passwd // 확인 후 종료
#vi /etc/vimrc // vim 설정파일 열기
-----------------------
제일 하단에
set number       //추가

:wq
------------------------

#vi /etc/passwd // 행번호가 자동으로 추가되는지 확인

 

swap파일


- 원격에서 vi를 이용하여 파일을 수정하던 중,
  갑작스럽게 세션(연결)이 해제가 되거나 강제가 종료되는
  경우를 대비하여 임시 파일(swap파일)에 변경사항을 기록하고 있다.

- 변경사항을 swap파일을 이용하여 복구할 수 있으며
  swap 파일이 생성되는 경로는 원본 파일 경로와 동일하다.

- swap 파일이 있으면 복구 메세지가 지속적으로 출력되기 때문에
  복구가 끝났다면, 해당 파일을 삭제하여 복구 메세지가 
  더이상 출력되지 않도록 해야 한다.
  

! 실습

#vi /practice/vi_test/file-1
------------------------


ctrl + z // 강제 종료
------------------------
  
#ls -a // 숨김 파일 까지 확인
       .file-1.swp 확인

#vi /practice/vi_test/file-1   // 복구 메세지
--------
:wq!
--------
   
#vi /practice/vi_test/file-1   // 복구 메세지
--------    
:wq!
--------    
   // swp존재하는한 계속 복구메시지가 출력
   

#cd /practice/vi_test    // file-1이 존재하는 디렉터리
#rm -f .file-1.swp    // swp파일 삭제

#vi /practice/vi_test/file-1   // 더이상 복구 메세지 x





! ssh서비스 베너 실습

#vi /etc/ssh/sshd_config // ssh 서버 주 설정 파일
-------------------------

(129번행 편집)
#Banner none -> Banner /etc/issue.net      // 변경

:wq   // 저장후 종료
-------------------------


// /etc/issue.net은 원격접속시에 패스워드 입력전에
   출력할 메세지를 저장하고 있는 설정파일
   
   즉 "/etc/issue.net에 있는 기록되로 메세지를 보여주겠다"
   라는 설정 적용
 

#vi /etc/issue.net
---------------------------
내가 원하는 메세지 // 로그인전에 보여주고 싶은 메세지 입력

:wq // 저장후 종료
---------------------------

#service sshd restart // sshd서비스 재시작

#exit // 로그아웃

재접속시 내가 입력한 메세지가 출력되면 된다.

'LINUX(Server)' 카테고리의 다른 글

환경 변수  (0) 2024.04.14
압축 & 아카이브  (0) 2024.04.13
다중 명령  (0) 2024.04.11
리눅스 기초 명령어  (2) 2024.04.10
리눅스 구조  (0) 2024.04.09