Linux vi 편집기

이동명·2023년 11월 2일
0

Cent OS

목록 보기
5/13
post-thumbnail

vi&vim 편집기

whereis vi

-> vi: /usr/bin/vi /usr/share/man/man1/vi.1.gz /usr/share/man/man1p/vi.1p.gz

whereis vim
-> m: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz
  • 리눅스 설치시 '.bashrc'에 'vi'라고 입력하면 'vim' 편집기를 사용하도록 앨리어스를 설정하였다.

  • 그렇기 때문에 실습시 'vi' 명령어를 실행하면 오리지널 vi 편집기가 아닌 'vim' 편집기로 실행된다.

cat .bashrc | grep 'alias vi'
-> alias vi='vim'


alias vi
-> alias vi='vim'

vi 편집기 모드

  • 명령 모드 : vi 편집기 시작 모드, 커서 이동, 복사/붙여넣기/삭제

  • 입력 모드 : 텍스트 입력/삭제/수정 가능한 모드

  • 확장 모드 : 좌측 하단에서 명령어를 수행할 수 있는 모드

복사, 붙여넣기, 삭제 관련

입력 관련

확장 모드

  • 확장 모드는 다양한 기능을 제공한다.

  • 확장 모드로 전환하려면 명령 모드에서 :(콜론)를 실시한다

:set bg=light 백그라운드가 밝은색인 경우, 글자를 어둡게 해줌.

:set bg=dark 백그라운드가 어두운색인 경우, 글자를 밝게 해줌.

:set nu 라인 번호을 출력해줌.

:set nonu 라인 번호을 출력하지 않는다.

:set ts=4 tab 키 공간을 4 칸으로 조정한다.

:set title vi 편집기 타이틀 창에 파일 제목을 표시한다.

:w 저장하기

:wq 저장하고 나가기

:q 나가기

:q! 강제 나가기(저장하지 않고 나가기)

  • 홈 디렉토리에 '.vimrc' 파일이 있다면, 파일 안에 설정된 명령이 vim 편집기가 실행될때 확장 모드에서 자동 적용된다.

  • 확장 모드에서 리눅스 명령어 사용하려면 ! 이후에 리눅스 명령어를 입력하면 된다.

  • 확장 모드에서 bash 명령을 실행하여 싞규 bash 쉘 환경에서 명령어를 사용할 수 있다.

  • 확장 모드에서 문자열 검색하는 방법
    ->

:/단어

  • n : 정방향 검색
  • N : 역방향 검색

swp 파일

  • root 계정으로 SSH 접속을 하나 더 실시한다.

  • 기존 root 계정 접속을 A 라고 하고, 새로 접속한 root 계정 접속을 B 라고 할 예정이다

vi 편집기로 오픈한 파일을 vi 편집기로 오픈한 경우

E325: 주목
Found a swap file by the name ".test.c.swp"
 소유자: root 날짜: Fri Mar 25 19:41:40 2022
 파일 이름: ~root/test.c
 수정: 아니오
 사용자 이름: root 호스트 이름: Client1
 프로세스 ID: 2332 (아직 실행중)
While opening file "test.c"
 날짜: Fri Mar 25 19:39:53 2022
(1) 다른 프로그램이 같은 파일을 고치고 있는중일 수 있습니다.
 맊약 그렇다면 같은 파일을 두 개의 프로그램에서 고치지 않도록
 조심하시기 바랍니다. 종료하세요. 계속하시려면 주의하세요.
(2) 이 파일을 고치다가 죽었었습니다.
 맊약 그렇다면 ":recover" 혹은 "vim -r test.c"
 을 사용하여 복구하십시오 (":help recovery" 참고)

파일을 수정하다가 vi 편집기가 종료된 경우

  • A 에서 'test.c' 파일을 vi 편집기로 아무거나 추가한다.

  • B 에서 A 에서 실행한 vi 편집기를 강제로 종료한다.

  • A 를 확인하면 '죽었음' 문자열과 함께 vi 편집기가 종료된 것을 확인할 수 있다.

  • A 에서 vi 편집기로 추가한 내용을 저장하지 않고 종료되었기 때문에 '.test.c.swp' 파일을 이용하여 복구할 수 있다.

  • 복구가 끝난 이후에도 위의 내용이 출력되는 이유는 '.test.c.swp'이 남아있기 때문이다.

  • 'q'를 입력하고 나가기를 한 이후 '.test.c.swp' 파일을 삭제하고 'test.c' 파일을 다시 오픈한다.

PS1, PS2 환경 변수

PS1 환경 변수

  • 쉘 프롬프트 출력 형식을 갖고 있는 환경 변수이다.

  • PS1 환경 변수 기본값은 다음과 같다.

set | grep PS1
-> PS1='[\u@\h \W]\$ '

echo $PS1
-> [\u@\h \W]\$

\u 접속한 계정 이름

\h 시스템 이름

\W 계정 홈 디렉토리는 '~(틸드)'로 표기되며, 다른 경로 이동시 현재 경로만 표기된다.

profile
Web Developer

0개의 댓글