드디어 파일 생성 마지막 명령어인 vi 옵션이다. 리눅스에서 기본적으로 제공되는 텍스트 편집기 중 하나로 명령 모드와 편집 모드로 나뉘며 커맨드 키도 있고, 처음 보면 복잡해 보일 수 있다. 하지만 어찌보면 제일 중요하고, 많이 사용하고, 힘이 강력하다. 하지만 최대한 쉽게 설명해보겠다.
* 기본 형식
vi (옵션) (경로/파일명)
다음 명령어를입력해서 들어가보면 다음과 같이 내용이 나올것이다.
원래는 이렇게 내용이 많고 복잡하지만 쉽게 하기 위해 위쪽 이미지로 진행하겠다.
처음 들어가면 이 사진과 같이 명령모드로 진입이 되어 있다. 이 때 편집을 하기위해 커맨드를 입력해주어야 하는데 그것에 대해서 알아보자.
이동
이동은 보통 방향키로 진행하는 경우가 많다. 하지만 모든 리눅스가 방향키를 지원하는 것은 아니다 때문에 다음 키를 입력해 이동한다.
h : 왼쪽 j : 아래 k : 위 l : 오른쪽
입력모드
이전에 리눅스는 대소문자를 철저하게 구분한다고 한 적이 있다. 그 예시가 될 수도 있을 것 같다.
- a, A : 커서가 한 칸 다음으로 이동한다. / 커서가 맨 뒤로 이동한다.
- i, I : 커서가 한 칸 앞으로 이동한다. / 커서가 맨 앞으로 이동한다.
- o, O : 현재 커서 아래에 새로운 줄을 생성한 후 이동한다. / 현재 커서 위로 새로운 줄을 생성한 후 이동한다.
- s, S : 현재 커서에 있는 한 글자를 지운다. / 현재 커서가 있는 한 줄을 지운다.
명령 모드
1. set number(se nu) : 행 앞에 숫자를 표시해준다.
2. g, G : 명령모드에서 숫자와 gg를 입력하면 해당 줄로 이동한다. (100gg : 100번째 줄로 이동) / 맨 뒤로 이동한다.
3. x : 현재 커서에 있는 글자를 삭제한다.
4. V : 현재 커서를 기준으로 방향키를 위, 아래로 움직이면 움직이는 만큼의 행이 선택된다.
5. yy : 현재 커서가 있는 한 줄, 혹은 V를 이용해 지정한 부분을 복사한다.
6. p, P : 커서 다음 줄에 복사한 것을 붙여넣는다. / 커서 위줄에 복사한 것을 붙여넣는다.
7. u : 명령어 실행한 것을 한 단계 이전으로 돌려 놓는다.
8. /(찾고자 하는 단어) : 검색
9. n, N : 검색 시 다음 단어로 이동 / 이전 단어로 이동
앞에 ' : '를 필수로 붙여야한다.
10. :w : 저장
11. :q : 나가기
12. :wq : 저장 및 종료
13. :q! : 강제 종료
14. :.s/변경하고싶은 내용/변경할 내용
14.1 :s/변경하고 싶은 내용/변경할 내용/g : 줄에 있는 모든 공통사항 변경
17. :1co6 : 1번째 줄을 6번째 줄에 복사
18. :d : 지우기
이외에도 몇가지가 더 있지만 아래를 참고하면 좋을 것 같다.
* 맨 뒷줄을 뜻하는 기호 : $
vi 명령어 사용법 (영어)
출처 : 리눅스 vi --help
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jun 13 2022 00:00:00)
Usage: vim [arguments] [file ..] edit specified file(s)
or: vim [arguments] - read text from stdin
or: vim [arguments] -t tag edit file where tag is defined
Arguments:
-- Only file names after this
-v Vi mode (like "vi")
-e Ex mode (like "ex")
-E Improved Ex mode
-s Silent (batch) mode (only for "ex")
-y Easy mode (like "evim", modeless)
-R Readonly mode (like "view")
-Z Restricted mode (like "rvim")
-m Modifications (writing files) not allowed
-M Modifications in text not allowed
-b Binary mode
-C Compatible with Vi: 'compatible'
-N Not fully Vi compatible: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-n No swap file, use memory only
-r List swap files and exit
-r (with file name) Recover crashed session
-L Same as -r
-T <terminal> Set terminal type to <terminal>
--not-a-term Skip warning for input/output not being a terminal
--ttyfail Exit if input or output is not a terminal
-u <vimrc> Use <vimrc> instead of any .vimrc
--noplugin Don't load plugin scripts
-p[N] Open N tab pages (default: one for each file)
-o[N] Open N windows (default: one for each file)
-O[N] Like -o but split vertically
+ Start at end of file
+<lnum> Start at line <lnum>
--cmd <command> Execute <command> before loading any vimrc file
-c <command> Execute <command> after loading the first file
-S <session> Source file <session> after loading the first file
-s <scriptin> Read Normal mode commands from file <scriptin>
-w <scriptout> Append all typed commands to file <scriptout>
-W <scriptout> Write all typed commands to file <scriptout>
--clean 'nocompatible', Vim defaults, no plugins, no viminfo
-h or --help Print Help (this message) and exit
--version Print version information and exit
이미지 파일 없이 요약해서 정리하니 생각보다 내용이 별로 없는 것 같다. 하지만 엄청 중요하니 리눅스를 하게 된다면 얼른 친해져야 할 필요가 있다.
'Linux > Linux 기본 명령어' 카테고리의 다른 글
[Linux 기본 명령어] 사용자와 그룹을 지정하는 명령어와 옵션 (user, gruop) (1) | 2023.03.09 |
---|---|
[Linux 기본 명령어] 파일의 맨 앞과 뒤쪽 출력하기 (head, tail) (0) | 2023.03.08 |
[Linux 기본 명령어] 하드 링크와 심볼릭 링크 (ln) (1) | 2023.03.06 |
[Linux 기본 명령어] 파일이나 디렉토리를 복사하는 명령어와 옵션(cp) (0) | 2023.03.06 |
[Linux 기본 명령어] 파일 생성 명령어와 옵션 (2) cat (0) | 2023.03.05 |