일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 붙여넣기 단축키
- 삼성멀티캠퍼스SQL
- 엑셀에서 콤마를 제외한 숫자 개수 세기
- POP폰트
- AIX NFS
- 바탕화면에 원격 데스크톱 연결 바로가기 만들기
- AIX 버전확인
- 스타워즈 영화 감상 순서
- AIX NAS NFS
- 레드햇 버전확인
- 무료 이미지 제공 사이트
- net user 사용법
- 윈도우 10 프리징 해결하기
- OpenSSL 업데이트
- 오라클팁
- 헤드퍼스트SQL
- 오라클DB팁
- 한글 기호 자동변환 해제
- 금리와 물가와의 상관관계
- javascript redirection code
- 업무에 바로 쓰는 SQL
- 작업표시줄 먹통현상 해결하기
- 윈도우10 먹통현상 해결하기
- 복사 단축키
- 부자의 그릇 요약
- 잘라내기 단축키
- 메타버스 용어
- ie모드 해제
- 윈도우 10 슬라이드 종료 단축키 만들기
- 롤오버 기간을 설정한 비밀번호 마이그레이션 방법
- Today
- Total
Today is Present.
05 파일검색과 명령어검색 실무 본문
# find 의 파일검색 기본사용법 익히기
[root@localhost ~]# find / -empty -exec ls -l {} \; (띄어쓰기 주의)
// 파일의 용량이 0이거나 비어있는 디렉토리를 검색할 때 유용한 방법이다. 여기서 주의할 것은
"-exec ls -l \;" 에서 맨 마지막의 { }와 \; 사이는 반드시 공백을 두어야 한다.
{ }와 \;을 붙이게 되면 정상적인 검색이 되지 않는다.
[root@localhost ~]# find / -uid 500 -exec ls -l {} \;
[root@localhost ~]# find / -user morphys -print
[root@localhost ~]# find /home/morphys -name *.dat -exec ls -l {} \;
[root@localhost ~]# find ~sulinux -name *.dat -exec ls -l {} \;
# 검색된 파일을 바로 삭제하는 find 사용법
[root@localhost ~]# find ~bible -name *.bak -exec ls -l {} \;
[root@localhost ~]# find ~bible -name *.bak -print -exec rm -f {} \;
[root@localhost ~]# find ~bible -name *.bak -exec ls -l {} \;
[root@localhost ~]# find / -name access_log -print -exec rm -f {} \;
[root@localhost ~]# find /home -name error_log -print -exec rm -f {} \;
# 파일용량이 큰 파일들을 모두 검색하여 처리하기
[root@localhost ~]# find / -size +100M -exec ls -lh {} \; // h옵션 : human-readable
# 지정한 퍼미션을 가지고 있는 파일 검색하기
[root@localhost ~]# find / -perm 4755 -exec ls -l {} \;
# 파일의 변경시간을 기준으로 원하는 파일 검색하기
[root@localhost ~]# find /home/morphys -mmin 5 -exec ls -l {} \; (5분 전에 변경된 파일)
[root@localhost ~]# find /home/morphys -mmin +10 -exec ls -l {} \; (10분 이전에 변경된 파일)
[root@localhost ~]# find /home/morphys -mmin -10 -exec ls -l {} \; (10분 이내에 변경된 파일)
[root@localhost ~]#
[root@localhost ~]# find / -atime -100 -exec ls -l {} \; (최근 100시간 이내에 사용된 파일)
[root@localhost ~]# find / -atime +100 -exec ls -l {} \; (최근 100시간 이전에 사용된 파일)
[root@localhost ~]# find / -mtime -1 -exec ls -l {} \; (최근 1시간 이내에 변경된 파일)
[root@localhost ~]# find / -mtime +1 -exec ls -l {} \; (최근 1시간 이전에 변경된 파일)
# 지정한 파일보다 더 최근에 사용된 적이 있거나 변경된 적이 있는 파일 검색
[root@localhost ~]# find / -anewer /home/morphys/tempfile -exec ls -l {} \;
// /home/morphys/tempfile 이라는 파일보다 더 최근에 액세스된 적이 있는 파일을 보여준다.
[root@localhost ~]# find / -newer /home/morphys/tempfile -exec ls -l {} \;
// /home/morphys/tempfile 이라는 파일보다 더 최근에 변경된 적이 있는 파일을 보여준다.
# 읽기 또는 실행, 쓰기가능한 파일을 검색하기
- executable : 실행 가능한 파일 검색
- readable : 읽기 가능한 파일 검색
- writable : 쓰기 가능한 파일 검색
[root@localhost ~]# find /home /user -executable \ ! -writable -print
/home 디렉토리와 /user 디렉토리를 대상으로 실행 가능하지만 쓰지 못하는 파일을 대상으로 검색
# 특정 파일타입의 파일들만 검색하기
-type b : 블록장치 파일
-type c : 문자장치파일
-type d : 디렉토리
-type p : FIFO파일(First In First Out)
-type f : 일반파일(regular file)
-type l : 심볼릭 링크파일(symbolic link file)
-type s : 소켓파일(socket file)
[root@localhost ~]# find /dev -type b -exec ls -l {} \;
[root@localhost ~]# find /dev -type c -exec ls -l {} \;
[root@localhost ~]# find /dev -type d -print
[root@localhost ~]# find /etc -type f -exec ls -l {} \;
# root 소유의 SetUID, SetGID, StickyBit 파일을 검색하기
[root@localhost ~]# find / -user root -perm 4755 -exec ls -l {} \;
[root@localhost ~]# find / -user root -perm 4755 -exec ls -l {} \;
[root@localhost ~]# find / -user root -a -perm 4755 -exec ls -l {} \;
[root@localhost ~]# find / -user root -and -perm 4755 -exec ls -l {} \; // and 조건
[root@localhost ~]# find / -user root -o -perm 4755 -exec ls -l {} \;
[root@localhost ~]# find / -user root -or -perm 4755 -exec ls -l {} \; // or 조건
# 시스템 보안점검시 반드시 검색해야 하는 몇가지 find 검색 방법
[root@localhost ~]# find / -name .rhosts -exec ls -l {} \;
[root@localhost ~]# find / -name .bash_history -exec ls -l {} \;
[root@localhost ~]# find / -nouser -o -nogroup -exec ls -l {} \;
# 지정한 문자열을 가지고 있는 파일 검색하기
[root@localhost ~]# find /home -type f -exec egrep -i "linux" /dev/null {} \;
# grep 을 이용한 문자열 검색 및 편집처리 실무
. : 아무문자나 한문자를 의미함
* : 어떤 문자열이나 문자길이에 무관한 문자열을 의미함
^ : 행의 시작 문자를 의미함
$ : 행의 마지막 문자를 의미함
[ ] : 한문자 길이의 패턴리스트
[^ ] : 지정된 문자들 이외의 문자들을 의미함
\ : 뒤에 오는 문자를 문자그대로 인식(특수문자를 표현할때 사용)
/< : 단어의 시작 위치를 의미함
/> : 단어의 마지막 위치를 의미함
# 지정된 파일 내에서 특정 문자 찾기
[root@localhost ~]# grep apache README
[root@localhost ~]# grep -c apache README // "apache" 라는 문자를 포함한 행이 몇개 인지 ?
# 지정된 파일 내에서 특정문자가 존재하지 않는 행만 검색하기
[root@localhost ~]# grep -v apache README
// README 파일에서 "apache" 라는 문자열을 포함하지 않는 행의 개수는 ?
[root@localhost ~]# grep -vc apache README
# 지정된 파일 내에서 대소문자 구분없이 특정문자 검색하기
[root@localhost ~]# grep -i apache README
[root@localhost ~]# grep -ic apache README // 행수 반환
[root@localhost ~]# ls -l /etc | grep "^d" // 특정 디렉토리 내에서 디렉토리리스트만 확인하기
[root@localhost ~]# ls -l /etc | grep "^-" // 특정 디렉토리 내에서 파일리스트만 보기
[root@localhost ~]# ls -l /etc | grep "^b" // 특정 디렉토리 내에서 블록장치 파일만 보기
[root@localhost ~]# ls -l /etc | grep "^c" // 특정 디렉토리 내에서 문자장치 파일만 보기
[root@localhost ~]# ls -l /etc | grep "^l" // 특정 디렉토리 내에서 심볼릭장치 파일만 보기
# 실무에서 사용하는 awk 의 유용한 활용법
// passwd 파일에서 각 계정사용자 ID만 출력
[root@localhost ~]# cat /etc/passwd | awk -F: '{print $1}'
// passwd 파일의 각각의 행들을 ":"(콜론)으로 구분하여 첫번째 항목인 ID와 여섯번째 항목인 홈디렉토리를 결과로 출력하라
[root@localhost ~]# cat /etc/passwd | awk -F: '{print $1 " "$6}'
// access_log 파일에 유일 IP주소를 카운트할 수 있다. 웹페이지를 방문한 유일IP주소를 카운트한다.
[root@localhost ~]# cat access_log | awk '{print $1}' > imsi ; sort -u imsi > imsi3 ; wc -l imsi3
// 로그파일의 맨 첫번째 항목인 IP 주소부분만을 imsi 파일에 저장한다.
// imsi 파일에 저장된 IP주소들을 유일한 IP 로 정렬한 후에 이 데이터를 imsi3에 저장한다.
// 즉, imsi3 파일에는 중복되지 않은 유일한 IP 주소리스트들이 저장된다.
// imsi3 에 저장된 행을 카운트한다.(wc -l imsi3)
# 명령어의 절대경로를 확인하는 which 활용법
[root@localhost ~]# which perl1
[root@localhost ~]# which netstat
/bin/netstat
[root@localhost ~]#
[root@localhost ~]# which -a find
/bin/find
/usr/bin/find
[root@localhost ~]#
'리눅스 학습' 카테고리의 다른 글
07 리눅스 로그시스템 이해와 활용 (0) | 2020.11.30 |
---|---|
06 시스템 실행상태 모니터링 실무 (0) | 2020.11.30 |
04 파일과 디렉토리 관리실무 (0) | 2020.11.30 |
03 리눅스 시스템 날짜와 시간관리 실무 (0) | 2020.11.30 |
02 리눅스 네트워크 관리 실무 (0) | 2020.11.30 |