cmp/diff CMD
diff OPTIONS
-i 대소문자를 구분하지 않음
-c 파일의 이름,날짜 등 파일의 차이점 상세히 출력
--recursive 두 디렉터리 비교할때
cmp
file1 과 file2 가 같은지 확인
diff
file1 과 file2가 다르다면 무엇이 다른지 확인
diff -c comfile1 cmpfile3
파일1과 파일2의 내용을 전체 출력하여 다른점을 비교
-c : 시간과 날짜 같이출력
diff --recursive dir1 dir2
비교 대상 디렉터리의 하위 디렉터리 파일까지 비교
실습
실습2
디렉터리 마이그레이션 작업
sort CMD
# sort /etc/passwd
# sort -r /etc/passwd
# sort -k 3 -n filename (3번째 필드 중심으로 숫자열로 나열)
# sort -t : -k 3 -n -r /etc/passwd (3번째 필드를 중심으로 숫자열로 거꾸로 나열)
실습
# CMD | sort
# CMD | sort -r
# CMD | sort -nr
ps -ef | head | sort
df -k
df -h
du -sk * | sort
du -sk * | sort -n
du -sk * | sort -nr | more
file CMD
어떤 파일인지 확인하는 명령어
리눅스 나 유닉스는 파일의 확장자가 의미가 없다(.txt , .exe ...)
file /etc/passwd
file /bin/ls
(32비트로 컴파일러된 파일)
file /var/run/dtmp
file /etc/rc.d/init.d/sendmail
file /etc *
실습
확장자가 변경되는 예에 대해서
cp -p /etc/passwd file1
cp -p file1 file2
cp -p file1 file3
ls -lh
# zip file.zip file1 file2 file3
# ls -lh
# unzip -l file.zip
# rm -f file?
(알집 목록 확인 후 알집이 아닌 file[123] 삭제)
(인터넷) file.zip ---- 다운로드 ----> file (?)
# mv file.zip file
(묶여있는파일인지 암호가 되어 있는지 알집인지 뭔지 확장자를 알수 없다)
# file file
# mv file file.zip
# unzip file.zip
# ls -lh
# file 명령어로 어떤 종류의 파일인지 확인후 그에 맞는 대응
-------------------------------------------------------------------------------------------------------------------------------------
cmp/diff CMD
# diff httpd.conf httpd.conf.old
# diff --recursive /was1 /was2
sort CMD
# CMD | sort -k 3
# CMD | sort -k 3 -r
# df -k
# du -sk /var /* -s : sum, -k : kbytes */ (var디렉터리 용량 확인)
# cd /var; du -sk * | sort -nr | more (용량별로 정리)
file CMD
# cd /etc; file *
-------------------------------------------------------------------------------------------------------------------------------------
사용자가 알아두면 좋은 명령어
cmp/diff 명령어
sort 명령어
file 명령어
cmp/diff 명령어
두 개의 파일이 동일한지 확인할 때 사용
cmp file1 file2
서로 다른 점이 있으면 다른 내용을 출력
diff
diff file1 file2 // 백업본 확인 용도
diff --recursive dir1 dir2 // 정상적으로 이전 됐는지 확인하는 용도
// 시간이 오래걸림
sort 명령어
명령어 | sort -k 3 // 3번째 필드 문자열 기준 정렬(기본 오름차 순)
명령어 | sort -k 3 -r // 3번째 필드 문자열 기준 정렬(내림차 순)
df -k // 용량 표시
du -sk /var // -s : sum, -k : kbytes
cd /var ; du -sk * | sort -nr | more
file 명령어
운영체제가 다르면 확장자가 다르게 다운로드 되는 경우 발생
이 문제 해결에 사용
예시
# cd /test
# rm -rf /test/*
# cp -p /etc/passwd file1
# cp -p file1 file2
# cp -p file1 file3
# ls -lh
# zip file.zip file1 file2 file3
# ls -lh
# unzip -l file.zip
# rm -f file? // file로 시작하는 파일들 삭제
인터넷에서 file.zip 다운로드 -> file (?) // 확장자가 다르게 받아지는 경우 발생
# mv file.zip file // 다르게 받아진 경우 가정하기 위해서 변경
# file file // zip으로 구성되어 있는 파일인 것을 알 수 있음
# mv file file.zip // 다시 원래대로 변경
# unzip file.zip // 파일압축 해제
# ls -lh // 정보확인
----------------------------------------------------------------------------------
검색 관련 명령어
grep 명령어
find 명령어
grep 명령어
기본 사용법
grep OPTIONS PATTERN file1
# grep root /etc/passwd (# cat /etc/passwd | grep root)
# CMD | grep WORD // 가장 광범위하게 사용
cat /etc/passwd | grep root
rpm -qa | grep talk
ps -ef | grep xinetd
chkconfig --list | grep ssh
옵션
grep -l root /etc/hosts /etc/passwd /etc/group
-l: list files, 여러 파일 중 파일목록 출력
grep -n root /etc/group
-n: number line, 파일에서 root 문자열을 검색하고 라인 번호도 같이 출력
grep -v root /etc/passwd
-v: inverse, 검색 문자열을 제외하고 나머지 출력
grep -i root /etc/passwd
-i: ignore case, 대소문자를 구분하지 않음
grep -w root file1
-w: word, 단어로 검색
grep --color root /etc/passwd
패턴 사용법
grep OPTIONS PATTERN file1
* # grep 'ro*t' /etc/passwd
. # grep 'no...y' /etc/passwd // no로 시작하고 y로 끝나는 것을 출력
^root # grep '^root' /etc/passwd // 해당 문자열 제외하고 출력
root$ # grep 'root$' /etc/group // 라인이 root로 끝나는 것을 출력
[abc] # grep 'user0[123]' /etc/passwd // user1 또는 2 또는 3이면 출력
파일내의 특정 패턴 여러개 검색하기
egrep(Extended grep) 명령어
# cat /var/log/messages | egrep -i '(warn|err|crit|alert|emerg)'
fgrep(Fixed grep) 명령어
# fgrep '^root' file1 // ^root 의 패턴 사용을 무시하고 ^root 검색
응용 사용예시
alias chklog='cat $1 | egrep -i "(warn|err|crit|alert|emerg)"'
chklog /var/log/message
# egrep "fedora|user01" /etc/passwd
출력결과
fedora:x:500:500:fedora:/home/fedora:/bin/bash
user01:x:501:501::/home/user01:/bin/bash
(실무 예) 로그 파일에서 에러 메세지 검색
# cat /var/log/messages | egrep ?i '(warn|err|crit|alert|emerg)'
# egrep -v "fedora|user01" /etc/passwd
(# egrep -v "(fedora|user01)" /etc/passwd)
출력결과
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
(중략)
(실무) 특정한 단어를 제외하고 검색
# ps -ef | grep xinetd | grep -v grep
'Learning > └Essential & Admin' 카테고리의 다른 글
리눅스 압축 과 아카이빙_Unit12 (0) | 2016.10.25 |
---|---|
리눅스 검색관련 CMD_Unit11 (0) | 2016.10.25 |
리눅스 사용자통신명령어_Unit9 (0) | 2016.10.24 |
리눅스 VI 편집기_Unit8 (0) | 2016.10.22 |