2024-03-11
Linux
00
请注意,本文编写于 118 天前,最后修改于 100 天前,其中某些信息可能已经过时。

目录

打包压缩
tar
gzip
zip
rar
文件传输
网站下载文件
scp 传输
rz & sz
软件的安装
编译安装
下载源码包
编译安装
安装
打包
rpm 安装
yum 安装
安装方法总结

打包压缩

tar

压缩文件有时候我们也叫做归档文件,但是归档和压缩有一些区别,归档只是将多个文件捆绑成一个文件,并没有压缩,而压缩才是将大小压缩的更小。

tar 能够解压的文件格式是 xx.tar.gz

  • 压缩:tar -zcf 压缩包路径 目标1 目标2 目标3
  • 解压:tar -zxf 解压路径
  • 归档,但是不压缩:tar -cf 归档路径 目标1 目标2 目标3
  • 查看压缩包内容:tar -tf 1.tar.gz

gzip

gzip 压缩文件,会自动删除原文件,和 tar 不同,tar 会留着原文件。压缩多个文件,每一个文件产生一个单独的压缩包。解压,会自动删除原压缩包,gzip 其实感觉并不太好用,但是工作中我们可能会遇到 gzip 的压缩包。

gzip 能够解压的文件格式是 xx.gz

  • 压缩:gzip 目标1 目标2 目标3
  • 解压:gzip -d 目标1 目标2 目标3

zip

会保留原文件

zip 能够解压的文件格式是 xx.zip

  • 压缩:zip -r 压缩包路径 目标1 目标2 目标3
  • 解压:uzip 目标

rar

windows 上常见的 rar 格式的压缩包,在 linux 上其实比较难解压,需要安装专业的工具。尽量不用给 linux 发送 rar 的压缩包,全世界通用的是 zip 格式的压缩包。

unar 安装:

bash
yum install epel-release -y yum install unar -y

unar 能够解压的文件格式是 xx.rar

  • 解压:unar -o 解压路径 被解压文件路径

文件传输

和 linux 进行文件传输,大概有下面这么几种情况:

image.png

网站下载文件

curl (系统自带)

curl -o 本地存放路径 文件网址

使用示例:

curl -o 123.zip https://github.com/nmap/nmap/archive/refs/heads/master.zip

有些网站在后台可能禁用了 curl 下载,导致下载不下来。

wget(需安装)

wget 文件网址

安装:

yum install wget -y

示例:

wget https://github.com/nmap/nmap/archive/refs/heads/master.zip

wget 比 curl 方便,最起码不需要指定文件名,curl如果不指定文件名路径的话会将文件内容打印在屏幕上。

scp 传输

主要用于 linux 和 linux 服务器之间传输文件,scp要求接受数据的一方要开启 ssh 服务端才行,如果你电 脑是苹果电脑mac系统,也可以使用scp来传输,mac默认ssh服务端是没有开启的,可以自行开启,客户端是 可以直接使用的。windows往linux上面发送文件也可以用scp,但是只能单向的,因为windows上没有ssh 服务端。

  • 把本地文件推送到远程服务端:scp 本地文件路径 远程主机用户@远程主机 ip 地址:远程主机某个目录
  • 把远端服务器文件拉取到本地:scp 远程主机用户@远程主机 ip 地址:远程主机某个文件路径 本地路径

win10及以上版本是有scp指令的,win和win之间是不能使用scp互相传文件的,因为windows上默认是 没有ssh的服务端的,只有客户端。

windows使用scp给linux上传文件的时候,文件路径和文件名中不允许出现中文和空格。

示例:

scp typora-setup-x64.exe root@10.0.0.128:/tmp

rz & sz

  • 上传:rz -E 选择要上传的文件
  • 下载:sz /root/test.tar.gz

需要先安装 lrzsz 软件包

yum install lrzsz -y

软件的安装

编译安装

我们有时候安装软件,下载下来的是软件源代码,不能直接运行,需要编译之后才能运行,源代码-->编 译-->二进制机器码,才能运行。比如windows的某些软件是从源代码编译打包之后才生成exe程序,平 常我们接触不到,大家安装的软件都是基本别人编译好的。而linux下编译之后会生成二进制的可执行文 件,不是exe程序昂,和windows不同,这种文件没有后缀名。其实linux系统下就没有文件后缀名这个 概念,好多后缀名都是我们人工自己加上去的,为了让自己知道文件是干嘛的,主要是给我们自己看 的,区分作用。

