第六篇:linux之解压缩、软件管理

第六篇:linux之解压缩、软件管理

文章目录

  • 第六篇:linux之解压缩、软件管理
    • 一、解压和压缩
      • 1、window压缩包与linux压缩包能否互通?
      • 2、linux下压缩包的类型
      • 3、打包与压缩
    • 二、软件管理
      • 1、rpm
        • 1、什么是rpm?
        • 2、rpm包名组成部分
        • 3、如何获取rpm包?
        • 4、linux中处理rpm的安装软件,还有那些安装软件方式?
        • 5、rpm包如何安装?
        • 6、如何查询已安装好的rpm包?
      • 2、yum
        • 1、什么是yum?
        • 2、yum源是什么?
        • 3、yum源配置
      • 3、源码安装
        • 1、源码包是什么?
        • 2、为什么学习源码包?
        • 3、源码包优缺点?
        • 4、使用方式

一、解压和压缩

1、window压缩包与linux压缩包能否互通?

在windows系统下,接触做多的压缩格式便是rar或zip,但在linux上使用最多的压缩格式是zip和tar.gz。linux不支持rar格式,所以,互通选择zip格式即可。

2、linux下压缩包的类型

格式压缩工具
.zipzip压缩工具
.gzgzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.bz2bzip2压缩文件,只能压缩文件,会删除源文件(通常配合tar使用)
.tar.gz先使用tar命令归档打包,然后使用gzip进行压缩
.tar.bz2先使用tar命令归档打包,然后使用bzip进行压缩

3、打包与压缩

"""gzip的使用"""
yum install gzip -y  # 只能压缩一个文件,也不能压缩文件夹
gzip test.txt  # 对文件进行压缩【会将源文件删除】
zcat test.txt.gz  # 查看压缩后的文件【可直接显示压缩文件中的内容】
gzip -d test.txt.gz  # 解压压缩后的文件
# 用处
cd /etc/yum.repos.d/
比如说,我们可以将此目录下的文件全部进行压缩,可以自定义源,更好的进行处理"""zip的使用"""
yum install zip unzip -y  # 文件和文件夹均可压缩【文件夹-r】
zip a.zip test.txt  # 将test.txt压缩成a.zip格式【不会删除原来的文件】
zip -r home.zip /home/  # 文件夹压缩
zip -T filename.zip  # 查看此zip压缩包是否完整
unzip home.zip  # 解压
unzip -l  home.zip # 不解压,查看压缩包中的内容
unzip home.zip  -d /opt/   # 把当前路径下的home.zip 解压到opt目录下"""tar的使用"""
yum intall tar -y
# 可以同时压缩目录和文件,也支持跨文件夹压缩
tar -czf aa.tar.gz test1.txt test2.txt  # 将test1.txt和test2.txt文件压缩到aa.tar.gz
tar -xf aa.tar.gz  # 解压xx.tar.gz压缩包
tar czf etc.tar.gz --exclude=etc/services etc/  # 排除文件
tar xf /etc/local.tar.gz  -C /tmp  # -C指定解压到哪个路径c  # 创建新的归档文件
x  # 对归档文件解包
t  # 列出归档文件里的内容列表
v  # 输入命令归档或解包的过程
f  # 指定包文件名【多参数f写到最后面】
z  # 使用gzip压缩归档后的文件(.tar.gz)
j  # 使用bzip2压缩归档后的文件(.tar.bz2)
J  # 使用xz压缩归档后的文件(.tar.xz)
C  # 指定解压目录位置
X  # 排除多个文件(写入需要排除的文件名称)
h  # 打包软链接czf  # 打包tar.gz格式
cjf  # 打包tar.bz格式
cJf  # 打包tar.xz格式
zxf  # 解压tar.gz格式
jxf  # 解压tar.bz格式
xf   # 自动选择解压模式
tf   # 查看压缩包内容

二、软件管理

1、rpm

1、什么是rpm?

RPM全称是(RedHat Package Manager),是由红帽开发用于软件包的安装升级卸载与查询。

2、rpm包名组成部分

3、如何获取rpm包?

我们可以在linux中执行mount /dev/cdrom /mnt【将光盘挂载到/mnt文件夹下】,此时便可以在/mnt/Packages目录下看到很多的rpm包文件。

