리눅스 기본 (5)

파일 포장 및 압축 해제

1. 일반적인 압축 포맷
1) Windos의 두 가장 보편적 *.zip, *,rar;
두가 상기 이외에 리눅스 2) *.gz, *.xz, *.bz2, *.tar, *.tar.gz, *.tar.xz, *.tar.bz2
*.zip: ZIP 압축 파일을 패키징
*,rar: RAR 압축 프로그램 파일
*.gz: GZIP 프로그램 (GNU 우편) 압축 파일
*.xz: XZ 프로그램 압축 파일
*.bz2:의 bzip2 프로그램 압축 파일
*.tar: 타르 패키지, 압축되지 않은 파일
*.tar.gz: 타르 패키지, GZIP 프로그램 압축 파일
*.tar.xz: 타르 패키지, XZ 프로그램 압축 파일
*.tar.bz2: 타르 패키지 ,의 bzip2 압축 프로그램 파일

2. ZIP 압축 포장기

: 우편 패키지 폴더 사용 (1)
디렉토리 / 홈 / shiyanlou / 바탕 화면 파일에 패키지, 파일 크기 및 포장의 종류를 확인합니다. -r재귀 매개 변수는 하위 디렉토리의 전체 내용을 포함하는 패키지는, 표시 -q, 매개 변수가 화면에 출력 정보를하지 않는 자동 모드를 나타냅니다 -o나중에 패키지 출력 파일 이름에 따라야하는, 출력 파일을 나타냅니다. 사용하여 du패키지의 파일 크기를 보려면 명령을 사용합니다.

$ cd /home/shiyanlou
$ zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop
$ du -h shiyanlou.zip
$ file shiyanlou.zip

(2) (1) 및 (9) (9 최대, 최소 1)의 압축률을 설정, 재 포장. 압축 레벨을 설정하는 매개 변수를 추가 -[1-9], 압축 9 가장 작은 의미하지만, 가장 긴 시간이 소요되는, 가장 빠르고 부피가 큰 나타냅니다. -x그렇지 않으면 압축 파일로 포장됩니다 우리가 지난 시간을 만든 zip 파일, 배제 , 그렇지 않으면 작동하지 않습니다, 여기 만 사용 절대 경로 : 주.

