리눅스 스터디 - 3

2018. 1. 15. 22:19

오늘분 정리

 

7장.

grep [옵션] 검색어 파일명들

 - 해당 파일(들)에 검색어가 있는지 검색

 - 옵션

    -i 대소문자를 무시
    -l 검색어가 들어있는 파일 이름을 출력
    -n 파일내부의 라인의 번호도 함께 출력
    -v 검색어가 있지 않는 줄을 출력
    -c 검색어와 일치하는 라인수 출력
    -w 검색어가 하나의 단어로 이루어진 것만 검색

 

 - grep과 파이프: grep 명령은 파이프와 함께 자주 사용됨

    ex: ls -l | grep test  =>  ls -l의 결과물인 파일에서 test라는 검색어를 검색하여 그 결과를 출력한다.

 

 

find 경로 검색조건 [동작]

 - 해당 경로에서(절대, 상대) 검색조건에 맞추어 특정한 동작(기본은 절대경로 화면출력)시행

 - 경로

   

 - 검색조건

   

 

 - 동작

   

 

 

grep와 find의 차이

   

 

 

명령어찾기

 - which 명령어

 - alias나 PATH 환경변수에 지정된 경로에서 명령을 찾아, 명령파일의 절대경로를 출력한다.

 

 

 

 

8장.

프로세스

 - 현재 시스템에서 실행중인 프로그램

 - 프로세스는 고유번호를 가진다(PID, 1번 프로세스는 init로 사용한다)

 - 프로세스 종류

    데몬(daemon): 커널에 의해 시작되는 프로세스(ex: 웹서비스 제공하는 httpd 프로세스)

    부모(parent): 자식 프로세스를 만드는 프로세스

    자식(child): 부모에 의해 생성된 프로세스로 실행이 끝나면 부모프로세스로 자원을 반환한다.

    고아(orphan): 자식프로세스가 종료하기 전에 부모가 종료된 프로세스.

    좀비(zombie): 자원 반환이 완전히 이뤄지지 않은 프로세스, 프로세스테이블만 차지하고 있다.

 

 

ps [옵션]

 - process status, 프로세스 정보를 출력한다.

 - 출력되는 정보

    UID: 소유자의 사용자 ID

    PID: 프로세스 번호

    PPID: 부모 프로세스 번호

    C: 프로세스 우선순위

    STIME: 프로세스 시작시간

    TTY: 터미널 번호( ?는 데몬을 의미한다)

    TIME: CPU 사용시간

    CMD: 명령어 이름

 - 옵션

    -a : 다른 사용자들의 프로세스 목록 포함

    -e : 시스템과 관련된 모든 프로세스 목록 출력

    -f : 프로세스에 대한 자세한 정보 출력

    -u : 각 프로세서의 사용자 이름과 시작 시간, 프로세서 상태등을 보여준다.

    -x : 로그인 상태에 있는 동안 아직 완료되지 않은 프로세서들을 보여준다.

 - 옵션이 너무 많기 때문에 보통 2가지로 나누어 사용한다.

    ps -aux | grep 검색어
    ps -ef


=> TTY에서 ?에대한 의견은 다양하다. 백그라운드 동작, 데몬, 터미널과 연결되지 않은 프로세스 등등, 무엇이 맞는지는 잘 모르겠다.

=> 현재 실행중인 프로세스를 트리구조로 보려면 pstree명령을 치면된다

 

 - 옵션 참조

http://blog.redjini.com/190

http://rerethink.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-ps-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%8B%AC%ED%99%94-ef

https://www.aonenetworks.kr/official.php/home/info/1399

http://sisiblog.tistory.com/19

 

 

kill [시그널] pid

 - 지정한 프로세스들에게 특정 시그널을 보낸다.

 - 사용자가 소유한(uid) 프로세스만 종료시킬 수 있다.(단, root는 모든프로세스 종료가능)

 - 기본적인 kill(옵션없는 kill)은 15번 이다.

 - man signal혹은 man –s 5 signal로 자세한 정보를 알 수 있다.

 - 대표적인 옵션은 15번(default), 9번(강제), 2번(컨+c), 19번(정지, 컨+z)이 있다.

 - 시그널 옵션에 대한 정보는 아래를 참조한다(잘 정리되어 있음)

    http://eunguru.tistory.com/96

 

 

포그라운드와 백그라운드

 - foreground process(전위처리)

    사용자가 명령을 입력한 후 결과가 출력될 때까지 기다려야 하는 경우

    보통의 명령처리 방법

 - background process(후위 처리)

    명령의 처리결과 출력과 관계없이 다른 작업을 계속 할 수 있는 경우(곧바로 프롬프트가 출력되어 명령을 입력할 수 있다)

    백그라운드 실행은 명령어& 이다.

 

 

작업과 프로세스(job & process)

 - job은 쉘이 관리할 수 있는 프로세스이다.

 - 쉘은 job을 시작시키고 제어한다.

 - job은 프로세스이므로 각 job은 PID를 가지고 있고, 동시에 쉘이 할당한 일련번호인 job ID도 가지고 있다.

 

 

jobs [%작업번호]

 - 쉘에서 제공하는 명령어

 - 작업들을 제어하기 위한 현재세션에서 실행중인 작업들의 상태를 출력하는 명령어이다

 - [%작업번호]

    %작업번호: 해당 번호의 작업 정보를 출력

    %+(혹은 %%): 작업순서가 +인 작업 정보를 출력

    %- : 작업 순서가 –인 작업 정보를 출력

 

 - jobs를 입력할 때 출력되는 항목

    작업번호: 작업번호로 백그라운드로 실행시킬 때마다 순차적으로 증가한다(ex: [1],[2],[3]...)

    작업순서: +: 가장 최근에 접근한 작업, -: + 작업보다 바로 전에 접근한 작업, 공백: 그 외의 작업

    상태: 작업의 상태를 표시

     - 실행 중(Running): 현재 실행 중

     - 완료됨(Done): 작업이 정상적으로 종료

     - 종료됨(Terminated): 작업이 비정상적으로 종료

     - 정지(Stopped): 작업이 잠시 중단됨

    명령: 사용자가 입력하여 실행중인 명령

 

 - 작업전환 및 작업정지

    bg [%작업번호]: 포그라운드 작업을 백그라운드로 전환

    fg [%작업번호]: 백그라운드 작업을 포그라운드로 전환

    ctrl+z: 포그라운드 작업을 중지시키고, 백그라운드의 중지된 목록(jobs를 입력하면 보이게)으로 보낸다

    stop %작업번호: 백그라운드에서 수행중인 특정 작업을 중지시킨다

 

 

nohup 명령&

 - 보통 로그아웃을 하면 실행중이던 작업들은 함께 종료된다

 - 로그아웃한 다음에도 백그라운드 작업은 작업이 완료될 때까지 실행하도록 해야 할 때 nohup 명령 사용

 

사용자 관련 정보 보기 명령어

 - 로그인한 사용자 정보 보기: users, who, w

 - 사용자 자신의 정보 보기: whoami, whoami, id

 

 

+ Recent posts