1. 에디터 사용
Windows의 메모장처럼 X윈도에서 제공하는 편리한 에디터로는 gedit이 있다. 터미널에서 간단히 'gedit 파일 이름'을 입력하면
해당 파일을 편집할 수 있다. 이보다 더 전통적인 에디터는 vi 에디터가 있다.
# vi 에디터
vi는 visual의 약어로 모든 유닉스/리눅스 시스템에 기본으로 포함된다.
텍스트 모드의 경우에는 gedit을 사용할 수 없으므로 vi 에디터를 꼭 사용할 수 있어야 한다.
2. 실습(리눅스에서 자주 사용되는 에디터 사용)
만약을 대비해 VMWrare Centos7 Server으로 테스트.
1. gedit 에디터
gedit가 열리면 아무거나 입력해보면 된다(한/영 전환은 설정에서도 바꿀 수 있고 왼쪽 shift +space 누르면 된다.)
아무거나 쓰고 저장 버튼을 눌러서 저장한다(root 디렉토리에 저장함)
만약 root가 아니라 만들어 놓은 centos유저였다면 홈 폴더는 /home/centos가 된다. 저장한 뒤 터미널에서
gedit /root/test.txt 를 입력하면 파일이 열린다.
2. vi 에디터
터미널에 vi 명령어를 입력하면 다음과 같이 실행된다.
vi 에디터를 종료하려면 Esc키를 누른 후에 :q 를 입력하면 종료된다.
입력할 때 왼쪽 아래에 입력하는 글자가 보일 텐데, 이렇게 작동하는 것을 'ex 모드' 또는 '라인 명령 모드' 라고 한다.
2.1 vi 에디터로 새로운 파일 만들기
vi new.txt 를 입력하면 빈 화면이 열리고, 왼쪽 아래에 'new.txt[New File]' 이라는 문구가 보인다(이미 있는 파일이라면 그 파일을 열어서 보여줌)
이 상태를 '명령 모드'라고 한다. 아직 글자는 입력 못하고, vi 에디터로 어떤 일을 하게 될지 명령을 기다린다.
이 상태에서 I 키 또는 A 키를 누른다(Input, Append 하겠다는 말)
그러면 왼쪽 아래에 ' -- INSERT -- ' 라고 표시되고 글자를 입력할 수 있다. 이 상태를 '입력 모드' 라고 한다.
글자를 모두 입력했으면 저장하고 vi 에디터를 종료한다. '입력 모드 (-- INSERT --)'에서 Esc를 누르면 '명령 모드'로 나온다(왼쪽 하단에 -- INSERT -- 없어짐)
:wq 를 입력하고 Enter키를 누르면 저장하고 종료된다(Write, Quite)
터미널(vi 에디터 실행) -> 명령 모드 -> i 또는 a -> 입력 모드(문서 실제 작업) -> esc -> 명령 모드 ->
콜론(:) (라인 명령 모드/저장, 종료, 취소 등) -> esc, enter -> 명령 모드
2.2 vi 에디터 사용
vi 에디터를 실행하고 입력, test2.txt 파일로 저장해본다(처음 테스트 했던 Test.txt 경로 root로 옮김)
1. 터미널에서 vi 명령어 입력
2. i 나 a 키를 눌러 입력 모드로 들어 간다.
3. 아무거나 입력
4. 입력 끝났으면 : 를 입력하고 w test2.txt를 입력후 Enter
:w test2.txt
좌측 하단이 위 사진처럼 됨.
5. 모든 작업 마쳤으면 :q! 를 입력한 후 Enter(:q 해도 됨)
:q! : 기존에 변경된 내용은 무시하고 종료해.
3. 파일을 저장하고 바로 종료
1. 터미널에서 vi 명령어 입력
2. 입력 모드로 가서 아무거나 입력
3. Esc를 누르고
:wq test3.txt 를 입력하고 Enter누르면 저장과 동시에 종료
4. 기존 파일 열어서 수정 후 저장
1. 터미널에서 수정할 파일 입력
vi test3.txt
다른 경로에 있다면 경로 알아야함. ex) vi /etc/test3.txt
2. 입력 모드로 들어가서 수정하거나 추가
3. Esc 키 누른 후 :wq 입력 후 Enter 누르면 저장과 동시에 종료
5. 에디터에서 실수 했을 시(수정 등)
기존 파일 열어서 수정했을 때 실수로 잘못 수정헀다면 저장하지말고 그냥 나가는 방법이 있다.
1. vi 파일을 연다.
2. 뭔가 수정하고 추가했는다.
3. 잘못을 깨달음
4. Esc 키를 누르고 :q! 를 입력한 후 Enter를 눌러서 저장하지 않고 강제로 나온다.
6. vi 에디터가 비정상적으로 종료 됐을 때
vi 에디터가 비정상적으로 종료되고 생성되는 파일을 확인하고 조치법을 알아둔다.
1. 터미널에서 vi anaconda-ks.cfg 를 입력해 파일을 연다.
2. 입력 모드로 아무거나 약간의 수정이나 추가를 하고, 정상적인 종료가 아닌 터미널 오른쪽에 있는 X를 클릭한다.
경고창이 나올텐데 '터미널 닫기'를 클릭
3. 터미널을 실행 후 다시 vi anaconda-ks.cfg 파일을 열면 다음과 같은 창이 나온다.
기존에 anaconda-ks.cfg 파일의 수정 작업이 정상적으로 종료되지 않았기 때문에 이렇다.
# Note
임시 스왑(swap file)인 anaconda-ks.cfg.swp 가 존재한다는 것은 파일의 수정 작업이 정상적으로 종료되지 않았기 때문이다.
즉 vi anaconda-ks.cfg를 입력하면 자동으로 .anaconda-ks.cfg.swp가 생성되며, vi 에디터를 정상적으로 종료하면
이 파일을 자동으로 제거된다. 그러므로 이 파일이 남아있다는 것은 기존 작업이 정상적으로 종료되지 않았다는 의미다.
참고로 파일 이름 앞에 '.'가 붙으면 숨김파일을 뜻한다.
4. Space를 몇 번 누른 후 Esc를 누르고 :q! 를 입력해서 에디터를 닫는다.
5. 비정상 종료된 스왑 파일 이름은 '.파일 이름.swap' 다. ls -a 를 입력해서 파일을 확인하고
다음 명령어를 입력해 해당 스왑 파일을 삭제한다.
rm -f .anaconda-ks.cfg.swp
rm -f .anaconda-ks.cfg.swp 명령 후, .anaconda-ks.cfg.swp 파일은 제거됐다.
7. 명령 모드에서 입력 모드로 전환하는 키
키 |
설명 |
키 |
설명 |
i |
현재 커서의 위치부터 입력(I) |
I |
현재 커서 줄의 맨 앞에서부터 입력(Shift + I) |
a |
현재 커서의 위치 다음 칸부터 입력(A) |
A |
현재 커서 줄의 맨 마지막부터 입력(Shift + A) |
o |
현재 커서의 다음 줄에 입력(O) |
O |
현재 커서의 이전 줄에 입력(Shift + O) |
s |
현재 커서 위치의 한 글자를 지우고 입력(S) |
S |
현재 커서의 한 줄을 지우고 입력(Shift + S) |
명령 모드에서 커서를 이동할 때는 4개의 화살표 키와 Page Up/Page Down/Home/End 를 이용하면 된다.
8. 명령 모드에서 커서를 이동할 때 사용하는 키
키 |
설명 |
키 |
설명 |
h |
커서를 왼쪽으로 한 칸 이동(왼쪽 방향키와 같은 의미 H) |
j |
커서를 아래로 한 칸 이동(아래 방향키와 같은 의미. J) |
k |
커서를 위로 한 칸 이동(위 방향키와 같은 의미. K) |
I |
커서를 오른쪽으로 한 칸 이동(오른쪽 방향키와 같은 의미. I) |
Ctrl + F |
다음 화면으로 이동(Page Down과 같은 의미) |
Ctrl + B |
이전 화면으로 이동(Page Up과 같은 의미) |
^ |
현재 행의 처음으로 이동(Home과 같은 의미, Shift + 6) |
$ |
현재 행의 마지막으로 이동(End와 같은 의미, Shift + 4) |
gg |
제일 첫 행으로 이동 |
G |
제일 끝 행으로 이동(Shift + G) |
숫자 G |
해당 숫자의 행으로 이동(숫자 다음 Shift + G) |
:숫자 Enter |
해당 숫자의 행으로 이동 |
9. 명령 모드에서 삭제, 복사, 붙여넣기 관련 키
키 |
설명 |
키 |
설명 |
x |
현재 커서가 위치한 글자 삭제(Del과 같은 의미, X) |
X |
현재 커서가 위치한 앞 글자 삭제(BackSpace와 같은 의미, Shift +X) |
dd |
현재 커서의 행 삭제(D 연속 두 번 입력) |
숫자 dd |
현재 커서부터 숫자만큼의 행 삭제(숫자 다음 D 연속 두 번 입력) |
yy |
현재 커서가 있는 행을 복사(Y 연속 두 번 입력) |
숫자 yy |
현재 커서부터 숫자만큼의 행을 복사(숫자 다음 Y 두 번 입력) |
p |
복사한 내용을 현재 행 이후에 붙여 넣기(P) |
P |
복사한 내용을 현재 행 이전에 붙여 넣기(Shift + P) |
10. 명령 모드에서 문자열 찾기
키 |
설명 |
키 |
설명 |
/문자열 Enter |
해당 문자열을 찾음(현재 커서 이후로) |
n |
찾은 문자 중에서 다음 문자로 이동(N) |
그 외에 ex 모드(라인 명령 모드)에서 가장 많이 사용하는 두 가지
문자열 치환:
:%s/기존문자열/새문자열
ex) centos라는 글자를 모두 linux로 바꿀 시
:%s/centos/linux
행 번호:
:set number
'OS > Linux' 카테고리의 다른 글
07. 마운트와 CD/DVD/USB의 활용 (0) | 2020.04.06 |
---|---|
06. 도움말 사용법 (0) | 2020.04.06 |
04. 자동완성과 히스토리 (0) | 2020.04.06 |
03. 런레벨 (0) | 2020.04.06 |
02. 리눅스 운영시 알아야 할 개념 (0) | 2020.04.06 |