$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou/Desktop -x ~/*.zip
$ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou/Desktop -x ~/*.zip

그런 다음 du명령은 각각 기본 압축 수준, 압축되지 않은 파일의 최소 및 최대 압축 수준과 크기를 참조하십시오

$ du -h -d 0 *.zip ~ | sort

상기 식에서 h매개 변수 : , d- 인간이 읽을 수의, (깊이보기 파일) - 최대 깊이.

(3)를 사용하여 -e암호화 된 압축 패키지를 만드는 매개 변수를

$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou/Desktop

리눅스는 윈도우에 생성 된 zip 파일의 압축 해제 후 아무 문제없이 원하는 경우에는 명령에 대한 일부 내용을 변경해야합니다

$ zip -r -l -o shiyanlou.zip /home/shiyanlou/Desktop

필요는 추가 -l매개 변수 LF에 (리눅스 줄 바꿈) CR+LF상기의 목적을 달성하기 위해 (윈도우 줄 바꿈).

압축 해제 명령을 사용하여 3. 압축을 풀고 압축 파일

현재 디렉토리에 shiyanlou.zip 추출물 :

$ unzip shiyanlou.zip

지정된 디렉토리에 파일을 추출, 자동 모드를 사용합니다 :

$ unzip -q shiyanlou.zip -d ziptest

위의 지정된 디렉토리가 존재하지 않는 경우, 작성됩니다.
그냥 당신이 사용할 수있는 볼 수있는 아카이브의 압축을 풉니 다하지 않으려는 -l매개 변수를 :

$ unzip -l shiyanlou.zip

파일의 압축을 풀고 압축 해제를 사용하지만, 여기에 문제가 중국의 인코딩 문제가있을 때 그것은 또한 호환성 문제를 지적하고, 생성 된 압축 파일은 일반적으로 파일 이름으로 중국어 또는 중국어를 포함 문서가있는 경우 기본이 GBK 사용됩니다, 위의 윈도우 시스템입니다 또는, 발생할 수있는 문제와 중국이이 문제를 해결하기 위해, (때때로 자동으로 거래를 도움이 될 것입니다)이 나타납니다 깨진 경우 직접 추출, 어떤 치료를하지 않고, 우리가 할 수있는 다른 코딩 및 기본 위의 리눅스는 UTF-8 인코딩입니다 부호화시에, 지정된 유형의 추출. 중고 -O(문자, 대문자 O) 매개 변수를 지정하는 부호화 유형 :

unzip -O GBK 中文压缩文件.zip
  1. 타르 패키지 도구

리눅스는 일반적으로 사용되는 이상 tar도구, tar원래 단지 포장 도구뿐만 아니라, 7Z, GZIP, XZ,의 bzip2 및 기타 도구 자체 만 단독으로 파일이나 디렉토리 (파일 디렉토리의 압축을 달성 할 수있는 이러한 압축 도구에 대한 지원을 구현 ) 압축, * 압축 된 파일의 압축을 실현하지 않았다 . 타르 압축 해제 및 압축 명령을 사용하는 것이 더 편리 같은 단지 다른 매개 변수입니다.

먼저 tar 명령은 몇 가지 기본적인 사용뿐만 아니라 패키지 압축 (아카이브를 생성) 및 압축 풀기 작업을 마스터합니다.
(1) 타르 패키지를 만들 :

$ cd /home/shiyanlou
$ tar -P -cf shiyanlou.tar /home/shiyanlou/Desktop

상기 명령을 -P, 절대 경로 심볼을 유지 -c타르 패키지 파일의 생성 나타낸다 -f작성된 파일명을 지정하는 데 사용을 파일명 즉시 주목해야 -f기록 할 수없는 등의 인수 후 tar -fc shiyanlou.tar기록 될 수있다 tar -f shiyanlou.tar -c ~. 당신은 또한 추가 할 수 있습니다 -v출력 시각적 인 방식으로 패키지 파일에 매개 변수를.
(2) 파일 (압축을 풀고 -x지정된 디렉토리 경로가 이미 존재하는 매개 변수) ( -C매개 변수) :

$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir

(3) 패키지 파일 수수께끼 만 볼 수 -t매개 변수를 :

$ tar -tf shiyanlou.tar

(4)이 다른 파일의 압축 형식을 생성하는 tar것이 매우 간단 단지 사용하는 여기 파라미터를 변경할 필요가 gzip크리에이트하는 도구를 *.tar.gz설명하기 위해 예를 들어 파일.

당신 만이 만들 필요 tar에 근거하여 추가 파일을 -z, 매개 변수 gzip압축 파일 :

$ tar -czf shiyanlou.tar.gz /home/shiyanlou/Desktop

* .tar.gz를 파일을 추출 :

$ tar -xzf shiyanlou.tar.gz

만들거나 유일한 압축 도구를 사용하는 매개 변수를 변경해야 할 파일을 압축 해제하기 (5) :
*.tar.gz: -z;
*.tar.xz: -J;
*tar.bz2: -j;

요약:

  • 우편 번호 :
    포장 : (디렉토리를 -r 매개 변수를 추가하십시오) something.zip 뭔가를 압축
    압축 풀기 : 압축 해제 something.zip의
    경로가 지정된 : -d 매개 변수를
  • 타르 :
    포장 : something.tar의 뭔가 -cf 타르
    압축 풀기 : 타르 -xf something.tar
    지정된 경로 : -C 매개 변수

디스크 관리 및 파일 시스템 작업

파일 시스템 작업

  • 디스크 용량과 목적을 확인 :

사용하여 df볼 수있는 명령을 디스크 용량을 :

$ df
或者
$ df -h
# 加上`-h`参数,以更易读的方式展示

볼 수있는 뒤 명령을 사용하여 디렉토리의 용량을 :

# 默认同样以 块 的大小展示
$ du 
# 加上`-h`参数,以更易读的方式展示
$ du -h

-d체크 매개 변수는 디렉토리 깊이를 지정합니다

# 只查看1级目录的信息
$ du -h -d 0 ~
# 查看2级
$ du -h -d 1 ~
du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。
du -a #同--all 显示目录中所有文件的大小。
du -s #同--summarize 仅显示总计,只列出最后加总的值。

간단한 디스크 관리

  • DD 명령 소개

dd변환 파일을 복사하는 명령하지만 복사는 다릅니다 cp. 매우 중요한 시점 이전에 언급, 리눅스에 대해 있는 모든 파일을 리눅스에서, (예 : 하드 디스크 등) 하드웨어 장치 드라이버와 특수 장치 파일 (예를 들면, / dev / 제로는 / dev / 무작위로)이 일반 파일처럼, 각각의 드라이버에 대응하는 기능을 실현하는, 파일을 파일을 읽거나 쓸 수 dd는. 따라서, DD는 또한 임의의 데이터 또는 널 (null) 데이터 작업의 특정 번호를 획득 백업 하드웨어의 부트 섹터에 사용될 수있다. dd두 데이터 복제, 예컨대 엔디 변환 또는 ASCII와 EBCDIC간에 교환 인코딩을 처리 할 수있다.

dd명령 줄 문 및 기타 리눅스 프로그램 때문에 형식에 대한 명령 줄 옵션의 차이가 选项=值아니라 더 많은 표준보다, --选项 值또는 -选项=值. dd기본값은 표준 출력 표준 입력 및 쓰기에서 읽기,하지만 당신은 옵션을 사용할 수 있습니다 if(입력 파일, 입력 파일)과 of변화 (출력 파일, 출력 파일).

가진 dd파일에 대한 사용자의 표준 입력 표준 출력 또는 입력으로부터 명령 :

# 输出到文件
$ dd of=test bs=10 count=1 # 或者 dd if=/dev/stdin of=test bs=10 count=1
# 输出到标准输出
$ dd if=/dev/stdin of=/dev/stdout bs=10 count=1
# 注
在打完了这个命令后,继续在终端打字,作为你的输入

위의 명령은 표준 입력에서 사용자 입력 장치를 판독 (디폴트 값은 생략 될 수 있음)에 다음 출력 test파일 bs기본 바이트, 'K'로 지정 될 수있다 블록 크기를 특정한다 (블록 사이즈) ( 'M', 'G'단위 등), count블록 수를 지정한다. 난 단지 16 바이트 (영어 1 바이트 문자)의 캐리지 리턴을 더한 공간 총 후 나는 "shiyanlou 안녕하세요"입력 데이터의 10 바이트의 총을 지정 읽기, 그것은 분명 설정된 크기를 초과 . 뒤 다른 중복 입력을 차단하고 표준 입력에서 유지됩니다 동안 파일 쓰기 완료 정말 10 바이트의 실제 내용을 확인하기 위해 cat 명령을 사용합니다.

dd데이터 변환을 복사하여 구현 될 수 있지만, 간단한 예제를 인용 : 파일에 기록 된 다음 영어 대문자로 문자의 출력을 :

$ dd if=/dev/stdin of=test bs=10 count=1 conv=ucase
  • DD 형식 명령을 사용하여 가상 이미지 파일 만들기

256M 빈 파일의 용량은 / dev / 제로 장치에서 만든 :

$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img

그럼 당신은 우리가 새로운 명령이 요구 사항을 완료 (그룹이 말을 정확)을을 배울 수있다 (파일 시스템에 기록) 파일 형식을합니다.

  • mkfs 명령은 (우리의 경우에 사용자가 만든 것을 가상 디스크 이미지) 디스크를 포맷 명령

당신은 단순히로 포맷 우리의 가상 디스크 이미지에 다음 명령을 사용하여 ext4파일 시스템 (사실은 mkfs.ext4 작업을 포맷 mke2fs를을 사용하여 수행됩니다)

 $ sudo mkfs.ext4 virtual.img

이 파일 시스템은 사용자가 입력 할 수있는 리눅스에서 지원하는 알고 싶다면 ls -l /lib/modules/$(uname -r)/kernel/fs뷰 (우리의 환경을 볼 수 없습니다).

  • 디렉토리 트리에 디스크를 마운트 할 마운트 명령을 사용하여

사용자는 전에 리눅스 / 유닉스 시스템에서 파일, 열어 장착해야합니다 파일 시스템 작업을 포함하여 파일 시스템을 마운트 할 마운트 명령을 실행 한 후, 사용자가. 지침은 일반적으로 USB 또는 기타 이동식 저장 장치에 사용되며, 루트 디렉토리는 장착 상태를 유지한다. 파일 및 하드웨어 장치, 디렉토리 트리를 포함하는 파일 시스템을 마운트 할 수 있다면 리눅스 / 유닉스 파일 시스템은 반드시 파일에 일치하지 않을 수 있기 때문이다.

마운트 명령 리눅스 / 유닉스 명령 줄은 해당 파일 시스템을 사용할 준비가 운영 체제를 알려줍니다, 파일 시스템의 (a 마운트 포인트라고 함) 특정 시점에 해당됩니다. 좋은 파일, 디렉토리, 장치 특수 파일을 마운트하고 사용자에게 제공 할 수 있습니다.

우리는 먼저 (가) 다음 호스트 파일 시스템을 장착 한 볼 마운트를 사용 :

$ sudo mount

각 행의 결과 출력은, 장치 이름, 각 라인의 위에, 그리고 나중에 형이어서 마운트 포인트에 파일 시스템의 타입을 나타내며, 그리고 예를 들면, 장착 될 수있다 (마운트 옵션에 따라 장치 또는 가상 장치를 나타낸다 같은 전용) 등을 설정 판독 마운트.

마운트 디렉토리 트리에 디스크를 마운트 명령을 다음과 같이 일반적인 형식은 다음과 같습니다

mount [options] [source] [directory]

몇 가지 일반적인 작업 :

mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]

이제 우리는 만들 미러링 가상 디스크 마운트 직접 /mnt디렉토리를 :

$ mount -o loop -t ext4 virtual.img /mnt 
# 也可以省略挂载类型,很多时候 mount 会自动识别

# 以只读方式挂载
$ mount -o loop --ro virtual.img /mnt
# 或者mount -o loop,ro virtual.img /mnt
  • 마운트 된 디스크를 마운트 해제 마운트 해제 명령을 사용하여
# 命令格式 sudo umount 已挂载设备名或者挂载点,如:
$ sudo umount /mnt
  • 파티션 FDISK를 사용하여
# 查看硬盘分区表信息
$ sudo fdisk -l
# 进入磁盘分区模式
$ sudo fdisk virtual.img

작업이 완료되면 입력 p결과를 확인하고, 입력하는 것을 잊지 마세요 w파티션 테이블을 작성합니다.

  • 사용 losetup을 명령은 루프 미러 장치와 관련된
$ sudo losetup /dev/loop0 virtual.img
# 如果提示设备忙你也可以使用其它的回环设备,"ls /dev/loop*"参看所有回环设备

# 解除设备关联
$ sudo losetup -d /dev/loop0

그리고 사용 mkfs하지만, 포맷하기 전에, 우리가 사용하는 각 파티션에 대한 가상 장치 매핑을 설정해야합니다 (전체 가상 디스크 이미지 파일이나 디스크를 포맷 우리 앞에있다) 형식으로 각 파티션 kpartx도구를 설치해야합니다

$ sudo apt-get install kpartx
$ sudo kpartx -av /dev/loop0

# 取消映射
$ sudo kpartx -dv /dev/loop0

포맷 재 다음, 우리는 ext4에로 포맷됩니다

$ sudo mkfs.ext4 -q /dev/mapper/loop0p1
$ sudo mkfs.ext4 -q /dev/mapper/loop0p5
$ sudo mkfs.ext4 -q /dev/mapper/loop0p6

/ 미디어 디렉토리의 새로운 4 빈 디렉토리를 포맷 한 후 가상 디스크를 마운트하는 데 사용됩니다 :

$ mkdir -p /media/virtualdisk_{1..3}
# 挂载磁盘分区
$ sudo mount /dev/mapper/loop0p1 /media/virtualdisk_1
$ sudo mount /dev/mapper/loop0p5 /media/virtualdisk_2
$ sudo mount /dev/mapper/loop0p6 /media/virtualdisk_3

# 卸载磁盘分区
$ sudo umount /dev/mapper/loop0p1
$ sudo umount /dev/mapper/loop0p5
$ sudo umount /dev/mapper/loop0p6
$ df -h

근원

게시 33 개 원래 기사 · 원 찬양 한 · 전망 1240

추천

출처blog.csdn.net/weixin_44783002/article/details/104704565