카테고리 없음2013. 6. 18. 09:53

 

23장. 파일 위치 검색

 

학습목표

- 리눅스에서 파일을 검색하기 위한 다양한 방법을 알아본다.

 


which <실행파일명>
- PATH에 설정된 디렉토리만 검색
- 절대경로를 포함한 위치 검색

 

 

whereis <실행파일명>
- 실행파일 및 소스, 맨페이지 파일까지 검색

 

 

locate <파일명>
- 매우 빠르고 유용하지만 새로 설치된 파일들이 등록되어 있지 않을 때는 찾을 수 없음
- 파일정보에 대한 데이터베이스 갱신이 매우 중요
- 수시로 updatedb 를 돌려 파일정보 갱신 - crontab 에 등록하여 자동으로 구동시킴

 

 

find [경로] [옵션] [조건] [action]
- 옵션 : -name, -user(소유자), -newer(전,후), -perm(허가권)
- Action : -print(GNU는 디폴트, Unix는 필수입력), -exec
   → 예) # find /etc -name "*conf*"
   →      # find / -user woo
   →      # find ~ -perm 644
   →      # find . -name "*tar*" -exec rm -f {} \;
   →            -> find의결과가 {}안으로 들어감, "\;"는 관례적 필수로 생각하면 됨

 

 

