반응형

PATH=/ PATH변수에 명령어의 경로를 등록
 
which 명령어는 PATH에 등록된 명령어의 위치를 검색하는 명령어

-usr -bin
-sbin
-bin 일반 명령어 디렉토리
-sbin 시스템 명령어 디렉토리 (root만 사용가능)

PATH=/usr/bin:/usr/sbin
-> bin과 sbin 의 명렁어 모두 찾아 줌

 

 

파일 검색 : which, whereis, locate, find
 
 1.  whcih   : PATH변수에 등록된 경로에서만 명령어의 위치를 검색한다.
    사용법 - which 명령어
 
 2. whereis : 명령어와 문서파일을 검색한다.

 3.   locate  : 이름이 포함된 모든 파일들 (색인) 검색
      다른 명령과 달리 실제 검색을 하지 않고, 색인에서 검색
      검색속도가 가장 빠른 장점이 있다.
      주기적으로 색인을 갱신해야한다. -updatedb

4.   find     : 다양한 옵션들을 이용하여 정확한 검색한다.
      속도가 가장 느리다.
   사용법 - find [검색시작경로] [옵션들] [조건] [액션]
                 find           /etc          -name   network -print
   -> /etc 디렉토리부터 이름이 network인 파일(디렉토리)을
      검색하여 결과를 출력하라.

 

옵션

-xdev                   : 검색시 디바이스 디렉토리들을 검색에서 제외
-empty                 : 빈 파일/디렉토리 검색
-name  파일명     : 파일/디렉토리명으로 검색 
-type  파일종류   : f (일반파일), d (디렉토리파일), s (소켓파일)
-user  계정명      : 특정 계정으로 소유인 파일/디렉토리 검색
-nouser               : 소유자가 없는 파일/디렉토리 검색

-mtime +/-숫자   :수정일, -mtime 5 수정한지 5일이된 파일/디렉토리
                                        -mtime +5 수정한지 5일이 초과된 파일/디렉토리
                                        -mtime -5 수정한지 5일이 미만인 파일/디렉토리

-mmin  +/-숫자 : 수정분,  -mmin 5 수정한지 5분이된 파일/디렉토리
                                        -mmin +5 수정한지 5분이 초과된 파일/디렉토리
                                        -mmin -5 수정한지 5분이 미만인 파일/디렉토리

 

-atime +/-숫자 : 실행일
-amin  +/-숫자 : 실행분
-ctime +/-숫자
-cmin  +/-숫자

-size  +/-용량   : 용량(M/G)

-perm u=rwx    : rwx------- 권한의 파일/디렉토리
-perm a=rx      : rx-rx-rx-  권한의 파일/디렉토리
-perm -4000    : --s------  권한만 확인하고 그외 권한은 비교하지 않는다.
-perm -u=s      : --s------  권한만 확인하고 그외 권한은 비교하지 않는다.

 

논리연산자

-not                       : 이어지는 옵션을 반대로 바꿀 때 사용한다.

                              -user user1           : user1 사용자의 소유인 ...
                              -not -user user1    : user1 사용자를 제외한 다른 사용자의 소유인 ...
-and, -a                 : 옵션1과 옵션2이 모두 만족하도록 설정
                              -user user1 -and -type d : user1 사용자 소유이면서 디렉토리인
                              -user user1 -a   -type d   파일을 검색할 때 사용
-or , -o                   : 옵션1 또는 옵션2 중 1개이상 만족하도록 설정
                              -user user1 -or -user user2 : user1 사용자 또는 user2 사용자 소유인 ...

   연산자의 우선순위 : -not -> -and -> -or

 

 

    액션
-print  : 검색된 결과를 경로와 이름으로 출력 (기본값으로 생략시 자동으로 설정)
-ls     : ls -lsi 옵션으로 검색된 결과로 출력
-delete : 검색된 결과를 출력하지 않고 제거한다.
-exec 명령어 {} \; : 검색된 결과를 출력이나 제거하지 않고 별도의 명령어를 이용하여 처리한다.
-ok 명령어 {} \;   : 검색된 결과를 출력이나 제거하지 않고 별도의 명령어를 이용하여 처리하고,
    처리시마다 [y/n] 질문하여 실행 여부 설정할 수 있다.

 

명령어와 명령어를 이어주는 특수문자들
     (pipe)
 1. command1 | command2  : command1의 실행 결과를 command2의 입력값으로 전달

    rpm -qa | sort | grep ^python
                  정렬           ^:시작하는

 2. command1 && command2 : command1의 정상으로 실행이 끝나면 이어서 command2를 실행한다.
  
 3. command1 ; command2  : command1의 정상 실행 여부와 상관없이 이어서 command2를 실행한다.

 

★연습문제★
others에 x(execute)권한이 있는 SetUID bit가 있는 파일들만 검색
[root@ns1 ~]# find /test -perm -o=x -perm -u=s -type f -print

리눅스 전체 시스템(/)에서 others에 x(execute)권한이 있는 SetUID bit가 있는 파일들만 검색
[root@ns1 ~]# find / -perm -o=x -perm -u=s -type f -print

/usr/bin 디렉토리에서 setuid bit가 설정된 파일들 중 other가 실행할 수 없는 파일들만 검색
[root@ns1 ~]# find /usr/bin -perm -u=s -and -type f -and -not -perm -o=x -print

/test 에서 빈(empty) 파일/디렉토리를 검색
[root@ns1 ~]# find /test -empty -print

/etc 디렉토리 network 이름으로 되어있는 파일들만 검색
[root@ns1 ~]# find /etc -name network -and -type f -print
[root@ns1 ~]# find /etc -name network -and -type f -exec ls -lh {} \;

/etc 디렉토리 용량이 3M를 초과하는 파일을 검색하여 현재 디렉토리 복사한다.
[root@ns1 ~]# find /etc -size +3M -and -type f -exec cp {} . \;

pyton 이름으로 시작하는 패키지들 검사
[root@ns1 ~]# rpm -qa | sort | grep ^python

/share 생성하고, /share 이동하고, /share 에서 /etc 디렉토리를 압축하여 etc.tar 파일 생성
tar cf etc.tar /etc
[root@ns1 ~]# mkdir /share ; cd /share ; tar cf etc.tar /etc

 

 

반응형

+ Recent posts