becool

20210406 (화) 본문

linux

20210406 (화)

gusalstm 2021. 4. 6. 12:42
반응형

9:30 review

 

vi 에디터 커맨드 모드

 

찾기

/[Search-Word] 찾기

/\c[Search-Word] : 대소문자 구분없이 찾기 

 

치환 - Extended모드

:s/Search-Word/Replace-Word → 현재 라인에서만 검색치환

:%s/Search-Word/Replace-Word → 전체 문서 라인 검색치환

 

:%s/Search-Word/Replace-Word/g → 한꺼번에 바꾸기

  ※ /g 가 없는 경우 : 한 라인당 1개(첫번째)만 치환함. 같은 라인에 동일한 단어가 여러개이면 첫번째만 치환하고 다음 라인으로 넘어감.

:%s/Search-Word/Replace-Word/gci  → 각각 (y/n) 얼럿띄우기

:1,10 s/file/object/g → 1~10 라인 사이에서만 file을 object로 치환하기. 

 

v visual mode

V visual line mode

ctrl+v visual blcok mode

 

=============================================

 

PERMISSION

  파일 디렉터리
read 읽기 (cat) 파일 목록확인
write 내용변경 (vim) 파일 생성 및 삭제 (touch, rm)
exec 파일을 실행 (./file명) 디렉터리 이동 및 접근 (cd)

 

 

WhoWhatWhich

ugo / +-= / rwx

 

$ chmod ug=rw,o=r file1.txt

 

 

============================================

쉘 메타문자

 

[user@localhost 20210406]$ ls -l user_file1*

[user@localhost 20210406]$ ls -l user_file1?

[user@localhost 20210406]$ ls -l user_file[a-z]*
-rw-rw-r--. 1 user user 0 Apr  6 12:07 user_fileaa
-rw-rw-r--. 1 user user 0 Apr  6 12:07 user_fileab
-rw-rw-r--. 1 user user 0 Apr  6 12:07 user_fileac
-rw-rw-r--. 1 user user 0 Apr  6 12:09 user_fileba
-rw-rw-r--. 1 user user 0 Apr  6 12:09 user_filebb
-rw-rw-r--. 1 user user 0 Apr  6 12:09 user_filebc

 

============================================

 

History

$ history : 명령어 히스토리

$ history 5 : 최근 5개만 노출

$ ![LINE NUMBER or 명령 앞글자] : 명령 재실행하기

$ ctrl + R : 명령어 검색기

 

history의 저장위치 : 홈디렉터리 내 숨김파일

-rw-------.  1 user user 13442 Apr  5 18:14 .bash_history

 

 

============================================

 

파이프라인 구성 

파이프라인은 하나 이상의 명령이 파이프 문자 (|)로 구분된 시퀀스 이다. 파이프는 첫 번째 명령의 표준 출력을 다음 명령의 표준 입력에 연결한다.

 

[user@localhost 20210406]$ ls -l | grep test
-rw-rw-r--. 1 user user  121 Apr  6 14:54 test1
-rw-rw-r--. 1 user user   54 Apr  6 15:08 test2

ls의 결과값 중 test가 포함된 라인만 찾아서(grep) 노출

 

[user@localhost 20210406]$ ps aux | grep vim
user01   13056  0.1  0.2 149184  5008 pts/1    S+   15:43   0:00 vim
user     13067  0.0  0.0 112812   976 pts/0    R+   15:43   0:00 grep --color=auto vim

 

tee : 명령의 출력과 저장을 동시에 할 수 있음

[user@localhost 20210406]$ ls -t | head -n 10 | tee /tmp/ten-last-changed-files
user_filebc
test2
file1
test1
file2
file4
file3
date
user_filebb
user_fileba

 

============================================

 

프로세스

