티스토리 뷰

dnf 저장소는 안전성이 보증된 파일들을 올려주기에 최신버전이 올라온 경우는 잘 없다.

 

 

이 주소를 사용해서 repo 파일 내용을 편집하면

 

 

dnf 리스트를 최신화해서 최신버전 설치가 가능하다.

 


파일의 압축

Linux & Unix

압축: .gz
원본은 사라지고 압축본만 남음


압축해제: gunzip or gzip -d

 

gzip -l [filename]  : 압축 파일의 내용을 볼 수 있다. (file과는 결이 다름)



.bz2
bzip2 파일명
bunzip2 압축 파일명


bzip2 -d 압축 파일명


.xz
압축률이 높음
압축 시간이 오래 걸림
해제는 빨리됨

압축
xz 파일명

 

해제
unxz  파일명

xz -d   파일명


.zip(windows)
.Z(유닉스 라이센스)



위 명령어들은 파일 하나를 압축하는 것

tar (Tape Archive) : 테이프 드라이브에 데이터를 보관하는 명령어
테이프 드라이브 저장용량 580tb??

https://blocksandfiles.com/2020/12/16/ibm-and-fujifilm-580tb-tape-capacity-record/


 

IBM and Fujifilm demo 580TB tape. Yes it's a record – Blocks and Files

IBM and Fujifilm have demonstrated a 580TB capacity tape – 32 times greater than current LTO-9 technology. IBM and Fujifilm demonstrated a 220TB (raw) tape with 123 Gbits/sq in areal density in April 2015, using barium ferrite (BaFe) technology. In Decem

blocksandfiles.com



속도가 느림:
ㄴ 원하는 부분까지 감아야 나옴
Access time (몇 초 ~ 몇 시간)

현재는 여러 개의 파일을 묶어서 보관하는 명령어로 바뀜
tar -f(file) 가 고정이 돼버림

 

사용 방법
tar -cf 파일명.tar [파일1 파일2 디렉토리1 디렉토리2 .......] =>묶기

 


tar -xf 파일명.tar =>풀기

tar -tf 파일명.tar =>테스트(확인)


기본적인 용도론 압축이 아닌 묶는 용도로 사용하고, 별도로 gzip, bzip2, xz을 사용하여 묶인 파일을 압축한다.
tar로 묶고 압축 !

그래서 파일명.tar.gzip
파일명.tar.bzip2
파일명.tar.xz

인 것을 볼 수 있다.

[-옵션]
cf 여러 개의 파일/디렉토리들을 묶기
cfv 여러 개의 파일/디렉토리들을 묶으며, 과정을 출력
cfvv 여러 개의 파일/디렉토리들을 묶으며, 과정을 더 자세히 출력



cfz gzip으로 압축
cfj bzip으로 압축
cfJ xz으로 압축

 

tar cfz file3.tar.gz /data
자동으로 압축까지 해버림
tar가 gzip을 호출해서 압축해 줌

 

-C 경로 : 묶을 때, 해제할 때 특정 디렉토리에서 작업을 진행한다.
한 디렉토리를 기준으로 행동시키는 방법이 있긴 하다.


-C 경로 파일1 파일2 -C 경로 파일3 파일4 -C 경로 파일5
기준 경로 없이 저장됨

 

디렉토리 전부를 묶는 것이 아닌 일부 파일만 묶고 싶다면 이런 방식으로 진행하면 된다.

 

 

-C 옵션을 사용하면 디렉토리의 범위를 나누어서 원하는 하위파일만 묶기도 가능하다.

 

 

--absolute-names : 묶을 때, 해제 시 절대 경로 이름으로 작업 진행



--list-incremental=DB 파일 : 중분 백업

중분 백업 관련 이미지



xf 여러 개의 파일/디렉토리들을 풀기
xfv 여러 개의 파일/디렉토리들을 풀며, 과정을 출력
xfvv 여러 개의 파일/디렉토리들을 풀며, 과정을 더 자세히 출력
xfz gzip으로 압축된 tar 파일을 해제할 때 사용
xfj bzip으로 압축된 tar 파일을 해제할 때 사용
xfJ xz으로 압축된 tar 파일을 해제할 때 사용


tar -tf : 풀지 않고 내부 내용을 보여준다.


tar xf [파일명.tar] [-C 경로] :현재 디렉토리에 묶인 파일들이 현재 위치에 본 형식을 유지하며 풀린다.

 



/를 제거하는 이유
압축 해제 시 절대경로로 풀림

/제거 안 하면 백업의 느낌으로 절대경로 그 위치에 풀어버리는 결과를 보여준다.



tar 파일을 압축


이렇게 순차적으로 하거나


tar cf files2.tar /data && gzip files2.tar




뒤의 이름은 우리가 적어준 것
file 명령어로 사용하면 된다.


파일/디렉토리 검색 명령어
:which, whereis, locate, find

1. which : PATH 경로에 등록된 경로의 명령어만 검색하는 명령어

환경변수: 사용자가 시스템 사용 시 자주 사용하는 요소들을 등록하여 변수로 만들어
 재사용성을 높이는 변수들

 

만약 환경변수 뒤에 /usr/bin이 없고 /usr/sbin만 있었다면 cat 명령어는 사용 불가였을 것이다.

이렇게 말이다.



 PATH : 사용자가 명령어를 입력하면, PATH에 등록된 경로들을 검색하여 
존재하는지 검사하고, 존재할 경우 그 명령어를 실행한다.

 

useradd admin1명령을 실행했지만 환경변수 안에 /etc/sbin이 없어서 명령어를 찾지 못한다.

 

