리눅스 스터디 - 3
오늘분 정리
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명령을 치면된다
- 옵션 참조
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)이 있다.
- 시그널 옵션에 대한 정보는 아래를 참조한다(잘 정리되어 있음)
포그라운드와 백그라운드
- 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
'Study > Linux' 카테고리의 다른 글
리눅스 스터디 - 5 (0) | 2018.01.21 |
---|---|
리눅스 스터디 - 4 (0) | 2018.01.21 |
리눅스에서 c컴파일하고 실행하기(gcc옵션) (0) | 2018.01.12 |
vmware에 올라간 ubuntu와 컴퓨터와 공유폴더 연결하기 (0) | 2018.01.12 |
리눅스 스터디 - 2 (0) | 2018.01.09 |