아주 먼 옛날(?) 리눅스를 처음 접했을 때 가장 먼저 vi에 대해서 알게 되었다. vi는 단순 텍스트 편집기일 뿐이지만 생각보다 깊이 있는 프로그램이며 지금까지도 뭇 프로그래머의 사랑을 받는 스테디 프로그램 중의 하나이다. 리눅스를 주 운영체제로 쓰고 있지는 않아서 내 손발처럼 다룰 수 있지는 않지만 맥북도 그렇고 웹서버 상에서 가끔 쓰일 일이 있다. 아무래도 사용 운영체제가 리눅스이기 때문에 단축키를 알아두면 사용하는 데 아주 유용하다.
본 내용은 과거에 기록해놓은 자료를 토대로 다시 정리하였다.
명령 상태 => 입력 상태로 변경:
명령키를 누르는 것으로 명령을 내린다. 편집기 내용과 관련된 명령을 내릴 수 있는 상태이다. 키보드 입력을 통해서 직접 텍스트를 입력할 수 있는 입력 상태와는 다른 편집 상태이다. 입력 상태로 변경하고 싶으면 i 키를 눌러 하단에
삭제
continue reading 리눅스 vi, 한 페이지로 요약하는 간단 사용법
본 내용은 과거에 기록해놓은 자료를 토대로 다시 정리하였다.
vim (vi)
vim는 윈도우즈의 메모장 같은 편집기이다. 일반적으로 vi라고도 하며 둘의 차이점은 vim (Vi Improved) 이 vi의 향상된 편집기 라는 점이다. vi의 기능을 거의 호환하면서 추가 기능을 제공하는 형태이다. 요즘 배포판에는 보통 vim이라는 vi의 클론을 포함하고 있다. 그러나 가끔 vim 명령어가 포함되지 않을 경우 원래 편집기인 vi를 사용하면 된다. vi 외에도 Emacs, ed 등등 여러 종류가 있다.
vi 상태는 총 3가지이며 내용과 관련된 명령을 내리는 명령 상태 (ESC키 누른 상태), 실제 편집기를 편집할 수 있는 입력 상태 (편집 가능한 상태), 편집기 파일에 관련된 명령을 내릴 수 있는 실행 상태 (: 콜론 입력한 상태)가 있다.
vi 상태는 총 3가지이며 내용과 관련된 명령을 내리는 명령 상태 (ESC키 누른 상태), 실제 편집기를 편집할 수 있는 입력 상태 (편집 가능한 상태), 편집기 파일에 관련된 명령을 내릴 수 있는 실행 상태 (: 콜론 입력한 상태)가 있다.
명령어 사용법은
vi
또는 vim
명령어 뒤에 생성할 파일명을 함께 입력해주면 해당 파일명으로 파일이 생성된다.]$ vi {생성할 파일명}
]$ vim {생성할 파일명}
vi 명령 상태
명령 상태 => 입력 상태로 변경: i
(insert) 또는 a
(append)
명령 상태: 빈 화면에 하단에 text.txt 이름으로 파일을 생성한 상태 |
-끼워 넣기-
또는 -INSERT-
로 표시되는 것을 확인하면 입력 상태가 된다. 입력 상태에서 다시 명령상태로 돌아가려면 ESC 키를 누른다.입력
다음의 키를 누르면 텍스트를 입력할 수 있는 상태가 된다. 해당 키를 입력하면 텍스트를 입력할 수 있다. A 명령어 같은 경우에는 Shift + A 키를 누른 형태이다.
i
: 현재 커서 앞쪽에 텍스트 입력a
: 현재 커서 뒤쪽에 텍스트 입력I
: 현재 라인 처음에 입력 (라인이 공백으로 시작하면 실제 단어 앞에 입력)A
: 현재 라인 마지막에 입력o
: 현재 라인 아래줄에 입력O
: 현재 라인 윗줄에 입력
이동
가끔 이상한 키보드 보면 방향키가 일반적이지 않고 일직선상에 쭉 놓여져 있는 키보드가 있다. (예: ←↑↓→ 이런식의 배열) 그런 키보드는 아무래도 기획자가 리눅스 개발자였거나 리눅스 개발자용으로 만들었을 가능성이 크다.
h
: 왼쪽으로 이동j
: 아래로 이동k
: 위로 이동l
: 오른쪽으로 이동0
: 행의 처음으로 이동$
: 행의 끝으로 이동G
: 파일의 맨 끝으로 이동H
: 파일의 맨 처음으로 이동
vi 입력 상태
삭제 x
or delete
키
명령상태에서 키를 입력하여 (일반적으로 i) 입력상태로 전환하여 진행해야 한다. x키를 누르면 해당 커서에 있는 텍스트가 하나씩 삭제된다. 아래 명령어는 한 줄을 다 지우고 싶거나 단어를 지우고 싶거나 하는 특수한 상황에서 편리하게 지울 수 있는 키이다.
dd
: 한 줄 삭제dw
: 한 단어 삭제 (단어 첫번째 글자에 커서를 위치시켜야 함: 첫번째 글자에 커서를 위치시키고 작업 )d$
: 현재 커서부터 커서의 마지막 줄까지 삭제 ($: 마지막)d0
: 현재 커서부터 처음부분까지 삭제 (0: 처음)
교체
r
: 한글자 교체: r 누르고 새로운 문자 입력w
: 한 단어 교체: cw 누르고 새로운 단어 입력후 esc 누르기, 첫번째 글자에 커서를 위치시키고 작업c
: 한 줄 변경: cc 누르고 새로운 내용 입력후 esc 누르기
vi 실행 상태
실행 상태: 명령 상태에서 세미콜론(:)을 입력 |
리눅스 명령 상태로 돌아가기
실행 상태로 만들려면 반드시 명령 상태여야 한다. 명령 상태에서 세미콜론(:) 키를 누르면 실행 상태로 전환된다.
:w
: 저장:q
: 저장하지 않고 종료 (quit):wq
: 저장 후 종료 (write + quit) 보통은 vi를 열 때 파일명을 지정한 채로 열지만 파일명을 지정하지 않고 작성했다면 리눅스 명령어 상태로 나올 때 다음과 같이 저장한 파일명을 입력해야한다.
wq {저장할 파일명}
!
: 저장하지 않고 강제 실행하는 문자이며 다른 옵션과 함께 사용한다.:q!
: 강제 종료 (대소문자 구문) 읽기 전용 파일을 편집하고 저장하지 않고 파일을 빠져나오면 ! to override 메시지를 출력 하는데 저장하지 않고 빠져나오려면 !(force - 강제실행)을 이용하여 빠져나온다.:wq!
: 강제 저장 및 종료:set n
: 행번호 표시:123
: 123라인으로 이동:s/변경할/변경될/g
: 현재라인에 있는 모든 변경할 단어를 변경될 단어로 바꿈:1,3 s/변경할/변경될/g
: 1~3 라인에 있는 모든 단어를 바꿈:1,$ s/변경할/변경될/g
: 파일 전체에 있는 모든 단어를 바꿈
vi 설정
]$ vi .exrc
파일명 앞에 .이 붙으면 숨김파일이라는 뜻이다. 위와 같이 파일을 생성해주면 해당 파일 내용으로 vi 환경 설정을 할 수 있다. 이 파일은 리눅스 각 계정 디렉토리에 위치한다. 내용은 하단처럼 작성할 수 있다.:set nu
: 행의 숫자 보이게 함:set ic
: 대소문자를 구분하지 않음:set ts=4
: 탭을 눌렀을 때 간격은 4:set ai
: 자동 들여쓰기:set nu
, :set number
, :se nu
: 라인번호 출력:set nonu
, :set nonumber
, :set nonu
: 라인번호 해제
내용 작성한 다음 다음과 같이 적용하면 설정한 환경 설정이 적용된다.
]$ source .exrc
연습하기
/root안에 vi를 이용하여 today.txt 파일을 아래 내용으로 생성하기
linux
unix
windows
]$ cd
]$ pwd
]$ (/root)
]$ vi today.txt
linux
unix
windows
터미널에서 명령어를 이용하여 아래와 같이 설정하기
/desk/test1/test1.txt에는 /root/today.txt를 복사하고
/desk/test1/test2/test2.txt에는 /root/today.txt를 이동하기
desk(디렉토리)
test1(디렉토리)
text1.txt(파일)
test2(디렉토리)
test2.txt(파일)
]$ ls
today.txt
]$ mkdir -p /desk/test1/test2
]$ cp today.txt /desk/test1/test1.txt
]$ mv today.txt /desk/test1/test2/test2.txt
]$ ls
]$ ls /
]$ ls -R /desk
]$ mkdir
]$ mkdir --help