환경변수 안에 없지만 직접 실행파일을 절대경로로 지정해주면, 실행 가능하다.

 

그리고 환경변수 변경 후 명령어가 실행되는 모습이다.

 

 

원래 환경변수에 하나씩 추가하는 법

PATH=$PATH:(지정하고 싶은 디렉토리 위치)

 

 

이렇게 둘 다 설정해 주면 두 명령어 모두 실행이 잘 된다.

 

다시 돌아와서 which는 등록된 환경변수 안에서 명령어를 찾아주는 명령어임을 알 수 있다.


2. whereis : 명령어와 문서의 위치 검색
 path랑 상관없음



3. locate : 검색한 문자(단어)가 포함된 모든 파일/디렉토리를 검색하는 명령어
 실제 파일/디렉토리를 HDD에서 검색하는 것이 아니라 색인(indexDB)해서 검색한다.
 그래서 검색 속도가 가장 빠르다.
주기적으로 색인을 갱신해 줘야 한다. 명령어 ==> (updatedb)


4. find : 다양한 옵션과 검색 결과를 후처리할 수 있는 명령어
  각 명령어마다 하드디스크 전체를 검색하기 때문에 가장 속도가 느리다.
  
사용법)  find 검색경로 [옵션] [액션]

find /etc -name abc -print

/etc 디렉토리(검색경로)를 검색하여 abc이름(옵션)을 갖는 
파일/디렉토리를 검색해서 print 출력(액션)하라


옵션은 인자가 올 수 있다.
empty

액션 생략 시 print

옵션
-name[패턴] : 패턴과 일치하는 파일/디렉토리
-type 타입  : -f(파일) -d(디렉토리)


-empty : 빈 디렉토리나 내용이 없는 파일
-atime +/-시간(일) : 접근시간


-mtime +/-시간  : 수정시간
-ctime +/-시간  : 변경시간
-amin : 접근시간 (분)
-mmin : 수정시간 (분)
-cmin : 변경시간

 

-size +/-용량 : 용량 K, 용량 M, 용량 G



연산자
   ㄴ옵션1 -and 옵션2 :옵션1과 옵션2 모두를 만족해야 한다.


    ㄴ옵션1 -or 옵션2 :옵션1과 옵션2 중 1개 이상 만족해야 한다.

    ㄴ옵션1 -not 옵션2 :해당 옵션을 만족하지 않아야 한다..
(!)



find /etc -atime 3
etc 디렉토리에서 접근시간이 3일인 파일/디렉토리를 검색해서 출력해 줘(기본값)
+ 2 = 2일이 초과된 ==> 3일 이상 지난
+ 1 = 1일이 초과된 ==> 2일 이상 지난

cat으로 접근시간을 초기화시키면 file1이 2시간 안에 봤던 파일이여서 -atime -2인 것을 알 수 있다.


-purm -권한 : 권한이 일치하는 파일/디렉토리

권한 값을 find 명령어로 찾아보기 위해 환경을 만들어보자

 

find /etc -purm 644 
find /etc -purm u=rw,go=r

/etc 디렉토리부터 권한이 644 인파일/디렉토리를 검색해서 출력하라

find /etc -perm -001
find /etc -purm -o=x
/etc 디렉토리부터 권한에 others의 permission 값에 x 여부만 검사한다.

 

 

숫자, 문자 방식 모두 사용 가능하다.

 

액션


-print :기본 액션, 검색 결과를 출력 (이름만)

디폴트값은 -print

-ls :ls -lsi 옵션을 추가하여 검색 결과를 출력한다.


-i :inode를 통해 파일이 어디를 지정하는지
-delete : 검색된 결과를 삭제


-exec 명령어 {} \; 
     ㄴ검색 결과를 명령어의 {}에 넣어서 실행한다. <조합하여 사용>


-ok 명령어 {} \; 
     ㄴ검색 결과를 명령어의 {}에 넣어서 실행한다. 
     ㄴ검색된 결과를 명령어로 실행할 때마다 확인 절차



file의 이름이 아무리 길어도 일단 내용만 용량으로 생각한다.

 

포맷을 그냥 데이터를 전부 지우는 작업이라고만 생각하지만

 

사실 포맷은 데이터들을 저장하기 위해서 공간을 나누는 작업


1. name
2. i-node 
3. block

.

.

 

inode값은 다른 이름의 파일이더라도 아이노드 값이 같다면 같은 파일임을 의미한다.

 

이름이 다를지언정 가리키는 방향이 같은 것이다.

 


자주 생기는 문제1
디렉토리 안에 서로 다른 파일들
file 644 dir 755




find /test/dir -type f -exec chmod 644 {} \;
find /test/dir -type d -exec chmod 755 {} \;

 


자주 생기는 문제2

/usr/bin 디렉토리에서 일반사용자가 실행할 수 있는 파일들 중에 SetUID가 설정된 모든 파일을 검색하세요

 

find /usr/bin -type f -perm -u=s -a -perm -o=x -ls 

 

 


자주 생기는 문제3
/etc 디렉토리에서 network 문자나 ifcfg문자가 포함된 파일들을 검색하여 ls -lh명령어로 실행

 

find /etc -type f \( -name network -or -name *ifcfg* \) -a  -exec ls -lh {} \;

 

 

 

명령어가 길어지면 읽기 불편
\을 사용하면 가독성에서 잘 보이게 명령어를 칠 수 있다.

l\s\ \-\a\l\ 가능


aws는 date를 눌러서 시간을 확인하면 디폴트값이 표준시로 되어있어 GUI 화면이 있다면 간단히 할 수 있지만 

그게 아니라면 이런 방법으로 표준시 기준을 바꿔주면 된다.