26 vi편집기 명령어
vi편집기 명령어를 알고 있어야 파일을 열어서 내용을 적을 수 있고 수정할 수도, 글을 지울 수도 있음. 지금부터는 현업처럼 oracle유저에서 작업을 하겠습니다.
[oracle@localhost ~]$ whoami
oracle
[oracle@localhost ~]$ cd
[oracle@localhost ~]$ pwd
/home/oracle
* vi편집기 명령모드 3가지
1. command 모드 : vi편집기의 기본모드, vi를 실행하면 바로 보이는 화면을 말함. 이 상태에서는 방향키로 왔다갔다 할 수 있음. 또는 아래의 키로 이동할 수 있음.
h : 왼쪽으로 이동 / l : 오른쪽으로 이동 / j : 아래로 이동 / k : 위로 이동
2. edit 모드 : a, i, o, x 등을 누르면서 내용을 입력 도는 수정, 삭제하는 명령모드
i : 입력모드 / a : 입력모드인데 계속 덧붙여서 쓰겠다 / o : 입력모드인데 다음라인에 쓰겠다 / x : 철자 하나 삭제
3. last line 모드 : 입력모드에서 저장, 종료, 강제 종료등의 명령어를 입력하는 모드
:wq! 저장하고 종료(단축키 : ZZ)
:q! 저장안하고 종료(단축키 : ZQ)
문제118. (점심시간 문제) /home/oracle 밑에 bbb.txt를 생성하는데 아래의 내용이 저장되게 하시오.
select ename, sal
from emp
where empno = 7788;
[oracle@localhost ~]$ vi bbb.txt
i 누르면 edit모드로 전환, 입력가능함. 내용 입력 후 ESC키를 눌러 last line모드로 전환 :wq! 로 저장하고 종료
ㅇvi편집기 내에서 커서 이동
1. j : 아래로 이동
2. k : 위로 이동
3. h : 왼쪽으로 이동
4. l : 오른쪽으로 이동
5. 1G : 맨위로 이동
6. G : 맨 아래로 이동
7. :set nu : 파일내의 텍스트에 번호 표시
8. :set nonu : 번호 안보이게 하는 명령어
9. gg : 맨 위로 올라가는 단축키
예제. root 유저로 접속해서 /root밑에 있는 jobs.txt를 /home/oracle 밑으로 복사하시오.
[oracle@localhost ~]$ su -
암호:
마지막 로그인: 월 3월 14 12:03:42 KST 2022 일시 pts/0
[root@localhost ~]# cp jobs.txt /home/oracle/
예제2. /home/oracle 밑에 있는 jobs.txt의 소유자를 oracle로 변경하고 다시 oracle로 스위치 유저 하시오.
[root@localhost ~]# cd /home/oracle
[root@localhost oracle]# chown oracle:oracle jobs.txt
[root@localhost oracle]# ls -l jobs.txt
-rwxr-x---. 1 oracle oracle 12176 3월 14 13:46 jobs.txt
[root@localhost oracle]#
[root@localhost ~]# su - oracle
마지막 로그인: 월 3월 14 12:04:39 KST 2022 일시 pts/0
예제3. jobs.txt를 vi 열어서 아래로 이동해보시오.
[oracle@localhost ~]$ vi jobs.txt
빠져나올때 :q!하면 됨
ㅇ vi편집기의 삭제 명령어
1. x : 철자 하나 삭제
2. dd : 한 행 삭제
3. dw : 커서가 있는 단어를 삭제
4. :5,10d : 5~10번째 행 삭제
5. D : 커서 오른쪽 행 삭제
6. u : 작업 취소
7. 특정행만 지우고 싶다면 :5,5d 하면 됨
예제1. jobs.txt를 jobs2.txt로 백업하시오.
[oracle@localhost ~]$ ls
bbb.txt emp.txt jobs.txt
[oracle@localhost ~]$ cp jobs.txt jobs2.txt
[oracle@localhost ~]$ ls
bbb.txt emp.txt jobs.txt jobs2.txt
예제2. jobs2.txt를 열어서 5번째 행을 지우시오.
[oracle@localhost ~]$ vi jobs2.txt
ㅇvi편집기의 복사/붙여넣기 명령어
1. yy : 하나의 행을 복사
2. p : 붙여넣기
3. yG : 현재행부터 파일 끝까지 복사
4. :1,2 co 3 : 1~2행 다음으로 복사
5. :1,2 m 3 : 1~2행을 3행 다음으로 이동
ㅇvi편집기 작업을 하다 비정상적으로 종료된 후에 다시 똑같은 파일을 열때 swap파일이라는 메시지가 나오면서 아무런 작업이 안될 때 조치방법
$ vi jobs2.txt
작업하다가 ctrl + z를 눌러서 취소를 했다면
$ vi jobs2.txt를 열어보면 제대로 안 열리고 swap파일이 있다고 나오면서 작업이 안됩니다.
그럴때는 :q! 실행해서 빠져나온후에 .jobs2.txt.swp를 지워주면 됩니다.
$ rm.jobs2.txt.swp를 지우면 됨
ㅇvi 편집기 내에서 특정 문자를 검색하는 방법
1. /검색어 : 검색어를 찾아줌.
n을 누르면 전진하면서 검색어를 찾아주고 shift+n을 누르면 후진하면서 검색어를 찾아줌.
$ vi jobs2.txt
:set nu
/become
:nohl # 검색어 해제
ㅇvi편집기 명령어로 문자를 변경하는 방법
:$s/기존문자/변경할문자/g
예제. jobs2.txt에서 about이라는 단어를 모두 kkkkk로 변경하시오.
:%s/about/kkkkk/g
/kkkkk # 단어 찾기
문제119. emp.txt를 emp2.txt로 백업하시오.
[oracle@localhost ~]$ cp emp.txt emp2.txt
[oracle@localhost ~]$ ls
bbb.txt emp.txt emp2.txt jobs.txt jobs2.txt
문제120. emp2.txt를 열어서 KING을 aaa로 변경하시오.
:%s/KING/aaa/g
문제121. emp.txt를 복사해서 emp1.txt ~ emp10.txt로 복사하세요.
[oracle@localhost ~]$ cp emp.txt emp1.txt
[oracle@localhost ~]$ cp emp.txt emp2.txt
[oracle@localhost ~]$ cp emp.txt emp3.txt
[oracle@localhost ~]$ cp emp.txt emp4.txt
[oracle@localhost ~]$ cp emp.txt emp5.txt
[oracle@localhost ~]$ cp emp.txt emp6.txt
[oracle@localhost ~]$ cp emp.txt emp7.txt
[oracle@localhost ~]$ cp emp.txt emp8.txt
[oracle@localhost ~]$ cp emp.txt emp9.txt
[oracle@localhost ~]$ cp emp.txt emp10.txt
문제122. emp.txt ~ emp10.txt의 내용중에서 SALESMAN을 jjj로 변경하시오.
$ vi emp*.txt
:argdo %s/SALESMAN/jjj/g | update
:wq! #저장하고 나옴
문제123. root유저로 접속해서 /root밑에 있는 dept3.txt를 복사해서 /home/oracle밑에 붙여넣으시오.
[oracle@localhost ~]$ su -
암호:
마지막 로그인: 월 3월 14 13:51:12 KST 2022 일시 pts/0
[root@localhost ~]# ls -l dept*.txt
-rw-r--r--. 1 root root 80 3월 10 13:51 dept2_backup.txt
-rwxr-x---. 1 root root 80 3월 11 14:28 dept3.txt
[root@localhost ~]# cp dept3.txt /home/oracle/dept.txt
문제124. /home/oracle 밑으로 와서 dept.txt의 소유자를 oracle로 변경하시오.
[root@localhost ~]# cd /home/oracle
[root@localhost oracle]# chown oracle:oracle dept.txt
[root@localhost oracle]# ls -l dept.txt
-rwxr-x---. 1 oracle oracle 80 3월 14 15:09 dept.txt
다시 oracle로 스위치 유저
[root@localhost oracle]# su - oracle
마지막 로그인: 월 3월 14 13:51:18 KST 2022 일시 pts/0
문제125. dept.txt를 dept4.txt ~ dept10.txt까지 복사하시오.
[oracle@localhost ~]$ cp dept.txt dept4.txt
[oracle@localhost ~]$ cp dept.txt dept5.txt
[oracle@localhost ~]$ cp dept.txt dept6.txt
[oracle@localhost ~]$ cp dept.txt dept7.txt
[oracle@localhost ~]$ cp dept.txt dept8.txt
[oracle@localhost ~]$ cp dept.txt dept9.txt
[oracle@localhost ~]$ cp dept.txt dept10.txt
문제126. dept.txt ~ dept10.txt의 내용중에서 DALLAS를 kkkkk로 변경하시오.
$ vi dept*.txt
:argdo %s/DALLAS/kkkkk/g | update
:wq!
'Study > class note' 카테고리의 다른 글
리눅스 / mysql workbench (0) | 2022.03.15 |
---|---|
리눅스 / maria db (0) | 2022.03.14 |
리눅스 / 리눅스 명령어3 (0) | 2022.03.14 |
리눅스 / putty로 서버 접속, 리눅스 명령어2 (0) | 2022.03.11 |
리눅스 / 리눅스 명령어 (0) | 2022.03.10 |