'리눅스 명령어'에 해당되는 글 1건

  1. 2009.10.07 리눅스 기본명령어(2) by 대절님

1. 패턴을 이용한 파일 찾기

- 윈도우 : 검색 파일이름, 속성, 내용으로 원하는 파일을 찾을수 있음

- 리눅스 : find, grep

 

1)  find 이용한 파일 찾기

파일의 속성이나 이름을 패턴으로 이용하여 원하는 파일을 찾아낼수 있음.

실행 : find [검색위치] [패턴] [액션]

- 검색위치 : 검색할 디렉토리를 상대경로 또는 절대경로를 사용하여 지정

- 패턴 : 패턴은 무엇을 기준으로 검색할 것인지 지정

- 액션 : 검색결과를 어떻게 처리할 것인지를 지시

 

TIP : 패턴

 - type : 파일의 타입을 기준으로 검색,

f(일반파일), d(디렉토리), l(심볼릭 링크파일), c(문자디바이스파일)

 - perm : 파일의 허가권을 기준으로 검색 허가권을 절대수 값으로 설정해야함.

r(4),w(2),x(1) : 값을 설정하여 3개의 8진수 값으로 설정 예) rwx의 경우 755가 패턴값

 - links : 링크의 수를 기준으로 검사한다. 2보다 큰경우 +2, 2보다 작은경우 -2, 2인경우 2가 패턴

 - user : 파일 소유자 계정명을 기준으로 검색

 - group : 파일 소유자의 그룹명을 기준으로 검색

 - size : 파일의 block크기를 기준으로 검색 +-값을 사용하여 패턴을 지정

 - atime : 파일의 접근시간을 기준으로 검색,

+3/-3/3 형식을 사용하여 접근시간이 3일 이상인/3일 이하인/ 3일인 파일을 검색

 - mtime : 파일의 수정시간을 기준으로 검색

TIP : 액션

 - print : 파일경로명을 화면에 출력

 - ls : ls -li실행 형태로 화면에 출력

 - exec : -exec \;사이에 정의된 명령을 실행

 - ok : -ok \; 사이에 정의된 명령실행여부를 확인한 뒤 실행

 

2) find – 파일 찾기 예제

 */usr 디렉토리에서 startx 파일이 있는지 검색

# find /usr –name startx -ls

 *파일의 type p인 파이프 파일이 /dev 디렉토리에 있는지 확인

# find /dev –type p –ls
 */sbin
디렉토리에 있는 파일들 중 SetUID가 설정된 파일을 찾아 출력(SetUID설정파일 : 파일이 실행될 때 파일의 소유자의 권한으로 실행되도록 설정된 보안과 연관된 파일

# find /sbin –type f –perm -4000 –ls

 */sbin 디렉토리에 있는 파일들 중 SetUID SetGID가 설정된 파일을 찾아 출력

# find /sbin –type f \( -perm -4000 –o –perm -2000 \) –ls

 

3) grep – 파일내용 검색

파일의 내용을 검색하여 지정한 패턴의 문자열을 가지고 있는 라인을 화면에 출력

정규식 : 패턴을 지정하는 메타문자

실행 : grep [옵션] [패턴] [검색대상]

 - 옵션 :

-i : 대소문자를 구분하지 않음

-l : 패턴이 존재하는 파일의 이름만 출력

-n : 파일 내에서 행 번호를 함께 출력

-v : 패턴이 존재하지 않는 행만 출력

-c : 검색 결과를 출력하는 대신, 패턴과 일치하는 라인의 수를 출력

 - 패턴 : 검색하는 내용 grep이나 egrep은 정규식을 사용하여 패턴을 정의

 - 검색대상 : 검색할 파일명을 지정. 미지정시 키보드로부터 읽어 들인 데이터를 대상으로 검색

 

TIP : 정규 표현식의 메타문자

메타문자

기능

사용 예

사용 예 설명

^

라인의 시작 지시자

‘^root’

root로 시작하는 모든 행

$

라인의 끝 지시자

‘root$’

root로 끝나는 모든 행

.

하나의 문자

‘r..t’

r다음에 두 글자가 나오고 t로 끝나는 문자열을 포함하는 행

*

선행문자와 같은 문자의 0개 혹은 임의개수

‘*root’

0개 혹은 임의 개수의 공백 문자 후에 root로 끝나는 문자열

[]

[]사이의 문자 집합중 하나

‘[Rr]oot’

root Root를 포함하는 행