grep [옵션] <패턴> <filename> [files...]
- 파일내에서 지정한 패턴과 일치하는 패턴이 있는 라인 출력
- 옵션 : -n(행번호가 같이 출력), -i(대소문자 구분 안함), -v(패턴이 포함되지 않는 라인 출력)
   → 예) grep linux /etc/*
   → /etc/ 폴더의 linux 라는 단어가 포함된 파일과 라인 출력

 

 

 

[실습]

 

● 파일 위치 검색명령어

 

 

 

 

< 파일 위치 검색명령어 >

 

 

 

which bzip2

bzip2가 어디에 있는지 찾아준다.

 

which gzip

역시 gzip이 어디에 있는지 찾아준다.

 

whereis bzip2

bzip2가 어디에 있는지 찾아주고 man 도움말 페이지의 경로도 알려준다.

 

 

 

이번엔 locate를 이용해 찾아보자.

 

locate bzip2

 

그럼 bzip2라는 글자가 들어간 모든파일을 찾아준다.

 

 

 

locate는 간단한 키워드로 찾기보다는

주로 명확한 파일명을 찾을때 사용한다.

 

 

 

이번엔 find 명령을 사용해보자.

 

find /etc -name grub.conf

살짝 시간이 걸리지만 정확하게 찾아준다.

 

locate에 비해서 정확도가 더 높고

locate로 안찾아질 경우 find로 찾아보면 찾아지는 경우가 가끔 있다.

 

 

 

이번엔 grep 명령을 사용해보자.

 

grep 안녕 ./*

 

"안녕"이라는 글자를 가진 모든 파일을 현 위치부터(/root) 찾는 명령이다.

 

 

 

grep -n 안녕 ./*

 

옵션 -n 을 사용하면 행 번호까지 출력해준다.

 

 

 

 


[정리]


● 다양한 파일위치 검색명령어
 

Posted by 아이맥스
카테고리 없음2013. 6. 18. 09:50

 

24장. 파일 압축과 관리

 

학습목표

- 파일 압축 및 묶기 명령어의 사용법을 익힌다.

 

 

● 파일 압축하기
- # gzip 파일명 -> 파일명.gz 이 생성
- # bzip2 파일명 -> 파일명.bz2 가 생성
- # compress 파일명 -> 파일명.Z 가 생성

 

 

● 파일 압축 풀기
- # gzip -d 파일명.gz == # gunzip 파일명.gz
- # bzip2 -d 파일명.bz2 == # bunzip2 파일명.bz2
- # compress -d 파일명.Z == # uncompress 파일명.Z

 

 

● 기타 압축 명령
- # zip 압축파일명 압축할 파일 -> 파일명.zip 생성
- # unzip 파일명.zip
- # unarj 파일명.arj

 

 

tar [동작] [옵션] [묶음파일명] [filelist or dir]
- tar은 압축명령이 아니며 여러개의 파일을 한 개의 파일로 묶어주는 명령어
- 동작
   → c (새로운 묶음)
   → x (묶인 파일을 풀어줌)
   → t (묶음을 풀기전에 묶인 경로를 보여줌)
- 옵션 :
   → f (필수)-묶음 파일명 지정
      ☞ 원래 tar은 tape장치 백업이 기본 (생략시 tape로)
   → v - visual
   → z - tar + gzip (GNU only)
   → j - tar + bzip (GNU only)
- 예)
   → # tar cvf httpd.tar /httpd -> 생성
   → # tar cvfz httpd.tar.gz ./httpd -> 생성 + gzip압축
   → # tar cvfj httpd.tar.bz2 ./httpd -> 생성 + bzip2압축
   → # tar tvf httpd.tar -> 확인
   → # tar xvf httpd.tar -> 풀기
   → # tar xvfz httpd.tar.gz -> gzip압축해제 + tar풀기

 

 


[실습]


● 파일 압축 및 tar 명령어
● 노턴 커맨더와 비슷한 파일관리자 mc

 

 

 

 

< 파일 압축 >

 

 


먼저 gzip을 사용해보자.

 

/root의 install.log를 압축해보자.

 

gzip install.log

 

압축률도 뛰어나고 아주 간단하다.

 



압축을 풀어보자.

 

gzip -d install.log (또는 gzip -d install.log.gz)

 

이렇게 하면 간단하게 압축이 풀린다.

 



이번엔 bzip2를 사용해보자.

 

bzip2 install.log

 

bzip2의 압축률이 gzip보다 조금 더 뛰어나다.

보통 배포판을 올릴땐 bzip2를 더 많이 쓴다.

 


 

이번엔 압축을 풀자.

 

bzip2 -d install.log.bz2

 

install.log만 쓰면 안된다.

bz2까지 붙여줘야 제대로 풀린다.

 

 


이번엔 도스용 zip을 사용해보자.

 

zip install.zip install.log

 

install.log 파일을 install.zip으로 압축한다.

그리고 확인해보면 gzip과 bzip2와는 달리

install.log파일은 없어지지 않았다.

 

그래서 삭제를 원하면 직접 지워줘야 한다.

 


 

이번엔 install.zip 파일의 압축을 풀어보자.

 

unzip install.zip

 

확인해보면 역시 install.zip파일은 남아있다.

이것도 삭제하고 싶으면 직접 지워줘야 한다.

 

 


tar cvf install.tar install*

install글자가 들어간 파일은 모두 install.tar로 묶는다.

 

tar tvf install.tar

install.tar파일을 확인한다.

 

rm -f install.log*

install.log가 들어가는 파일은 모두 지운다.

 



tar xvf install.tar

install.tar을 해제한다.

 

gzip install.tar

install.tar로 묶인 파일을 gzip으로 압축한다.

 

확인해보면 install.tar.gz라는 형태의 파일이 되었다.

 



haha.txt파일과 hahaha.txt파일을 tar로 묶고 bzip2로 압축까지 한번에 해보자.

 

tar cvfj haha.tar.bz2 haha*

 

확인해보면 haha.tar.bz2라는 파일로 묶기와 압축이 한번에 실행되었다.

 



압축과 묶기를 한번에 푸는 것도 간단하다.

 

tar xvfj haha.tar.bz2

 

gzip로 작업하고싶으면 cvfz, xvfz로 설정해주면 된다.

 

 

 

 

 

MC (노턴 커맨더와 비슷한) >

 

옛날에 도스를 사용하던 시절 M이라는 프로그램을 다들 사용해봤을 것이다.

리눅스에서도 그와 비슷한 프로그램을 사용할 수 있다.

 



mc

 

mc를 찾을 수 없다..

그렇다 없으면 깔아야한다.

 

yum install mc*

mc가 설치된다.

 



중간에 물어보면 y를 누르면 된다.

 



설치가 완료되고 다시 mc를 실행해보면

 


 

이러한 프로그램이 실행이 된다.

역시 유용하게 사용될 수 있다.

 

 


[정리]


● 파일 압축 방법
● tar 사용법

 

Posted by 아이맥스
카테고리 없음2013. 6. 18. 09:47

 

25장. 쿼터

 

학습목표

- 다중사용자 환경에서 사용자의 파일용량을 제한하는 쿼터에 대해서 알아보자.

 

 

● 쿼터(quota)

- 파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것

 

 

● 적용 순서 요약

- 사례 : Data 백업을 위해 Secondary-Slave(/dev/hdd)에 HDD를 한 개 추가하고,

            /data 디렉토리에 마운트 시킴.

 

 

 

 

● 개인별 쿼터 설정

- 명령어 : # edquota 사용자ID

- vi와 사용법이 동일함

 

 

- 특정 사용자의 쿼터설정을 다른 사용자에게 적용

   → # edquota -p <기존사용자> <새사용자>

 

 

● 기타

- 쿼터 해제 : # quotaoff /data

- 쿼터설정확인 : # repquota -a

 

 

 

[실습]

● 새로운 HDD를 추가하여, 쿼터 설정

 

 

 

 

HDD 추가하여 쿼터 설정하기 >

 

 

 


새로이 HDD (IDE1:1)을 하나 추가하자

용량은 100M만 해보자.

 

만드는 방법은 전장에서 설명했으므로 참고하자.

 



fdisk /dev/hdd

 

새로 장착한 /dev/hdd를 파티션 생성한다.

 



mkfs.ext3 /dev/hdd1

 

/dev/hdd1의 시스템파일 생성

 



mkdir data

 

/ 에서 마운트포인트인 /data 폴더 생성

 

chmod 777 /data

 

/data 폴더의 권한을 모두 사용가능하도록 설정

 



vi /etc/fstab

 

시스템 재부팅을 해도 마운트를 계속 시켜주는 설정을 하기 위해

/etc/fstab 파일을 설정하자.

 



맨 아래줄에 위의 다음과 같이 설정해준다.

 

/dev/hdd1     /data     ext3     defaults,usrquota  1 2

 



cat /etc/fstab

 

설정이 잘 되어있음을 확인하고

 

reboot

 

리부팅하자.

 



재부팅 후

 

mount

 

/data 폴더에 제대로 마운트가 되어있는지 확인

 



/data 폴더로 이동해서

 

touch quota.user

 

quota.user 이라는 빈 파일을 생성한다.

 

chmod 600 quota.user

 

quota.user의 권한 설정을 rw- --- --- 으로 설정한다.

(보안 때문에)

 

quotacheck -a -m

 

쿼터체크를 해준다.

 

convertquota /data

 

쿼터를 새로운 커널버전으로 적용한다.

그럼 aquota.user라는 파일이 생성되고 개인별로 쿼터를 설정해줄 수가 있다.

 



redhat-config-users

 

사용자 설정 그래픽모드

 



사용자 추가를 클릭하고

user1 이라는 사용자를 생성하자.

 



잘 생성이 되었다.

 



edquota user1

 

user1 사용자의 쿼터 사용량 설정을 지정해 줄수 있는 명령

 


 

여기서 user1 사용자에게 사용할 수 있는 공간과 파일수를 설정해줄 수 있다.




inodes 뒤의 soft와 hard의 수를 설정해보자.

 

soft(3) ~ hard(5) : 파일을 3개까지는 기본으로 쓰고 최대 5개까지 쓰게 설정

 



quotaon /data

 

이제 /data 폴더에 설정되어 있는 쿼터를 적용한다.

 

repquota -a

 

현재 쿼터 현황에 대해 확인할 수 있다.

아직 user1 사용자는 아무런 활동도 하지 않았으니 목록에 없다.

 



/root 에서 적당히 카피할만한 파일을 찾아 /data 폴더로 카피하자.

 

cp install.tar.gz /data/u1-1.dat

 

install.tar.gz 파일을 /data 폴더에 u1-1.dat라는 파일이름으로 복사한다.

 



현재 root 사용자이기 때문에 user1 사용자에게 u1-1.dat 파일의 권한을 주자.

그래야 user1이 사용하는 것이 된다.

 

chown user1 u1-1.dat

 

repquota -a

 

이제 user1 사용자가 파일을 1개 사용했다는 것을 확인할 수 있게 되었다.

 



이번엔 같은 반복작업으로 파일을 5개까지 만들어보자.

 

그리고 repquota -a로 확인해보면

 

grace 목록에 7days라는 것이 떴다.

이것은 7일만 보관한다는 의미이다.

 



여기서 하나 더 추가하면

 

grace의 7days가 6days로 줄어들었다.

 



이제 user1 사용자로 직접 파일을 추가해보기 위해서

/data 폴더의 권한이 777로 되어있지 않으면 먼저 해준다.

 


 

Ctrl + Alt + F2 키를 눌러 텍스트 모드로 전환

 

user1 사용자로 로그인하고

/data 폴더로 이동해서

 

cp u1-6.dat u1-7.dat 와 같이 아무 파일이나 하나 더 복사해보자.

 

그럼 이미 한계에 도달했다는 에러메시지가 뜬다.

만약 한글이 깨져서 나온다면

 

export LANG=en_US

 

영문으로 설정을 바꿔서 다시 실행해보자.

 

이처럼 쿼터로 사용자들의 권한을 관리하는 방법에 대해서 알아보았다.

 

 

 

[정리]

 

● 쿼터 설정 순서

 

Posted by 아이맥스