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 |