4、linux中处理rpm的安装软件,还有那些安装软件方式?
分类安装版本
rpm包预先编译打包,安装简单软件版本偏低
源码包手动编辑打包,安装繁琐软件版本随意
二进制包解压即可使用,安装简单不能修改源码
-源码安装-->官网下源码--》编译安装---》最新
-rpm包,预先编译打包,安装简单,yum安装,本质就是rmp安装--》稍微老一些
-二进制包:绿色包
5、rpm包如何安装?

以下为rpm命令进行安装的软件的常用参数。

选项描述
-i安装rpm
-v显示安装详细信息
-h显示安装rpm进度
–force强制重新安装
–nodeps忽略依赖关系
"""rpm包安装"""
# 安装rpm的软件
rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm  
或者 
cd /mnt/Packages/  # 在软件所在目录下可以不指定绝对路径
rpm -ivh tree-1.6.0-10.el7.x86_64.rpm# 如果软件包存在,强制再次安装
rpm -ivh --force /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm# 安装samba服务需要依赖其它组件,使用--nodeps可重新强制安装
rpm -ivh --nodeps /mnt/Packages/samba-4.8.3-4.el7.x86_64.rpm
6、如何查询已安装好的rpm包?
选项描述
rpm -q查看指定软件包是否安装
rpm -qa查看系统中已安装的所有rpm软件包列表
rpm -qi查看指定软件的详细信息
rpm -ql查询指定软件包所安装的目录、文件列表
rpm -qc查询指定软件包的配置文件
rpm -qf查询文件或目录属于哪个rpm软件
rpm -qip查询未安装的rpm包详细信息
rpm -qlp查询安装的软件包会产生哪些文件
"""查询rpm包"""
# 查询tree这个rpm包是否安装
rpm -q tree  # 类似于 rpm -qa |grep tree
rpm -qa |grep tr  # 列出所有安装的软件
rpm -qi tree  # 查看指定软件的详细信息
rpm -ql tree   # 查询指定软件包所安装的目录、文件列表
...
rpm -qf /etc/pam.d/vsftpd  # 查看配置文件属于哪个软件
rpm -qlp tree-1.6.0-10.el7.x86_64.rpm  # 查看该软件包安装后会释放哪些文件"""使用远程地址安装rpm包"""
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.8-2.el7.x86_64.rpm"""升级软件"""
rpm -Uivh  # 升级软件需要用U【加U即可】 """卸载rpm包"""
rpm -e tree  

2、yum

1、什么是yum?

yum是RedHat以及centos中软件包管理器,能够通过联网下载.rpm包并且安装,可以自动处理依赖性关系,无需繁琐的一次次的进行下载、安装。

2、yum源是什么?

要想成功使用yum工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个仓库我们习惯称为yum源(可以是本地源、网络源)。

3、yum源配置

我们可以是用cd /etc/yum.repos.d/路径下,查看yum源,即为.repo文件。【默认配置的源可能缺少软件,需要我们手动进行源配置】

"""如何更换阿里云的源?"""
# 将https://mirrors.aliyun.com/repo/Centos-7.repo下载到/etc/yum.repos.d/下,替换掉CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo"""扩展源:epel扩展源"""
# 下载epel-7.repo到/etc/yum.repos.d/下,如此就可以下载默认源中没有的软件,如【nginx】
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo"""python也可以使用yum安装(在阿里云的拓展源中)"""
yum install python36"""补充"""
systemctl start nginx  # 启动程序
systemctl restart nginx  # 重启程序
systemctl stop firewalld.service  # 关闭防火墙

3、源码安装

1、源码包是什么?

源码包指的是开发者编写好的程序源代码,但没有将其编译为一个能正常使用的工具。

2、为什么学习源码包?

部分软件官方不提供yum安装,同时源码可以安装是最新版本的。

3、源码包优缺点?
  • 可以自行修改源代码
  • 可以定制需要的相关功能
  • 新版软件优先更新源码
  • 相对于yum安装软件会复杂很多
