压缩与解压

本文详细介绍Linux系统下的文件压缩、解压缩操作,包括gzip、bzip2的使用技巧及tar命令的应用。同时,深入解析RPM和YUM软件包管理工具的安装、查询、卸载和升级功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件包管理

压缩/解压

  • 压缩:指通过某些算法,蒋文件尺寸进行相应的缩小,同时不损失文件的内容
  • 打包:指将多个文件(或目录)合并成一个文件,方便传递或部署。
  • linux系统中常见压缩文件后缀
    • *.tar
    • *.tar.gz
    • *.gz
    • *.tar.bz2
    • *bz2
  • linux系统的后缀名没什么作用,但对于压缩文件最好还是带上后缀名,因为Linux支持的压缩算法太多,所以加上后缀名也是为了给自己一个提示。

gzip

  • 可以解开compress、zip与gzip等软件所压缩的文件
  • 命令
    • -c 将压缩的数据输出到标准输出(stdout)上
    • -d 解压缩
    • -t 可以用来检验一个压缩文件的一致性,看看文件有误错误
    • -v 可以显示出源文件/压缩文件的压缩比等信息
    • -(1,2…9)压缩等级,1最快,但是压缩比最差,9最慢,但是压缩比最好,默认是6
    • -l 查看压缩文件的压缩比: gzip -l *.gz
    • 在保证文件不丢失的前提下压缩文件
      • gzip -c install.log > install.log.gz
      • 利用数据崇道乡的方式将数据输入至一个新的文件中

bzip2

  • 在比较压缩比的前提下,gzip是为了取代compress并提供更好的压缩比,那么bzip2则是为了取代gzip并提供更佳的压缩比而来的。
  • 选项
    • -c 将压缩的过程产生的数据输出到标准输出(stdout)
    • -d 解压缩的参数
    • -k 保留源文件,而不会删除源文件
    • -f 强制压缩
    • -z 压缩的参数(有无均可)
    • -v 可以显示出源文件、压缩文件的压缩比等信息
    • -(1,2,…9)与gzip同样的,都是在计算压缩比的参数,-9最佳,-1最快
    • 案例1
      • 在保证源文件不丢失的前提下进行压缩,并显示压缩比信息
      • bzip2 -kv install.log
      • 因为bzip2本省由一个保留源文件的选项,所以并不需要使用数据重导向功能
    • 案例2
      • 在案例1的基础上完成压缩,因为已有压缩文件,要求覆盖,并要用最佳的压缩比进行压缩
      • bzip2 -9kvf install.log
      • 如果不加f选项,那么会提示压缩文件已存在,所以会拒绝完成压缩任务。

查看纯文本的压缩文件内容的命令

  • zcat 用来查看gzip压缩文本文件的内容
  • bzcat,用来查看bzip2压缩文本文件的内容

打包与解包

  • tar用来打包/解包的命令,可以配合一些压缩算法来使用。例如gzip、bzip2
  • 参数
    • -c 建立打包文件
    • -t 查看打包文件的内容含有哪些文件
    • -x 解打包或解压缩的功能,可以搭配-C到指定目录解开
    • -j 通过bzip2的支持进行压缩/解压,此时
    • -z 通过gzip的支持进行压缩/解压,此时文件最好为*.tar.bz2
    • -v 在压缩/解压的过程中,将正在处理的文件名显示出来
    • -f filename -f后面跟处理后文件的全名称(路径+文件名+后缀名)
    • -C目录 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
    • -p 保留备份数据的原本权限与属性,常用语备份(-c)重要的配置文件
    • exclude=FILE 在压缩的过程中,不要将那些文件打包
    • 注意:-c,-t,-x不可同时出现在遗传指令列中

打包并压缩

  • tar -zcvf linux.tar.gz ./linux 表示用gzip算法把当前目录下的linux目录 压缩成linux.tar.gz文件
  • tar -jcvf linux.tar.bz2 ./linux 表示用bzip2算法把当前目录下的linux目录 压缩成linux.tar.bz2文件
  • tar -zcvf /home/linux.tar.gz ./linux 表示用gzip算法把./linux文件或文件夹打包并压缩到/home/linux.tar.gz

解压缩

  • tar -zxvf linux.tar.gz 表示通过gzip的算法解压一个压缩文件(在当前目录解压)
  • tar -jxvf /temp/tar/linux.tar.bz2 表示通过bzip2算法解压一个其他目录的压缩文件到当前目录
  • tar -zxvf linux.tar.gz -C /home 表示通过gzip算法压缩一个文件到 /home目录中去
  • tar -jxvf /tmp/tar/linux.tar.bz2 -C /home 表示用过bzip2算法解压一个其他目录下的压缩文件到指定目录中

RPM软件包管理

rpm的安装

