becool

20210407 (수) 본문

linux

20210407 (수)

gusalstm 2021. 4. 7. 15:50
반응형

9:43 review

 

stdin, stdout, stderr

 

표준 출력에 대한 리다이렉션 :

[COMMAND] > [FILE] overwrite

[COMMAND] >> [FILE] append

[user@localhost 20210407]$ ls -a /tmp > ./tmp1

[user@localhost 20210407]$ echo test1234 >> test.txt

 

표준 에러에 대한 리다이렉션 : 

[COMMAND] 2> [FILE] overwrite

[COMMAND] 2>> [FILE] append

[user@localhost 20210407]$ cd tmp1 2> test1
[user@localhost 20210407]$ cat test1
bash: cd: tmp1: Not a directory

 

표준 입력에 대한 리다이렉션 :

[COMMAND] < [FILE]

[user@localhost 20210407]$ cat 0< /etc/resolv.conf

# Generated by NetworkManager
nameserver 203.248.252.2
nameserver 164.124.101.2

 

파이프(Pipe)

 [COMMAND1] | [COMMAND2]

 먼저 실행된 명령어의 결과를 다음 실행 명령어의 입력을 전달

[root@localhost ~]# cat /etc/ssh/ssh_config | grep -v '^#'
 주석제외 출력 (라인 첫부분에 # 제외하고 출력)

 

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

 

프로세스

- 부모 프로세스 : 자식 프로세스를 실행한 프로세스

- 자식 프로세스 : 부모 프로세스에 의해서 실행된 프로세스

- 데몬 프로세스 : 운영체제 커널에 의해서 구동되는 백그라운드 프로세스

- 고아 프로세스 : 부모 프로세스가 먼저 종료된 프로세스

- 좀비 프로세스 : 자식 프로세스가 종료되기 위해 프로세스 리스트에서 대기 중인 프로세스

                       모든 프로세스가 종료를 위해 잠시 거치는 상태

                       프로세스가 정상적으로 종료되지 못하고 메모리에 잔류 중인 프로세스

 

ps -ef

ps aux

ps -ef | grep PROCESS_PATTERN

 

pgrep (ps+grep)ps -ef
ps aux

ps -ef | grep PROCESS_PATTERN

pgrep (ps + grep)
 pgrep -x  PROCESS_PATTERN
   PROCESS_PATTERN 에 정확히 해당되는 내용만 출력

 pgrep -n  PROCESS_PATTERN
   가장 최근에 실행된 프로세스 출력

 pgrep -l  PROCESS_PATTERN
   PID, 프로세스 이름을 함께 출력

 

<프로세스 제어 시그널>

$ sleep 100

$ ps -ef | grep sleep

$ kill PID → 시그널 넘버 미지정 시, 기본값 15번 TERM 실행

 

kill

 $ kill -s SIGNAL PID

killall

 $ killall -SIG PROCESS_PATTERN

pkill

 $ pkill -SIG [option] PROCESS_PATTERN

 -P PPID : PPID 프로세스에 의해 실행된 프로세스를 제어

 -t TTY : 지정한 제어 터미널 내에서 실행된 프로세스를 제어

 

pkill [OPTIONS] [PATTERN]

[user@localhost 20210407]$ pkill -15 sleep  → 한꺼번에 종료됨.
pkill: killing pid 7086 failed: Operation not permitted
[1]   Terminated              sleep 1000
[2]-  Terminated              sleep 2000
[3]+  Terminated              sleep 3000

 

[user@localhost 20210407]$ ps -ef |grep sleep
user      7126  3212  0 11:58 pts/0    00:00:00 sleep 1000
user      7133  3212  0 11:58 pts/0    00:00:00 sleep 2000
root      7154   783  0 11:59 ?        00:00:00 sleep 60
user      7155  6348  0 11:59 pts/1    00:00:00 sleep 3000
user      7164  3212  0 11:59 pts/0    00:00:00 grep --color=auto sleep
[user@localhost 20210407]$ ps -ef | grep bash
root       783     1  0 09:24 ?        00:00:00 /bin/bash /usr/sbin/ksmtuned
user      2483  2320  0 09:29 ?        00:00:00 /usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic"
user      3212  3202  0 09:30 pts/0    00:00:00 bash → Parent
user      6348  3202  0 11:29 pts/1    00:00:00 bash
user      7218  3212  0 12:00 pts/0    00:00:00 grep --color=auto bash
[user@localhost 20210407]$ pkill -15 -P 3212 sleep → Parent PID 3212의 sleep 종료
[1]   Terminated              sleep 1000
[2]-  Terminated              sleep 2000
[user@localhost 20210407]$ ps -ef | grep sleep
user      7155  6348  0 11:59 pts/1    00:00:00 sleep 3000
root      7267   783  0 12:01 ?        00:00:00 sleep 60
user      7300  3212  0 12:01 pts/0    00:00:00 grep --color=auto sleep

 

[user@localhost 20210407]$ ps -ef | grep sleep
user      7155  6348  0 11:59 pts/1    00:00:00 sleep 3000
root      7315   783  0 12:02 ?        00:00:00 sleep 60
user      7317  3212  0 12:02 pts/0    00:00:00 grep --color=auto sleep
[user@localhost 20210407]$ pkill -15 -t pts/1 sleep  → 터미널 pts/1의 sleep 종료
[user@localhost 20210407]$ ps -ef | grep sleep
root      7331   783  0 12:03 ?        00:00:00 sleep 60
user      7340  3212  0 12:03 pts/0    00:00:00 grep --color=auto sleep

 

 

 

 $ top 실시간 프로세스 모니터링

ps : 정적출력, top : 동적출력

목적
? 또는 h 대화형 키 입력 도움말.
l, t, , 부하, 스레드 및 메모리 헤더 라인을 전환한다.
1 개별 CPU 또는 헤더의 모든 CPU에 대한 요약을 표시하며 전환된다.
s (1) 새로 고침 (화면) 속도를 소수(초) 단위로 변경한다 (예 : 0.5, 1.5)
b 실행 중 프로세스에 대한 반전 강조 표시를 전환한다. 기본값은 굵은 글꼴이다.
Shift+b 디스플레이, 헤더 및 실행 중인 프로세스에 굵은 글꼴을 사용할 수 있도록 한다.
Shift+h 스레드를 전환한다. 프로세스 요약 또는 개별 스레드를 표시한다.
u, Shift+u 사용자 이름으로 필터링한다 (유효, 실제)
Shift+m 메모리 사용량에 따라 프로세스 목록을 내림차순으로 정렬한다.
Shift+p 프로세서(cpu) 사용량에 따라 프로세스 목록을 내림차순으로 정렬한다.
k(1) 프로세스를 종료한다. 프롬프트가 나타나면 PID를 입력한 후 신호를 입력한다.
r(1) 프로세스 우선 순위를 변경한다. 프롬프트가 나타나면 PID를 입력한 후 nice_value를 입력한다.
Shift+w 다음에 top을 다시 시작할 때 사용할 현재 디스플레이 구성을 작성(저장)한다.
q 종료
f 필드를 활성화 또는 비활성화하여 열을 관리한다. 또한 top에 대한 정렬 필드를 설정할 수 있다
참고 (1) top이 보안모드에서 시작된 경우 사용할 수 없음.

 

 

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

 

아카이브

1개 이상의 파일을 하나로의 파일로 묶는 파일

 

 

 

$ tar [COMMNAD] [FILE] [TARGETFILE]

백업 장치에 데이터를 백업하는 용도로 사용

디렉터리를 파일로 묶을 경우 사용한다.

 

아카이브 생성 $ tar cf

아카이브 확인 $ tar tf

아카이브 추출하기 $ tar xf

 

명령 의미
c(create) 새로운 묶음을 생성
x(extract) 묶은 파일을 풀어줌
t(list) 묶음을 풀기전에 목록을 보여줌
f(file) 묶음 파일명을 지정해줌
v(visual) 파일이 묶이거나 풀리는 과정을 보여줌
z tar + gzip
j tar + bzip2
J tar + xz

 

[user@localhost 20210407]$ tar cf test.tar file1 file2 file3
[user@localhost 20210407]$ tar tf test.tar 
file1
file2
file3
[user@localhost 20210407]$ tar vtf test.tar 
-rw-r--r-- user/user       994 2021-04-07 12:49 file1
-rw-r--r-- user/user       994 2021-04-07 12:49 file2
-rw-r--r-- user/user       994 2021-04-07 12:49 file3

zx==========================================

압축 및 압축 해제

 

 compress
 - 압축
    $ compress    FILE
 - 압축 해제
    $ uncompress  FILE

 gzip
 - 압축
    $ gzip   FILE
 - 압축 해제
    $ gunzip  FILE
    $ gzip  -d  FILE

 bzip2
 - 압축
    $ bzip2   FILE
 - 압축 해제
    $ bunzip2  FILE

 xz
 - 압축
    $ xz    FILE
 - 압축 해제
    $ unxz   FILE

 zip
 - 압축
    $ zip   ZIP_FILE   FILE1  FILE2 ... FILEn
 - 압축 해제
    $ unzip   ZIP_FILE

 

 

 

 

728x90

'linux' 카테고리의 다른 글

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