[^ ]

문자집합에 속하지 않는 한 문자

‘[^A-K]oot’

A K사이의 범위에 포함되지 않는 한 문자와 oot가 붙어있는 행

 

4) grep – 파일내용 검색 예제

 * /etc/passwd 파일에서 user1 단어가 포함된 라인을 찾아 화면에 출력

# grep user1 /etc/passwd

 * /etc/passwd 파일에서 a로 시작하는 라인을 출력

# grep ^a /etc/passwd

 * /etc 디렉토리의 모든 파일 리스트 중 root라는 글자가 포함된 파일명을 출력

# grep –l root /etc/*

 

2. 프로세스 정보 보기

프로세스 : 현재 실행중인 프로그램 -> 메모리를 할당 받는 단위

 

1) ps

 현재 실행 중인 프로세스의 상태를 출력하는 명령

 옵션이 설정되지 않은 경우에는 현재 사용 중인 터미널에서 실행된 프로세스 정보만 출력

실행 : ps [옵션]

 - 옵션 :

-l : 긴 형식으로 출력

-u : 프로세스를 실행한 사용자와 실행 시간을 표시

-a : 다른 사용자들의 프로세스 현황 표시

-x : 터미널 제어 없이 프로세스 현황 표시

-e : 시스템 프로세스에 관한 정보를 출력

-f : 프로세스 상태를 full list로 출력

-ef : 시스템에 실행중인 모든 프로세스중 정보를 긴 형식으로 출력

 

2) ps 예제

 * 옵션 없음 : 현재 터미널에서 실행된 프로세스 리스트를 출력

# ps

PID : 프로세스마다 할당 받는 프로세스 식별 번호

 TTY : 이 프로세스가 실행된 터미널 이름(콘솔마다 첫 실행은 pts/0, 두번째는 pts/1 이런식) ?표로표시 될때는 부팅시부터 실행된 것.

 TIME : CPU를 사용한 총 누적시간 

CMD : 프로세스의 이름

 

TIP : 데몬 프로세스

 현재 실행중인 프로그램

-커널상에서 백그라운드 모드로 실행되는 프로세스

-커널에 상주해 있으면서 클라이언트의 서비스 요청을 있을 때만 동작하는 프로세스

-클라이언트의 요청이 없는 경우 Sleep 상태에 있어 CPU에는 부하를 주지 않지만, 시스템의 자원(메모리)을 상당량 차지함.

-불필요한 데몬이 구동되지 않도록 데몬을 관리하는 보안상 매우 중요함.

-특정 데몬이 구동중인지 확인하는 명령 : # ps –ef | grep [데몬프로세스이름]

 

 * aux : 시스템에 실행중인 모든 프로세스 리스트 출력

# ps –aux | more

USER : 프로그램을 실행한 사용자 계정명

%CPU : 해당 프로세스가 사용한 CPU점유율을 백분율로 표시

%MEM : 해당 프로세스가 사용한 메모리 사용율 비율을 백분율로 표시

VSZ : 할당받은 가상메모리의 크기(프로세스의 크기)를 표시

STAT : 프로세스의 상태 정보

 - R : 현재 CPU를 할당받아 실행중이거나 실행할수 있는 상태

 - S : Sleep상태

 - T : 작업제어 신호에 의해 정지되었거나 추적중에 있는 상태

 - X : 완전히 종료된 상태

 - Z : 종료되었지만 프로세스 테이블에서 삭제되지 않은 상태

 - COMMAND : 프로세스를 실행에 사용된 명령어

 

3) pgrep

 특정 프로세스를 탐색하여 사용자에게 보여주는 명령

 ps 명령과 grep 명령을 조합해서 사용한 것과 같은 효과를 냄

 구동중인 서비스 데몬을 쉽게 찾을 수 있음.

ps –e | grep  à  pgrep

실행 : pgrep [옵션] [프로세스명] [패턴]                         결과 : PID 출력

- 옵션 :

 -l : 프로세스 ID와 함께 프로세스 이름도 출력

 -f : 검색 패턴으로 명령어를 포함하여, 경로명, 옵션, 아규먼트등을 함께 사용

 -x : 검색하려는 패턴과 정확히 일치하는 프로세스를 검색하여 출력

 

4) pgrep 예제

 * pgrep을 사용하면 실제 구동중인 서비스 데몬의 프로세스 ID 출력

# ps –ef | grep syslogd