4、使用方式
"""向服务器传递文件的几种方式"""
1 wget + 网络地址  # 直接下载tar.gz包
2 下载到windows上,使用rz上传到linux上  # 也是tar.gz包
3 xftp软件来传
4 scp nginx-1.18.0.tar.gz root@101.133.225.166:/home/yangyi1  # 网络拷贝【从windows上传到linux上】
  """举例:源码安装nginx"""1、下载tar.gz包[root@yangyi ~]# wget http://nginx.org/download/nginx-1.15.12.tar.gz2、进行解压,并进入相应目录下[root@yangyi ~]# tar -xf nginx-1.15.12.tar.gz[root@yangyi ~]# cd nginx-1.15.12/3、安装相关依赖【如果没有,则会报错】yum install -y pcre-devel gcc gcc-c++ make zlib-devel openssl-devel4、通过configure,生成配置信息,配置相关的选项,安装路径,并生成Makefile,软件安装的信息[root@yangyi nginx-1.15.12]# ./configure --help  # 可执行文件可以--help查看相关帮助[root@yangyi nginx-1.15.12]# ./configure --prefix=/usr/local/nginx[root@yangyi nginx-1.15.12]# echo $?  # 检查上一个命令是否执行成功5、将Makefile文件编译成可执行二进制程序,此时/usr/local/nginx可执行文件还不存在,需要执行make install才能copy过去[root@yangyi nginx-1.15.12]# make6、将二进制文件拷贝到对应的目录中[root@yangyi nginx-1.15.12]# make install7、我们进入/usr/local/nginx/下,可以看到相关目录- conf: 配置文件- html: 静态文件存放路径,index.html- logs: 日志- sbin: 可执行文件8、命令[root@yangyi sbin] ./nginx  # 启动[root@yangyi sbin] nginx -s reload  # 重新加载,修改配置文件[root@yangyi sbin] nginx -s restart  # 重启[root@yangyi sbin] nginx -s stop  # 停止9、在任意路径敲nginx都能执行【三种方式】1)建立软链接  ln -s /usr/local/nginx/sbin/nginx /sbin/nginx2)把/usr/loacl/nginx/sbin/路径加入环境变量3)想使用systemctl管理(制作成系统服务)"""安装其它软件的源码,步骤类似,如python3"""

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/77987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 键管理

Redis 键管理 以下从键重命名、随机返回键、键过期机制和键迁移四个维度展开详细说明,结合 Redis 核心命令与底层逻辑进行深入分析: 一、键重命名 1. ​RENAME​​ 与 ​RENAMENX​​ **RENAME key newkey​**: 功能:强制重命名…

OpenCV 模板匹配方法详解

文章目录 1. 什么是模板匹配?2. 模板匹配的原理2.1数学表达 3. OpenCV 实现模板匹配3.1基本步骤 4. 模板匹配的局限性5. 总结 1. 什么是模板匹配? 模板匹配(Template Matching)是计算机视觉中的一种基础技术,用于在目…

TextCNN 模型文本分类实战:深度学习在自然语言处理中的应用

在自然语言处理(NLP)领域,文本分类是研究最多且应用最广泛的任务之一。从情感分析到主题识别,文本分类技术在众多场景中都发挥着重要作用。最近,我参与了一次基于 TextCNN 模型的文本分类实验,从数据准备到…

Qt-创建模块化.pri文件

文章目录 一、.pri文件的作用与基本结构作用基本结构 二、创建.pri文件如何添加模块代码? 一、.pri文件的作用与基本结构 作用 在Qt开发中,.pri文件(Project Include File)是一种配置包含文件,用于模块化管理和复用项…

SpringCloud组件——Eureka

一.背景 1.问题提出 我们在一个父项目下写了两个子项目,需要两个子项目之间相互调用。我们可以发送HTTP请求来获取我们想要的资源,具体实现的方法有很多,可以用HttpURLConnection、HttpClient、Okhttp、 RestTemplate等。 举个例子&#x…

EAL4+与等保2.0:解读中国网络安全双标准