이름 플래그 커널에서 정의된 상태 이름 및 설명
실행 R TASK_RUNNING : 프로세스가 CPU에서 실행 중이거나 실행을 기다리고 있다. 프로세스는 사용자 루틴 똔느 커널 루틴 (시스템 호출)을 실행할 수도 있고 실행 중 (또는 실행 가능) 상태일 때 대기열에 추가되거나 대기 상태가 될 수 있다.
수면 S TASK_INTERRUPTIBLE : 프로세스가 하드웨어 요청, 시스템 리소스 액세스, 신호 등 일부 조건을 기다린다. 이벤트 또는 신호가 조건을 만족하면 프로세스는 실행 중 상태로 복귀한다.
D TASK_UNINTERRUPTIBLE : 이 프로세스 역시 유휴 상태지만 s 상태와 달리 신호에 응답하지 않는다. 프로세스 중단이 예기치 않는 장치 상태를 가져올 수 있는 경우에서만 사용된다.
K TASK_KILLABLE : 중단되지 않는 D 상태와 동일하지만, 대기 중인 작업이 강제 종료(완전히 종료) 신호에 응답할 수 있다. 유틸리티는 종료 가능한 프로세스를 D 상태로 표시하는 경우가 많다.
I TASK_REPORT_IDLE : D 상태의 하위 집합이다. 커널은 부하 평균을 계산할 때 이러한 프로세스를 카운트하지 않는다. 커널 스레드에 사용된다. TASK_UNINTERRUPABLE 및 TASK_NOLOAD 플래그가 설정된다. 치명적인 신호를 받아들인다.
중지됨 T TASK_STOPPED : 일반적으로 사용자 또는 다른 프로세스에 의해 신호를 받아 프로세스가 중지(일시 중지) 됨. 다른 신호에 의해 프로세스가 계속(재개)되어 실행 중 상태로 돌아갈 수 있다.
T TASK_TRACED : 디버깅되는 프로세스가 일시적으로 중지되며 동일한 T상태 플래그를 공유한다.
Zombie Z EXIT_ZOMBIE : 하위 프로세스가 종료될 때 상위 프로세스에게 신호를 보낸다. 프로세스 ID(PID)를 제외한 모든 리소스가 릴리스 된다.
X EXIT_DEAD : 상위 프로세스가 나머지 하위 프로세스 구조를 클린업(reap)하면 프로세스는 완전히 릴리스 된 것이다. 이 상태는 프로세스 목록 유틸리티에 나타나지 않는다.

 

PID (Process ID) : 프로세스를 구별하는 고유한 ID

PPID (Parent Process ID) : 부모프로세스 PID

 

ps

 -e : 실행중인 모든 프로세스 출력

 -f : 프로세스의 상세정보 출력

$ps -f -p [PID]

[user@localhost 20210406]$ ps -f -p 3101 
UID        PID  PPID  C STIME TTY          TIME CMD
user      3101  3092  0 09:37 pts/0    00:00:02 bash

 

$ps -ef | grep [PID]

[user@localhost 20210406]$ ps -ef | grep 3101
user      3101  3092  0 09:37 pts/0    00:00:02 bash
user     13729  3101  0 16:08 pts/0    00:00:00 ps -ef
user     13730  3101  0 16:08 pts/0    00:00:00 grep --color=auto 3101

 

[user@localhost 20210406]$ ps aux | grep login
root       716  0.0  0.0  26440  1836 ?        Ss   09:35   0:00 /usr/lib/systemd/systemd-logind
user      2266  0.0  0.2 317432  3836 ?        Sl   09:37   0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
user     13807  0.0  0.0 112816   976 pts/0    R+   16:10   0:00 grep --color=auto login

 

$pgrep [Search-Word]
[user@localhost 20210406]$ pgrep -l login
716 systemd-logind

$pstree : 프로세스의 부모자식관계를 트리구조로 보여준다.

 

시그널