# pgrep syslogd

 * -f 옵션을 –l 옵션과 함께 사용 : syslogd 데몬이 실행될 때 사용한 옵션, 아규먼트 등을 출력

# pgrep –fl syslogd

 

5) top 영역

 시스템 시작정보, CPU,메모리 사용률, 상태 정보, swap가상메모리 사용률에 대한 정보를 포함하여 프로세스 리스트를 출력,

 CPU사용률이 높은 순서로 프로세스를 정렬하여 화면 크기단위로 출력

실행 : top [-d delay]   ß delay : 갱신될 초를 지정

 

6) top 예제

 * 옵션 없이 사용하면 실시간으로 시스템 상태와 프로세스 상태를 출력

 

7) pstree

 프로세스의 상속관계를 쉽게 볼수있도록 리스트를 출력,

실행 : pstree [옵션]

 -옵션 :

-p : PID와 함께 출력

-U : 특정사용자의 프로세스만 출력

init 서비스 데몬이 가장먼저 실행

모든 프로세스들은 부모, 자식간의 관계를 가짐

 

8) kill

 실행중인 프로세스에게 신호를 전달하는 명령. 프로세스 종료하는 명령은 아니나, 옵션 없이 사용하면 프로세스를 종료하는 신호인 15번 신호를 해당 프로세스에게 전달하여 신호를 받은 프로세스는 종료됨.

실행 [-l] [-시그널번호] 프로세스ID

 

9) kill 예제

 * -l 옵션 : kill명령으로 전달 가능한 시그널 리스트를 표시

 * sleep명령을 실행하여 sleep프로세스의 PID 정보를 확인

# sleep 100 &                  ßsleep프로세스 실행

# ps –f | grep sleep             ßsleep프로세스 확인

# kill [sleep 프로세스의 PID]

 

 * kill명령 뒤에 -9 옵션을 넣으면 프로그램을 강제 종료

# kill -9 [Sleep 프로세스의 PID]

 

10) killall

 프로세스 이름을 이용해 프로세스를 kill

실행 : killall 프로세스명

 

11) pkill

 특정 프로세스에게 시그널을 전달하는 명령. PID를 사용하지 않고 이름으로 전달

실행 : pkill –신호 프로세스명

 * sleep 100 &      ß sleep프로세스 실행

 * pgrep –l sleep  ß sleep프로세스 정보 확인

 * pkill -9 sleep                   ß sleep프로세스 강제종료

 

 

3. 작업제어하기

1)포그라운드, 백그라운드 작업

작업제어란 프로그램을 포그라운드로실행할것인지, 백그라운드로 실행할것인지 결정하고 결정된 상태를 바꾸는 작업

 

  - 포그라운드 작업 :

 

 - 백그라운드 작업

 

 - 작업 전환

 


2)
포그라운드, 백그라운드 작업 전환 예제

 * 백그라운드 상태로 프로세스 실행 : 명령어 &

# sleep 1000 &

# jobs

 * 백그라운드 프로세스를 포그라운드로 작업 전환 : fg %[작업번호]

# fg %1

 * 포그라운드 프로세스를 백그라운드로 작업 전환 : <Ctrl> + <z>, bg %[작업번호]

# fg %1     실행중 <Ctrl> + <z>를 눌러서 멈춘후

# bg %1

 * 백그라운드로 작업중인 프로세스 중지 : kill-STOP %[작업번호]

# kill –STOP %1

 * 백그라운드로 실행중인 프로세스 종료 : kill %[작업번호]

# kill %1

 

3) 프로세스 확인하기, 종료하기 , 작업제어하기

프로세스 확인

 프로세스 확인 : ps

 특정 프로세스 검색후 표시 : pgrep

 시간 프로세스 감시 : top

 프로세스 상속구조 확인 : pstree

프로세스 종료

 kill -9 PID

 pkill -9 프로세스 이름

 killall 프로세스 이름

작업제어

 백그라운드 작업 : 프로그램 &

 포그라운드 작업 : 프로그램

 백그라운드 -> 포그라운드 : fg % 작업번호

 포그라운드 -> 백그라운드 : bg % 작업번호

 

 

 

저작자 표시 비영리 동일 조건 변경 허락
신고

'programing > linux' 카테고리의 다른 글

리눅스 쉘  (0) 2009.10.07
vi편집기  (0) 2009.10.07
리눅스 기본명령어(2)  (0) 2009.10.07
Posted by 대절님

댓글을 달아 주세요



티스토리 툴바