0부터 시작하는 Linux 공부 - 파일 압축 & 묶기 & 검색

Jaehong Lee·2022년 7월 22일
0
post-thumbnail

0. 패키지 설치

p. 205

RPM

  • 리눅스에서의 패키지 설치 : CentOS -> RPM 파일
    • rpm -Uvh test1.0.rpm 과 같은 방식으로 설치 : 만약 설치되있다면, 새 버전 업데이트, 설치되있지 않았다면 설치해준다 ( v : 과정 확인 , h : 과정 확인에 # 사용 )
    • rpm -qa : 현재 시스템에 설치된 모든 패키지를 출력해준다. grep 을 통해 패키지 이름을 검색할 수 있다. 패키지의 설치 여부를 확인 가능 하다
    • rpm -qi : 설치된 패키지의 상세 정보 출력. 이 역시 grep 을 통해 패키지 이름을 검색할 수 있다

YUM & DNF

  • 허나, rpm 에는 의존성 문제가 있다. 이를 해결하기 위해 yum 을 사용한다

  • dnf 를 사용하면 메모리를 적게 사용하면서, 필요한 버전을 설치 가능 하다. yum 은 설치시 함께 설치된 의존성 해결 패키지들을 삭제 할 때 지우지 않지만, dnf 는 의존성 해결 패키지들도 함께 삭제해준다

  • yum 이나 dnf 는 저장소를 이용하여 필요한 패키지를 요청하면, 저장소에서는 해당 패키지와 의존성 해결을 위한 패키지를 묶어 다운로드 시켜준다

    • 도커에서 httpd , nginx 를 설치할 때에는 rpm 과 같은 패키지를 이용하여 설치할 때에는 설치되는 경로가 달라진다
    • 가령 도커 컨테이너를 이용하여 CentOS 컨테이너를 생성하고, 해당 컨테이너 내에서 rpm을 이용하여 httpd 를 설치하면 기본 경로는 /var/www/html 이지만, 하지만 컨테이너로 httpd 이미지를 사용하면 기본 경로는 /usr/local/apache2/htdocs/ 가 된다
  • yum -y install httpd : httpd 설치

  • yum grouplist : 패키지 그룹 목록 및 설치 가능, 설치됨 여부를 확인

  • yum -y groupinstall "Server with GUI" : 해당 그룹에 속한 패키지들을 전부 설치 ( 참조 | p. 224 )

  • 과정

    1. yum 을 통해 패키지 설치 명령을 실행
    2. /etc/yum.repos.d/ 디렉터리의 repo 파일들을 참조하여, 인터넷 상의 패키지 저장소 서버 주소 확인
    3. 해당 주소에 패키지 목록을 요청하여 받아온다
    4. 가져온 패키지 목록을 터미널에 출력하고 설치 확인을 통해 실제 패키지를 다운로드 하고 설치한다

1. 파일 묶기 & 압축

p. 226

  • 파일을 묶고, 압축한다
    • 파일 묶기는 tar 를 사용
    • 파일 압축 : gzip , zip , bunzip , xz ( 압축률 차이 )
    • 파일 압축에는 xz가 가장 압축률이 높다

파일 묶기 - tar

  • tar 는 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령어 이며, 테이프 장치 백업 ( 테이프 아카이브 ) 를 위해 고안되었다. f 옵션을 통해 묶음 파일 이름을 지정한다
    • tar cvf my.rar /test : /test 디렉토리 내에 포함되어 있는 모든 파일과 디렉토리를 my.tar 파일로 묶는데, v 옵션을 통해 과정을 확인한다. c는 새로운 묶음을 만드는 것이다
    • x 를 통해 묶인 파일을 풀 수 있다

  • 다음과 같이 디렉토리와 파일 생성
  • 파일 묶고, 묶음 해제 해주자. test/ 는 test 디렉터리 자신을 포함하여, 내부의 파일 및 디렉터리들을 묶어주는 것으로, test 라고 써도 동일한 결과가 실행된다

파일 압축

  • tar 명령어를 통해 옵션을 추가하여 압축까지 함께 가능하다

    • z 옵션은 gz 로 압축하는 옵션으로, 파일 이름 확장자를 gz 로 해야 한다
    • x 를 통해 압축을 풀고, 묶음을 해제해준다

2. 파일 위치 검색 - find

p. 229

  • 특정 파일의 위치를 검색하는 명령어 중에서 find 를 가장 많이 사용한다
    • find 디렉터리 : 해당 디렉터리 하위의 파일 검색
    • 파일 접근 / 수정 / 생성 옵션
      • atime : access time 으로 파일이나 디렉토리에 접근한 시간
      • mtime : modify time 으로 파일이나 디렉토리을 수정한 시간
      • ctime : change time 으로 파일이나 디렉토리의 고유 번호 ( inode ) 나 퍼미션 , 소유권등을 변경한 시간
        -3 이면 3일 이내 , +3 이면 3일 이후 , 3 이면 3일에서 4일 사이가 출력된다
    • 참조 ) https://jhnyang.tistory.com/144
  1. 퀴즈 . 자신의 홈 디렉토리를 포함하여 하위에 있는 모든 디렉토리와 파일중 파일만을 검색하여 최근 3일 이내에 파일의 내용이
    변경된 적이 있는 파일이 있다면 출력

  2. 퀴즈 2. /usr/bin 하위 파일을 검색하여 최근 3일 이내에 변경이 된 적 있는 파일이 있다면 출력

  3. 퀴즈 3. /usr/bin 하위 파일을 검색하여 최근 3일 이내에 생성된 파일이 있다면 출력

  • 허나, 위의 2 , 3 번 방식으로 하면 하위 디렉터리와 하위 디렉터리에 포함된 파일까지 모두 출력한다. 따라서 아래와 같이 사용하자
    • 검색할 타입을 f ( 일반 파일 ) 을 통해 bin 디렉터리 안에 있는 일반 파일만 출력되게 하며, ls 옵션으로 상세 정보를 출력한다

3. 실행 파일 위치 검색 - which

  • which는 PATH 변수 안에 들어 있는 실행 파일들의 실제 경로를 출력해준다. 즉, 설치된 프로그램의 실행 파일의 실제 경로를 검색해서 출력해주는 명령어다

    • PATH 는 다음과 같은 경로를 가진다

4. 파일 목록 DB 를 통해 검색 - locate

locate '프로그램 이름'

  • locate 는 파일 목록 데이터 베이스에서 실행 파일 위치를 검색하기에 매우 빠르고, 유용하다. 허나, updatedb 명령을 실행해야 사용할 수 있다. 명령 이후 설치된 실행 파일은 찾을 수 없으므로, 다시 updatedb 명령을 실행해야 한다
profile
멋진 엔지니어가 될 때까지

0개의 댓글