신호 번호 짧은 이름 정의 목적
1 HUP 끊어짐 터미널의 제어 프로세스 종료를 보고하는 데 사용된다. 또한 프로세스를 종료하지 않고 다시 초기화 (설정 재로드) 하는 데에도 사용된다.
2 INT 키보드 인터럽트 프로그램이 종료된다. 차단하거나 처리할 수 있다. INTR키 시퀀스(ctrl +c)를 눌러 전송한다.
3 QUIT 키보드 종료 SIGINT와 유사하며 종료할 때 프로세스 덤프를 추가한다. QUIT 키 시퀀스 (ctrl + \ )를 눌러 전송한다.
9 KILL 킬, 차단할 수 없음 프로그램이 강제 종료된다. 차단, 무시 또는 처리할 수 없다. 항상 치명적이다.
15 
기본값
TERM 종료 프로그램이 종료된다. SIGKILL과 달리 차단, 무시 또는 처리할 수 있다. 프로그램 정상종료를 요청하는 방법이며, 자체 클린업이 가능하다.
18 CONT 계속 프로세스가 중지된 경우 재개하기 위해 전송한다. 차단할 수 없다.
처리하더라도 항상 프로세스가 재개된다.
19 STOP 중지, 차단할 수 없음 포르세스를 일시 중지 한다. 차단 또는 처리할 수 없다.
20 TSTP 키보드 중지 SIGSTOP과 달리 차단, 무시 또는 처리할 수 있다.
SUSP 키 시퀀스 (ctrl + z)를 눌러 전송한다.

 

kill

$ kill [OPTION] [SIG] [PID]

user     15046 14947  0 16:56 pts/1    00:00:00 sleep 1000

[user@localhost ~]$ kill 15046 → sigterm 정상종료 신호를 보냄

[user@localhost ~]$ sleep 1000
Terminated

 

user     15139 14947  0 17:00 pts/1    00:00:00 sleep 1000

[user@localhost ~]$ kill -s 2 15139 → kill -s I[NT 키보드 인터럽트 신호번호] [PID]

 

user     15270 14947  0 17:02 pts/1    00:00:00 sleep 1000
[user@localhost ~]$ kill -s SIGSTOP 15270  → kill -s [신호번호 19 STOP] [PID]

[1]+  Stopped                 sleep 1000

 

[user@localhost ~]$ ps aux |grep sleep
user     15270  0.0  0.0 108056   356 pts/1    T    17:02   0:00 sleep 1000
[user@localhost ~]$ kill -s SIGCONT 15270 → kill -s [신호번호 18 CONT] [PID]
[user@localhost ~]$ ps aux |grep sleep
user     15270  0.0  0.0 108056   356 pts/1    S    17:02   0:00 sleep 1000  → T상태에서 S상태로 다시 재개됨.

 

포그라운드 프로세스 (Foreground Process)

- 프로세스 실행 시 터미널의 제어권을 가져가는 프로세스

- 프로세스 실행이 종료되면 터미널 제어권을 반납

- 프로세스 실행 중인 동안 터미널에서 다른 작업을 수행할 수 없음.

 

백그라운드 프로세스 (Background Process)

- 프로세스 실행 시 백그라운드에서 실행되는 프로세스

- 제어 터미널을 가지지 않음.

- 프로세스 실행 후 다른 작업을 수행할 수 있음.

 

데몬(DAEMON)

 - 운영체제 커널이 실행하고 제어하는 백그라운드 프로세스

 

$jobs 작업목록보기

$fg %[JOB ID] 포그라운드로 전환

$bg %[JOB ID] 백그라운드로 전환

ctrl + Z : 포그라운드 프로세스 중지 ^Z jobs에 중지된 프로세스로 보여짐

ctrl + C : 인터럽트 ^C  jobs에서 프로세스 없음

 

 

부모 프로세스 (Parent Process)

자식 프로세스 (Child Process)

 

 

 

728x90

'linux' 카테고리의 다른 글

20210408 (목)  (0) 2021.04.08
20210407 (수) -NEW  (0) 2021.04.07
20210407 (수)  (0) 2021.04.07
20210405 (월)  (0) 2021.04.05
20210402  (0) 2021.04.02
Comments