Unix Admin (4): 관리 명령어

2015. 12. 22. 13:13

#tar

옵션

* 여러 파일을 하나의 파일로 압축하기 위해서는 우선 tar 명령어를 통해 묶어야 한다.

- f : 묶음 파일명 지정, 생략시 tape로 백업


참고) 파일 정보 확인 --> file 파일명



#top

CPU를 사용하는 프로세스를 확인

top 실행 중 i --> 유휴(idle) process는 보여주지 않음

  *idle process : memory에 프로그램이 올라와 CPU가 실행할 수 있는 상태이나, 현재 사용되고 있지 않는 프로세스 ==> wait queue에 있는 process

  * run queue

  * wait queue 

d --> refresh 시간을 조정

u --> 특정 user만 모니터링

c --> 실제로 실행된 명령행까지 모니터링

f --> top에 표시되는 필드(컬럼)을 수정할 수 있음

h --> 도움말 보기

 

#find

find [경로][옵션][조건]


예제) find /home -name aaa

/home 경로 밑에서 파일명을 조건으로 파일명이 aaa인 파일을 찾겠다.


find /home -user linux

/home 경로 밑에서 유저명을 조건으로 소유자가 user인 파일을 찾겠다.

응용1 (파이프 이용)

find /home -user user2 | ls -la


응용2 (-exec 이용)

find ./ -perm 775 -exec ls -ld {} \;


#which

PATH에 설정된 디렉토리만 검색


실습 예제)

linux@linux-VirtualBox:~/find$ cat > main.c

#include <stdio.h>

int main()

{

  printf("Hello World!\n");

  return 0;

}

linux@linux-VirtualBox:~/find$

linux@linux-VirtualBox:~/find$

linux@linux-VirtualBox:~/find$

linux@linux-VirtualBox:~/find$ cat main.c

#include <stdio.h>

int main()

{

  printf("Hello World!\n");

  return 0;

}

linux@linux-VirtualBox:~/find$ gcc -o abk main.c


abk --> 안됨


--PATH 등록하기
PATH=$PATH:.


./abk

--> Hello World!


which abk

--> ./abk


cd ..

which abk

--> 없음


abk

--> 오류발생


==> 상위 디렉터리에서는 오류가 발생한다.


--PATH 다시 등록

PATH=$PATH:/home/linux/find


which abk

--> /home/linux/find/abk


abk

--> Hello World!


※PATH의 의미: 특정 명령어를 실행할 경우, OS는 PATH에 설정된 디렉터리들을 순서대로 조회하여 해당 명령어가 있는지 조사 한후, 해당 명령어가 있을 경우 실행해준다.


#grep

특정 문자열(패턴)이 어느 파일의 어느 부분에 있는지를 검색

grep <찾는내용> <파일이름>

grep은 해당 문자열(패턴)이 있는 라인 전체(한 줄)을 출력한다.


예제) grep user /etc/passwd


참고) 리다이렉트 - (파이프, |)

ls -l

--> 표준 출력

ls -l | grep main

표준출력을 grep의 입력으로 보내겠다. (ls -l의 결과가 하나의 txt 파일이라고 볼 수 있음)


응용)

linux@linux-VirtualBox:~/src/linux-4.3.3/init$ find . -user linux -exec grep start_kernel {} \;

--> 이건 됨
--> find로 찾은 각각의 파일명이 {}에 인수로 들어가서 전체 파일 개수 n개 만큼 n번 반복해서 grep 명령이 수행된다고 볼 수 있다.
 * find -exec <command> \; --> 찾은 파일 대상으로 특정 명령을 수행하기 때문.
 cf) 어떤 파일이 해당 문자열을 갖고 있는지 찾으려면 ?
  --> grep start_kernel *

linux@linux-VirtualBox:~/src/linux-4.3.3/init$ find . -user linux | grep start_kernel

--> 이건 안됨


*간단히, 특정 이름의 파일을 찾을 때는 | (파이프)를, 내용에 특정 문자열이 있는 파일을 찾으려면 -exec를 이용하면 된다.


-- 대소문자 구분없이 찾기

linux@linux-VirtualBox:~/find$ grep variable *

aaa.c:variable


linux@linux-VirtualBox:~/find$ grep -i variable *

aaa.c:variable

bbb.c:VARIABLE


linux@linux-VirtualBox:~/find$ grep -i VARIABLE *

aaa.c:variable

bbb.c:VARIABLE


grep -R --> 현재 디렉토리 뿐만 아니라 하위디렉터리까지 조회하는 옵션


곰돌곰둘 외부교육정리/4.UNIX Admin (2015.12)