diff 명령어
* 두개의 폴더 비교 후 한쪽만 있는 파일을 찾을 경우
Ex) diff -r dir1 dir2 | grep Only
---------------------------------------------------------------------------------
scp 명령어
scp -[옵션] [보내는파일] [받는서버 계정]@[받는서버 URL]:[받을 위치 절대 경로]
-r = recursive 하위 폴더 포함 모두 복사
-p = preserve 권한 및 속성 유지
-C = compression 압축
Ex) scp -rp ./test.txt admin@172.10.10.33:/home
---------------------------------------------------------------------------------
rsync 명령어
rsync -[옵션] [보낼파일] [받을위치]
rsync -[옵션] [서버 계정]@[파일 URL]:[받을 경로]
-v : 진행상황을 상세히 보여줌
-r : 지정한 디렉토리의 하위 디렉토리까지 재귀적으로 실행
-p : 버전속성 보존
-z : 데이터압축 전송
-b : 낡은 파일은 ~가 붙음
-e : ssh(rsh) 전송암호화
-a : archive mode(심볼릭 링크, 속성, 퍼미션, 소유권 등 보존)
--stats : 결과보고
--delete : 원본 서버에 없는 파일은 백업 서버에서 삭제
--exclude : 제외할 파일 지정
--bwlimit : 대역폭(전송속도)제어
--max-size : 설정한 용량 이상의 파일 제외(2.6.4 추가)
--min-size : 설정한 용량 이하의 파일 제외(2.6.7 추가)
Ex) rsync -avz admin@222.1.11.154:/home/admin/src /home/admin/dest
(현재 서버의 /home/admin/dest 폴더에 222.1.11.154 서버의 /home/admin/src 폴더를 admin 계정을 통해 동기화)
---------------------------------------------------------------------------------
whereis 명령어
Ex) whereis cd -> 명령어의 위치 검색
---------------------------------------------------------------------------------
tail 명령어
-n : 파일의 마지막부터 n번째까지 표시
-c num[단위] : 마지막 num 바이트를 표시(단위= b(byte), k(kilo byte), m(mega byte) 기본 b)
-q : 출력전에 파일이름을 미표시
-v : 출력전에 파일이름을 표시
---------------------------------------------------------------------------------
grep 명령어
grep [OPTION] PATTERN [FILE]
-w : 해당 단어만 검색할 때 사용
-v : PATTERN과 일치하지 않는 것을 찾음
-n : 찾은 line number 출력
-i : 대소문자 구별하지 않음
-c : PATTERN과 일치하는 line 수를 출력
-r : 하위 dir검색
--exclude=FILE_PATTERN 특정 파일을 검색하지 않음
--include=FILE_PATTERN 특정 파일만 검색함
--exclude-dir=PATTERN 특정 이름의 dir은 검색에서 제외
-F : 정규식 미사용
-E : 확장 정규식 사용
-C num : 지정한 'num' 라인만큼 일치하는 라인의 위와 아래의 내용을 표시
-A num : 지정한 'num' 라인만큼 일치하는 라인의 아래 라인을 표시
Ex)
grep -n [A-Z] test.txt -> 대문자 A-Z를 하나라도 포함하면 검색
---------------------------------------------------------------------------------
디스크 용량
명령어 : df (disk free)
df [option] [filesystem | file]
* option
- k : Kilobyte 단위
-m : Megabyte 단위
-h : Mega, Giga 등으로 표시
---------------------------------------------------------------------------------
폴더 용량
명령어 : du
* option
- a : 디렉토리에 있는 파일 크기 출력
- s : 총 사용량만 출력
- k : Kilo 단위 출력
- h : 잘모르지만 보기 편함
---------------------------------------------------------------------------------
리눅스 메모리 용량 확인
cat /proc/meminfo | grep MemTotal
---------------------------------------------------------------------------------
환경변수 확인
export
env
---------------------------------------------------------------------------------
계정 관리
* 아래의 명령어가 bash에 등록되어 있지 않을경우 /usr/sbin/[명령어]
계정 리스트 확인
- cat /etc/passwd ([계정명] : [패스워드] : [UID] : [GID] : [홈디렉토리] : [로그인 쉘 위치])
계정 패스워드 확인
- cat /etc/shadow ([계정명] : [패스워드] : [암호생성일] : [암호변경가능최소시간] : [초기 암호변경 없이 사용 유효기간] : [만료 지정시 만료 경고일 수])
그룹 리스트 확인
- cat /etc/group ([그룹명] : [그룹패스워드] : [GID] : [그룹 구성원 사용자 이름])
계정 추가
- useradd [option] [계정명] ex)useradd administrator
{ -p : pwd 지정, -u : uid 변경, -g : 기본그룹 지정, -d : 사용자의 기본 홈 디렉토리 변경 }
계정 삭제
- userdel [option] [계정명] ex)userdel administrator
{ -f : 강제삭제, -r : 계정 생성시 만들어진 모든 정보 삭제, -h : 도움말 }
계정 수정
- usermod [option] [인자값] [계정명]
{
-p : 패스워드 지정 ex) usermod -p [패스워드] [계정명]
-u : UID 변경 ex) usermod -u [UID] [계정명]
-d : 홈디렉토리변경 ex) usermod -d [경로] [계정명] (사용해본 적 없음)
-g : 그룹 지정 ex) usermod -g [그룹명] [계정명] (계정명이 맞는 것으로 보임)
-l : 계정명 변경 ex) usermod -l [바뀔 명칭] [계정명]
}
---------------------------------------------------------------------------------
passwd 명령
패스워드 설정
- passwd [계정명]
1. old pwd
2. new pwd
3. check new pwd
---------------------------------------------------------------------------------
Samba
윈도우 삼바 로그아웃
- cmd -> net use /delete \\주소
---------------------------------------------------------------------------------
AWK
awk 시스템 변수
$0 : 입력라인 모두
$n : 입력라인에서 n번째 필드 값
ARGC : 명령 라인 인자수를 갖는 변수
ARGV : 명령 라인의 인자를 포함하는 배열
ENVIRON : 환경변수들을 모아둔 관계형 배열
FILENAME : 현재 파일명
FNR : 입력파일의 레코드 총수(라인수)
NF : 현재 레코드 필드 수
NR : 현재 레코드 번호
OFMT : 숫자에 대한 출력 포맷
OFS : 출력필드 구분, 빈 라인을 기본으로 사용
ORS : 출력 레코드 구분 (newline을 기본으로 사용)
RLENGTH : 지정한 패턴으로 검색되어 나온 문자열의 길이
RS : 입력 레코드 구분(newline을 기본으로 사용)
RSTART : 지정한 패턴으로 검색되어 나온 문자열의 앞부분
grep -r 'servlet-class' */WEB-INF/web.xml | awk -F '[.]' '{print $2}'
'servlet-class' 라는 문구로 현재 폴더 전체의 WEB-INF 아래에 있는 web.xml을 Grep
한 뒤 grep의 결과를 awk로 재출력하는 함수
awk의 -F 옵션은 구분자 설정 하는 옵션으로 '[.]' 구분자는 .을 기준으로 Grep 결과를 출력한다. '{print $2}'는 awk 구분자로 구분 한뒤 2번째 필드의 값을 나타낸다
---------------------------------------------------------------------------------
[find 명령어 조합]
find . option -exec command {} \;
*원하는 파일 find -exec 와 원하는 명령어 입력 {} \;
[하위디렉토리의 권한을 755로 변경]
find . -type d -exec chmod 755 {} \;
[하위 디렉토리의 모든 파일의 권한을 644로 변경]
find . -type f -exec chmod 644 {} \;
* 특정폴더 비교 후 특정 문구 제거 및 정렬
diff -rq folder1 folder2 | grep -v .cvs | sort
* find and cp 조합
find . -mtime -1 | xargs cp -t targetDir
find . -mtime -1 -exec cp {} targetDir \;
* 특정확장자의 파일을 찾은 뒤 내용 검색
find . -name "*.xml" | xargs grep "test"
-> 확장자가 xml인 파일 중에서 test라는 문구를 검색
* 하위 디렉토리 중 폴더 용량 체크
find . -type d | xargs du -sh
* 5분 전에 수정된 파일 목록
find . -type f -mmin -5 | xargs ls -l
* 검색대상 폴더 중 심볼릭 링크의 파일까지 검색하고 싶은 경우
find . -L 옵션을 사용
---------------------------------------------------------------------------------
[압축, 해제 관련 명령어]
- tgz 압축 해제 : tar -xvzf [filename].tgz
- tgz 압축 : tar cvzf [filename].tar.gz [target(file or directory]
- tar.bz2 압축 해제 : tar -jxvf [filename].tar.bz2
- tar option : -c(압축), -x(해제), -v(크기표시), -f(사용할 파일의 tar 지정), -z(tar에서 gzip으로 할때 붙임)
- tar 압축 옵션
c: 압축
z: tar 로 묶은 후 gzip 압축
v: 압축과정을 출력(압축 해제도 동일)
p: 소유권등 퍼미션을 유지
f: 지정한 파일명으로 압축
P: 지정된 절대경로로 압축되며 동일 옵션 지정 시 동일 경로로 풀림(디렉토리가 없으면 생성됨)
- 기본 압축 방법 test.tar 라는 이름으로 a.txt, b.pdf, c.doc를 압축함
Ex) $ tar cvf test.tar a.txt b.pdf c.doc
---------------------------------------------------------------------------------
[IP 확인]
/sbin/ifconfig
[리눅스 버전 확인]
rpm -qa *-release
/etc/*-release
uname -r
/etc/issue
[리눅스 비트 확인]
1. uname -a -> i386/i686(32비트), IA64(64비트)
2. getconf LONG_BIT
3. file /sbin/init
댓글
댓글 쓰기