rpm的查询

  • -q 仅查询某个软件是否安装
  • -qa 查询本机上安装所有软件
    -RPqi 列出该软件的详细信息,包含开发商、版本和说明等
  • -ql 列出该软件所有的文件与目录所在完整文件名
  • -qc 列出该软件的所有配置文件
  • qd 列出该软件的所有说明文件、
  • qR 列出和该软件有关的相依关键所含的文件
  • qf 由后面接的文件名,找出该文件属于哪一个已安装的软件

rpm的卸载

rpm -e 查询到的软甲名称

  • 例如:想要卸载jdk
    • 需要先执行rpm -qa | grep jdk 查看jdk的完整名称
    • rpm -e jdk1.8.0_111-1.8.0_111-fcs.x86_64

rpm的升级

  • rpm -Uvh <package_name> 不关当前系统是否安装已经按照那个了该软件都升级到指定的最新版本
  • rpm -Fvh <package_name> 仅在系统中安装了该软件后,才会更新到用户指定的最新版本

yum

  • 可以帮助开发人员一次性解决软件的下载、以来、安装等问题
  • install 安装
  • remove 移除
  • update 升级
  • -y 表示在执行安装、升级、移除的过程中出现的yes/no均以yes执行
  • yum install lrzsz -y 安装远程传输软件

Shell基础

什么是shell

  • 用户与系统交互的工具,也是一个命令解释器,负责将用户的指令告诉系统应该调什么应用程序
  • bash属于传统shelll的一个增强版。
  • 环境变量对bash的影响,如果遇到command not found的情况下,表示两种情况,一个是命令输入错误,另外一种是环境变量出现问题。

变量规则

  1. 变量与变量之间用等号连接,不允许出现空格
  2. 变量名称只能是英文字母,数字下划线,但开头不能是数字
  3. 变量的内容中的空格需要单、双引号括起来才能使用
  4. 单引号:该引号中的内容会被当做文本(java中的string类型)来使用,例如,单引号的变量挥别当做字符使用。例如var=‘lang is $LANG’
  5. 双引号:该银海中的内容会保持其原本你的属性来使用,例如,双引号中的变量依然是变量。例如:var=“lang is $ANG”
  6. 可用转义字符""将特殊符号(如$、\、!等)变为一般字符

变量的读取和设置

  • 读取
  • echo $变量
  • 例如echo $LOGNAME
  • 读取变量的另外一种格式:echo ${LOGNAME}
  • 通常来说大写的就是由系统内建的,用户自动以的通常使用小写
  • 通过export这个关键来设置的
  • 变量的内容由命令来提供,使用$(其他命令)
  • 变量增加额外内容
  • version=$(uname)
  • version=$version-$(uname-p)
  • echo $version
  • 取消变量的设置:unset version
  • 如果取消的是系统环境变量需要去修改/etc/profile文件的内容,否则重启之后变量依然存在
  • 把命令的结果定义成一个变量
    1. cmd=$(date+%F)
    2. cmd=`date+%F`
    3. 全局变量一般都为大写。例如,环境变量
  • 定义变量的两种形式
    1. $(命令)新手推荐
    2. `命令`
  • 注意
    • 在linux系统中,如若变量和其他字符组成型的变量就必须给变量加上大括号,否则容易出错
    • 例如tar -zcvf etc_${fileName}tar.gz /etc/

数据重定向

  • 将某个命令执行后应该要出现在屏幕上的数据给他传输到其他地方,例如传输到文件或是其他命令。
  • 标准输入(sddin): 编号为0
  • 标准输出(stdout): 编号为1
  • 标准错误输出(stderr): 编号为2
  • echo $?:此命令可以用来显示命令的执行结果
  • :表示覆盖的方式

  • : 表示最佳的方式

管道流

前面命令的输出会作为后面命令的输入。

全局查找
  • 命令格式
    • find 路径 条件 名字
命令解释
find/ -name java按文件名查找java
find/ -size 0按大小查找为0的文件
find/ -perm 755按照文件权限来查找文件
find~ -user root按照文件所有者来查找。次命令表示在%HOME下面面查找属于root的条件
find/ -group root按照文件所属的组来查找文件
find/ -mtime -5查找5天之内修改的文件
find/ -mtime +5查找5天以前修改的文件
find/ -nogroup查找没有属组的文件
find/ -type查找某一个类型的文件(可读,可写,可执行)
find /etc -type d表示在/etc查找所有目录
!-type d表示查找非目录文件
grep: 文件检索工具(全面搜索正则表达式并把行打印出来)
命令解释
-b–byte–offset打印匹配行前面打印该行所在的块号码
-c,–count只打印匹配的行数,不显示匹配的内容
-f File,–file=File从文件中提取模板。空文件中包含0个模板,所以什么都不匹配
-h,–no-filename当搜索多个文件时,不显示匹配文件名前缀
-i, --ignore-care忽略大小写差别
-q, --quiet取消显示,只返回退出状态,0则表示找到了匹配的行
tail: 文件增长监视
  • tail -F filename 一般用于日志文件或者程序启动时的观测
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值