공부?/국비 지원 일기장

40일차 - vi editor

무무요 2024. 9. 1. 03:39

코로나를 걸려버린 나머지 약먹고 반쯤 죽어있었어서 내용이 빈약..
=======

시스템에 특정 액션을 취할수 있냐 없냐 = user rights 사용자 권한 , 시스템에 액션을 취하는것이 권한
리눅스에선 허가권 = 자원한테서 허가를 받는것이 허가권 , SetUID
 
=======

Linux 기본 편집기 (vi editor)


1. apache 웹서버 프로그램 설치
2. apache 관련 설정 파일 구성(httpd.conf on) 설정을 반드시 편집할수있어야해서 vi 편집기 사용
3. daemon 재 구동(#systemctl 설정파일 재시작, 다시 읽어라)

vi editor
- 문서 편집기
- 한 행씩 편집하는 것이 아니라 한 화면당 편집하는 기능을 지원하는 프포그램

명령 모드
- vi editor의 기본 모드이며 다른 모드로 전환을 수행할 수 있는 모드
- 간단한 검색, 커서 이동, 복사/붙여넣기 등의 편집을 수 행 함

편집(입력) 모드
- 문서의 텍스트를 입력, 수정, 삭제 할 수 있는 모드
- 내용을 작성할 때 사용됨

 

    * 내용 입력 
       i --> 현재 커서 왼쪽부터 입력
      a --> 현재 커서 오른쪽부터 입력
      o --> 현재 커서 아래부터 입력(단, 새롭게 빈 행을 추가하면서 입력 됨)

     * 내용 수정
      r --> 현 커서 위치의 문자 변경 
      R --> 현 커서부터 입력되지만 기존 내용을 덮어씌우면서 입력 됨

     * 내용 삭제(명령모드에서 작업)
      x --> 한 문자 삭제
      dd --> 한 행 삭제(내부적으로는 잘라내기되는 것임) 

 

명령모드에서 많이 사용되는 키 
     * ^ or 0 : 커서, 행의 처음으로 이동
     * $  : 커서, 행의 마지막으로 이동
     * gg or [[ : 커서, 파일의 첫 행으로 이동
     * G or ]] : 커서, 파일의 마지막 행으로 이동
     * u : undo(되돌리기)
     * yy : 복사하기(ex. 5yy --> 5개 행이 복사)
     * dd : 잘라내기(ex. 5dd --> 5개 행이 잘라내기)
     * x : 한 문자 삭제

 

실행(ex) 모드
- vi editor를 제어하는 명령어를 실행하는 모드
- 각종 치환, 저장, 파일 읽기, vi editor의 환경 설정 등을 수행 함

 

     * :wq! --> 저장하고 종료
     * :q!   --> 저장하지 않고 종료
     * :set number(:se nu) --> 행번호 추가
     * /문자열 --> 문자열 검색(커서 위치 하단방향으로 검색, 먼저 /하기전에 gg로 문서의 첫 행으로 이동후 검색)
     * :%s /문자열1/문자열2 /g(찾아 바꾸기, 문자열1을 찾아 문자열2로 변경해라)

모드 이동
- 명령 모드 -> 입력 모드
r, R
    i키 : 현재 커서 왼쪽부터 입력
    a키 : 현재 커서 오른쪽부터 입력
    o키 : 현재 커서 다음 행.에 빈 줄 생성한 후 입력
    R키 : 현재 커서 위치부터 수정하면서 입력(replace)
- 명령 모드 -> 실행 모드

    : --> 명령어 실행모드
    / --> 검색모드(아래로)
    ? --> 검색모드(위로)
- 입력/실행모드 -> 명령모드 

실행 모드에서 특정 행으로 이동하려면 해당 하는 행의 숫자룰 입력하면 된다
or
이동하려는 행번호뒤에 바로 대문자 G를 붙여주면 된다.

/root/.bashrc  root 실행할 때 .bashrc 읽어버림

명령모드: vi 편집기의 기본모드로 다른모드로 전환 수행 가능 / 간단한 검색, 커서, 이동, 복사/붙여넣기 수행

u(undo) 되돌리기 

h(왼쪽)j(아래쪽)k(위쪽)l(오른쪽) 

[[ 맨 위쪽으로 

]] 맨 아래쪽으로 

^(0) 현재 행의 맨 왼쪽으로 $현재 행의 맨 오른쪽으로 

30 G :30번째 줄로 가라

~ 현재 커서의 문자를 대문자/소문자 변환  

dd 현재 커서가 위치한 행을 삭제 [n]dd n행만큼 행삭제 

yy 현재 커서가 위치한 행을 복사 [n]yy n행만큼 행 복사

p 커서가 있는 위치 아래 행으로 붙여넣기 P 위 행으로 붙여넣기

x 현재 커서가 위치한 한문자 삭제 

입력모드: 문서의 텍스트 입력, 수정, 삭제 할 수 있는 모드 

명령→ 편집(입력) 모드 

전환: 좌측에 커서 이동 i, 맨 왼쪽 이동 I

우측 커서 이동 a, 맨 오른쪽 이동 A

아래로 이동 o, 위로 이동 O

현재 커서의 한 문자 수정r, 현재 커서 위치부터 수정 입력모드로 변경 R

입력→ 명령 모드 : esc 

명령 → 실행모드 



실행모드: vi 편집기를 제어하는 명령어 실행 모드 각종 치환, 저장, 파일읽기, vi 편집기의 환경 설정 수행

w(저장) q(종료) !(강제)

se nu 행번호 매기기

:40  40번째 줄로 가라!

/문자열 : 커서 위치에서 아래로 검색

:%s /문자열1/문자열2 /g 문자열1을 문자열2로 치환

:!bash shall 환경으로 전환  exit 엔터 하면 vi 편집기로 옴

wq! 저장 후 강제종료

 

실습
1. # cp /root/anaconda-ks.cfg /test로 복사 후 vi로 /test/anaconda-ks.cfg 파일 열기
     # cd /test
     # cp /root/anaconda-ks.cfg .
     # vi anaconda-ks.cfg
2. 프롬프트를 20번 라인으로 이동
     :20
3. 20번 라인부터 5라인을 복사한 후 문서의 제일 마지막 라인에 붙여넣기
     5yy / G / p
4. 현재 문서에서 라인 번호를 표시
     :se nu
5. 30번 라인으로 이동
     :30
6. 수정모드로 edit 문자열 입력
     R / edit
7. 6번에서 작업했던 내용 취소
     ESC(명령모드 전환) / u
8. 8번 라인으로 이동
     :8
9. 현재프롬프트를 기준으로 오른쪽으로 3개의 문자 삭제
     3x 
10. 현재 프롬프트를 기준으로 위쪽으로 Generated 문자열 검색
     ? Generated
11. 현재문서에서 Generated로 되어있는 모든 문자열을 made로 변경
     :%s/Generated/made/g
12. 문서의 마지막으로 이동
     G
13. /etc/passwd 파일의 내용을 현재 문서로 불러들이기
     :r!cat /etc/passwd
14. 30번 라인부터 5라인을 잘라내서 35번 라인 밑으로 붙여넣기
     :30 / 5dd / :35 / p
15. 저장하고 종료
     :wq!


Linux 압축

용도 
- 배포의 편리성 : 데이터의 빠르고 편리하게 송/수신하기 위해 사용 함
- 파일보관의 편리성 : 대용량의 데이터를 보관하기 위해 사용 함

압축 명령어 종류
- gzip(GNU zip)
- bzip2
- tar(tape archive)(여러개의 파일을 묶는 명령어다, 옵션중에 압축하는게있어서 표기된것)

gzip

- 리눅스에서 범용적으로 사용되는 압축 프로그램
- 일반적으로 tar로 묶여진(archive) 파일의 용량을 줄이기 위한 목적으로 사용됨
- 압축 파일을 생성 할때 기본값으로 “.gz”  확장자를 붙여줌
- tar와 같이 쓰인다.

사용법
# gzip [옵션] <파일 이름>


bzip2
- 압축률은 gzip보다 좋지만 처리속도가 느림
- 압축에 사용 되는 알고리즘(BWT)의 특허 때문에 라이선스를 잘 확인하고 이용해야 함
- 압축 파일을 생성할때 기본적으로 “.bz2” 확장자를 붙여줌
- tar와 같이 쓰인다.

사용법
# bzip2 [옵션] <파일 이름>

tar
- 초기에 tape backup을 목적으로 사용 되었음
- 많은 양의 파일을 하나의 큰 파일로 묶어주기 위해 사용됨
- 파일 배포 시 많이 사용 됨
- 내부 옵션을 통해 gzip 또는 bzip2 압축을 지원함

사용법(압축생성)
# tar [옵션] <생성할 tar파일 이름> <묶을 파일 이름>
사용법(압축해제)
# tar [옵션] <tar파일 이름> –C <해제할 경로>

tar 옵션
-vf = 자세한 내용 출력 , 생각없이 쓸것
-c = 정의한 파일 이름으로 파일을 묶음
-t = tar 파일의 내용 출력
-x = tar 파일에서 정의된 파일 추출
-z = tar로 묶여진 파일을 gzip으로 압축하여 최종 파일 생성 , 
-zc = 묶으면서 압축
-zx = 풀면서 압축해제 , 중요도 높음
zcvf로 많이쓰임. - 가 안들어감, z대신 jcvf면 bzip2으로


-j = tar로 묶여진 파일을 bzip2으로 압축하여 최종 파일 생성


시스템 프로세스 관리

프로세스
- 프로그램이나 명령어를 실행 했을 때 메모리에 적재되어 실제로 동작하는 상태
- 프로세스가 실행 되면 프로세스 식별번호(PID, Process id)를 할당 받음

프로세스기본관리명령어
- Ps
- kill

ps
- 프로세스의 정보 확인

사용법
# ps [옵션]

-e ,-A 프로세스 전체 목록 출력


ps -ef | grep
형식이 많이 쓰임

pkill = 이름으로 끄기
kill = PID로 끄기

 

 

기본 관리 명령어

ps(프로세스의 정보확인) ps -ef

-e : 프로세스 전체 목록 출력

-f : PID , PPID 정보를 포함하여 출력


-프로그램을 클릭하여 firefox 실행

kill -9 6215

gedit

gedit & 프롬포트 반환

ps -ef | grep gedit

kill -9 6870(pid number) 윈도우 작업관리자 → 작업끝내기

pkill -9 gedit

좀비프로세스 를 죽이기 위해 kill -9 pid 명령어 사용

ps -ef | grep 프로세스