我们以 nginx 的编译安装为示例:

下载源码包

bash
cd /opt/ rm -rf * curl -o nginx.tar.gz http://nginx.org/download/nginx-1.20.1.tar.gz

编译安装

bash
tar -xf nginx.tar.gz cd nginx-1.20.1/
  • 配置编译参数

这个软件给我们提供了很多功能,我们在编译的过程中可以自己选择哪些功能要,哪些功能不要,所有功能 都要就是完整版,好多功能都不要就成了精简版,比如qq精简版,不知道大家听没听过。

./configure --prefix=/usr/local/nginx --without-pcre --withouthttp_rew

我这里禁掉了一些功能,因为这些功能都需要好多依赖包,大家还不知道依赖包是怎么回事儿,所以我就暂时先删除了。--without 就是去掉的意思。--prefix=/usr/local/nginx 是指定软件的安装目录,目录不存在的话会自动创建。./ 是用相对路径来执行这个 configure 文件,用绝对路径也可以执行这个文件。这个指令执行之后,会自动检查各种依赖环境是否满足软件运行的要求,检查通过之后会生成一个叫做Makefile的文件。

多了两个文件Makefile和objs,刚才的指令主要是为了生成Makefile

  • 编译

make

make会找当前目录中的Makefile文件来进行编译,这个编译过程一般是比较长的。到底多长时间呢?

1、看CPU性能

2、软件功能复杂度

编译之后看上去目录结构和之前一样,但是objs目录里面其实多了好多东西。

其中nginx文件就是我们的二进制可执行的命令文件。它是可执行的程序了,比如我们查看一下它的版本。

./objs/nginx -v

到这里只是编译完了,还需要安装,其实安装就是将这个程序的某些文件放到对应的目录中去。其实我们在上面的编译参数中已经指定好了 --prefix=/usr/local/nginx ,要安装到 /usr/local/nginx 目录中去。

安装

make install

打包

打包:就是将我们编译好的程序打包起来,给其他人用的时候,其他人就不用编译了,因为你已经编译好 了,我们普通用户使用的软件就是别人编译打包之后的软件。

/usr/local/nginx 这个目录就是我们编译好之后的整个软件的所有运行文件目录,我们打包它即可

tar -zcf /tmp/nginx_jaden.tar.gz nginx

rpm 安装

刚才我们提到过,编译还是比较繁琐的,为了方便使用者,一般都会编译之后发给使用者,用起来不需要编 译,就方便多了。只要有人编译一次,将编译后的程序贡献出来,大家就可以用了。所以这些做系统的厂商也 发现这样挺好,所以这些厂商干脆将自己的软件也打包一下,redhat、debian 等都做了自己软件的打包工 作,将自己的软件打包好之后,供用户下载使用。下载软件需要用到对应系统的包管理工具。

  • redhat 系打出来的包叫做:rpm 包。用 yum 安装的程序包其实都是rmp包,rpm的包我们也可以不使用yum而手动安装。
  • debian 系打出来的包叫做:deb 包。

rpm 全称:redhat package manager 包管理器

  • 安装(-i 是安装,-vh 是显示安装进度条):rpm -ivh xxx.rpm
  • 卸载:rpm -e xxx
  • 升级:rpm -Uvh xxx.rpm
  • 查看已安装的软件:rpm -qa|grep httpd

rpm安装软件个小问题:

比如:安装vim,会提示安装失败,需要各种依赖包,需要先去安装依赖包。

所以,用rpm安装软件不好解决依赖包的问题,所以出来了下面的 yum 安装方式,自动下载安装需要的依赖包。以后都用yum来安装。

yum 安装

自动解决 rpm 依赖

  • 安装扩展 yum 仓库:yum install epel-release -y
  • 安装软件:yum install 软件名 -y
  • 卸载软件:yum remove 软件名 -y
  • 查看创库 rpm 数量:yum repolist

安装方法总结

编译安装:优点: 自由定制 痛点:难度高,步骤繁琐

rpm安装:优点:安装简单 痛点:需要自己解决依赖,不支持定制

yum安装:优点:自动解决依赖,默认安装最新版 痛点:不支持定制

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:@Rrx

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!