EAL4与等保2.0:解读中国网络安全双标准 在当今数字化时代,网络安全已成为各个行业不可忽视的重要议题。特别是在金融、政府、医疗等领域,保护信息的安全性和隐私性显得尤为关键。在中国,EAL4和等级保护2.0(简称“等保…

FFmpeg+Nginx+VLC打造M3U8直播

一、视频直播的技术原理和架构方案 直播模型一般包括三个模块:主播方、服务器端和播放端 主播放创造视频,加美颜、水印、特效、采集后推送给直播服务器 播放端: 直播服务器端:收集主播端的视频推流,将其放大后推送给…

【Redis】缓存三剑客问题实践(上)

本篇对缓存三剑客问题进行介绍和解决方案说明,下篇将进行实践,有需要的同学可以跳转下篇查看实践篇:(待发布) 缓存三剑客是什么? 缓存三剑客指的是在分布式系统下使用缓存技术最常见的三类典型问题。它们分…

Flink 2.0 编译

文章目录 Flink 2.0 编译第一个问题 java 版本太低maven 版本太低maven 版本太高开始编译扩展多版本jdk 配置 Flink 2.0 编译 看到Flink2.0 出来了,想去玩玩,看看怎么样,当然第一件事,就是编译代码,但是没想到这么多问…

获取印度股票市场列表、查询IPO信息以及通过WebSocket实时接收数据

为了对接印度股票市场,获取市场列表、查询IPO信息、查看涨跌排行榜以及通过WebSocket实时接收数据等步骤。 1. 获取市场列表 首先,您需要获取支持的市场列表,这有助于了解哪些市场可以交易或监控。 请求方法:GETURL&#xff1a…

云原生--CNCF-1-云原生计算基金会介绍(云原生生态的发展目标和未来)

1、CNCF定义与背景 云原生计算基金会(Cloud Native Computing Foundation,CNCF)是由Linux基金会于2015年12月发起成立的非营利组织,旨在推动云原生技术的标准化、开源生态建设和行业协作。其核心目标是通过开源项目和社区协作&am…

【Rust 精进之路之第5篇-数据基石·下】复合类型:元组 (Tuple) 与数组 (Array) 的定长世界

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025-04-20 引言:从原子到分子——组合的力量 在上一篇【数据基石上】中,我们仔细研究了 Rust 的四种基本标量类型&#xff1…

MongoDB 集合名称映射问题

项目场景 在使用 Spring Data MongoDB 进行开发时,定义了一个名为 CompetitionSignUpLog 的实体类,并创建了对应的 Repository 接口。需要明确该实体类在 MongoDB 中实际对应的集合名称是 CompetitionSignUpLog 还是 competitionSignUpLog。 问题描述 …

物联网 (IoT) 安全简介

什么是物联网安全? 物联网安全是网络安全的一个分支领域,专注于保护、监控和修复与物联网(IoT)相关的威胁。物联网是指由配备传感器、软件或其他技术的互联设备组成的网络,这些设备能够通过互联网收集、存储和共享数据…

PCB原理图解析(炸鸡派为例)

晶振 这是外部晶振的原理图。 32.768kHz 的晶振,常用于实时时钟(RTC)电路,因为它的频率恰好是一天的分数(32768 秒),便于实现秒计数。 C25 和 C24:两个 12pF 的电容,用于…

Jupyter Notebook 中切换/使用 conda 虚拟环境的方式(解决jupyter notebook 环境默认在base下面的问题)

使用 nb_conda_kernels 添加所有环境 一键添加所有 conda 环境 conda activate my-conda-env # this is the environment for your project and code conda install ipykernel conda deactivateconda activate base # could be also some other environment conda in…

【JAVA】十三、基础知识“接口”精细讲解!(二)(新手友好版~)

哈喽大家好呀qvq,这里是乎里陈,接口这一知识点博主分为三篇博客为大家进行讲解,今天为大家讲解第二篇java中实现多个接口,接口间的继承,抽象类和接口的区别知识点,更适合新手宝宝们阅读~更多内容持续更新中…

基于MuJoCo物理引擎的机器人学习仿真框架robosuite

Robosuite 基于 MuJoCo 物理引擎,能支持多种机器人模型,提供丰富多样的任务场景,像基础的抓取、推物,精细的开门、拧瓶盖等操作。它可灵活配置多种传感器,提供本体、视觉、力 / 触觉等感知数据。因其对强化学习友好&am…

企业微信自建应用开发回调事件实现方案

目录 1. 前言 2. 正文 2.1 技术方案 2.2 策略上下文 2.2 添加客户策略实现类 2.3 修改客户信息策略实现类 2.4 默认策略实现类 2.5 接收事件的实体类(可以根据事件格式的参数做修改) 2.6 实际接收回调结果的接口 近日在开发企业微信的自建应用时…

Linux将多个块设备挂载到一个挂载点

在 Linux 系统中,直接将多个块设备挂载到同一个挂载点是不可能的。这是因为 Linux 的文件系统挂载机制设计为一个挂载点一次只能关联一个文件系统。如果尝试将多个块设备挂载到同一个挂载点,后一次挂载会覆盖前一次的挂载,导致只有最后挂载的…