首先我们还是回顾了一下上次直播课的内容,vim的一些用法,分为三种模式(一般模式 编辑模式 命令模式)。这个vim工具非常有用,以后在配置各种服务和编写shell脚本的时候用得非常多。下面进入今天的直播课内容:压缩打包。
1.压缩
我们使用压缩文件,不仅可以节省磁盘空间,而且在传输时还能节省网络宽带。
而在linux中我们常见的压缩格式有以下几种: .zip,.gz,.bz2,.xz,.tar.bz2,.tar.xz。
1.1 gzip压缩工具
1.1.1用法:gzip [参数] filename,gzip -d filename 这是解压文件。gzip只能压缩文件,不能压缩目录,并且解压文件时源文件消失。
其中这里有一个重要的参数 -c
gzip –c filename > /tmp/filename.gz指定压缩文件路径,并且源文件存在.
1.1.2我们可以用zcat 1.txt.gz 查看.gz文件内容,file /tmp/1.txt.gz 查看文件的属性。这里具体的例子可以查看我的预习笔记!
1.2 bzip2压缩工具
1.2.1 bzip2的用法:bzip2 [参数] filename ,这个命令如果没有安装可以“yum install -y bzip2” 安装一下。
-d 解压文件: bzip2 -d 1.txt.bz2
1.2.2 这里也介绍一下 -c参数:bzip2 -c 1.txt > /root/1.txt.bz2 //指定压缩文件路径,并且源文件存在
1.2.3 一样的也可以用“bzcat 1.txt.bz2 //查看压缩文件“,可以用”file 1.txt.bz2 “查看文件属性。
1.2.4 bzip比gzip压缩更小,所耗费的CPU资源也最大(压缩的文件也是最小的),也不能压缩目录。
1.3 xz压缩工具
1.3.1 xz的用法:xz[参数]filename ,-d 解压文件:xz -d filename
1.3.2 还是-c参数:xz -c 1.txt > /root/1.txt.xz //指定压缩文件路径,并且源文件存在
1.3.3 可以用 xzcat 1.txt.xz //查看压缩文件内容,file 1.txt.xz查看文件属性!
1.3.4 xz压缩文件比bzip2更小,所耗费的CPU资源也最大(压缩的文件也是最小的),不能压缩目录。
1.4 zip压缩工具
1.4.1 zip的用法:zip[参数]filename, zip -r 123.zip 123/ //压缩目录
如果没有这个工具可以用:yum install -y zip 安装一下。
1.4.2 zip指定解压目录:unzip 123.zip -d /root/456/ //解压文件,并指定解压到那个目录下,zip压缩文件后,源文件不消失!
1.4.3 不能查看压缩文件的内容,只能查看内容列表 ,unzip -l 123.zip //查看压缩文件的内容列表
2. tar打包
2.1 这是一个非常重要的命令,以后也会用得非常多。tar本身是一个打包工具,可以把目录打包成一个文件,它把所有的文件整合成一个大文件,方便复制或者移动。
2.2 tar的用法:tar [-zjxcvfpP] filename.tar
z表示同时使用gzip压缩
-j表示同时用bzip压缩-
J表示同时用xz压缩
-c表示建立一个tar包或者压缩文件包
-x表示解包或者解压
-v表示可视化
-f后面跟文件名(-f filename,表示压缩后的文件名为filename)注意:如果多个参数组合的情况下,
-f要写在最后面。
-t表示查看tar包里的文件--exclude filename 表示在打包或压缩时,不要将某个文件不包含在里面。
2.3 tar打包或解包均会直接覆盖原文件和目录,不会提示覆盖信息
2.4 tar可以打包并压缩,tar 命令还可以在打包的同时支持gzip压缩,bzip压缩和xz压缩
例: tar -zcvf 123.tar.gz 123 //使用tar打包并用gzip格式压缩
tar -jcvf 123.bz2 123//使用tar打包并用bzip压缩
tar -Jcvf 123.xz 123//使用tar打包并用xz压缩
tar -tf 123.bz2 / tar -tf 123.gz / tar -tf 123.xz//查看tar包的内容
注意:打包后文件越小,耗时越长,占用cpu资源越多。
3. 扩展内容
3.1 自动挂载文件/etc/fstab
第四列:parameters:文件系统的参数
Async/sync | 设置是否为同步方式运行,默认为async |
auto/noauto | 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto |
rw/ro | 是否以以只读或者读写模式挂载 |
exec/noexec | 限制此文件系统内是否能够进行"执行"的操作 |
user/nouser | 是否允许用户使用mount命令挂载 |
suid/nosuid | 是否允许SUID的存在 |
Usrquota | 启动文件系统支持磁盘配额模式 |
Grpquota | 启动文件系统对群组磁盘配额模式的支持 |
Defaults | 同事具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 |
3.2 raid知识
3.2.1 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
3.2.2 RAID0 没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。
RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。
RAID 2将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用称为“加重平均”的纠错码(汉明码)编码技术来提供错误检查及恢复。
RAID3它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。
RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为 奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。
RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
7.1 安装软件包的三种方法
7.2 rpm包介绍
7.3 rpm工具用法
7.4 yum工具用法
7.5 yum搭建本地仓库
7.6 yum更换国内源
7.7 yum下载rpm包
7.8/7.9 源码包安装
1.安装软件包的三种方法
我们习惯了在windows下面直接点.exe就可以安装软件,而我们在linux中就不像windows中那么容易,下面我们来介绍常用的三种方法:
rpm工具 |
yum工具 |
源码包安装 |
2.rpm包介绍
2.1首先我们要知道什么是rpm(Red Hat Package Manager),它是以一种数据库记录的方式将我们所需要的套件安装到linux主机的一套管理程序。
2.2RPM包是预先在linux机器上编译并打包的文件,安装非常快捷。但它安装环境必须与编译时的环境一致或者相当,包与包之间存在着相互依赖情况,卸载包时需要先把依赖包卸载。如果依赖包是系统所必需的,就不能卸载这个包,否则系统会崩溃。
3.rpm工具用法
3.1 首先我们要设置光驱并挂载(如果是在虚拟机上就点亮这个图标)
3.2我们先把光驱挂载起来:
mount /dev/cdrom /mnt /光驱挂载到mnt目录下面
现在我们就可以找到Packages,里面就有很多rpm包。
3.3rpm包格式:“zlib-1.2.7-17.el7.x86_64.rpm”,"zlib"是包名:“1.2.7”这个是版本号:“11.el7”是指发行版本:"x86_64"表示64位系统。
3.4rpm包的安装
3.4.1 rpm的安装我们用这个命令“rpm -ivh rpm包文件”,我们安装一个看一下
3.4.2有时候有一些rpm包需要升级我们可以用这个命令“rpm -Uvh rpm文件”,
这里提示我们已经安装好了zip-3.0.11.el7.x86_64这个包。
3.4.3我们也可以查询安装了哪些包有这个命令“rpm -qa”
3.4.4我们刚刚安装了一个包,可以查询指定的包是否安装,“rpm -q 包名”
3.4.5 再查询一下这个包的一些相关信息“rpm -qi 包名”
3.4.6 查出包安装的文件“rpm -ql 包名”
3.4.7 我们还可以通过一个文件是由哪个包安装的“rpm -qf 文件的绝对路径”
3.4.8既然可以安装就可以卸载“rpm -e 包名”
我们总结一下就是这样的步骤:
4.yum工具用法
4.1 yum工具其实要比rpm使用起来更方便,yum工具可以去互联网下载所需要的rpm包,然后自动安装。如果要安装rpm包有依赖关系,yum工具会帮我们依次安装所有相关的rpm包。
4.2先看一下我们的yum包“yum list”列出所有的rpm包
4.3 这里也可以搜索相关的rpm包“yum search [相关关键词]”
4.4安装相关的rpm包 “yum install -y 包名”如果不加“-y”则会以与用户交互的方式安装。
4.5我们还可以看一下这个命令“yum grouplist”系统中以组安装的包,由于我们是最小化安装的所以没有。
4.6 如果有相关的组件我们也可以用这个命令安装“yum grouplist intsll -y”
4.7 这里也可以升级相关的rpm包“yum update 包名”
4.8通过相关的命令查询相关的rpm包“yum provides /usr/bin/ls”
4.9这个同样可以卸载“yum remove 包名”
这里我们也总结一下:
5.yum搭建本地仓库
5.1 有时候我们的电脑不能联网,那我们就需要搭建一个本地的yum源。
5.2 首先我们先挂载光盘“mount /dev/cdrom /mnt”
5.3删除原先/etc/yum.repos.d目录下的文件
5.4创建新的.repo文件
5.5我们查看 一下是否配置成功“yum list”可以看到指向dvd
6.yum更换国内源
6.1有时候我们会发现之前配置的yum源有点慢,这时候我们可能就会想更找一下国内的yum源,直接在这个地方换成我们新的yum源地址就可以:
7.yum下载rpm包
7.1有时我们需要下载rpm包但不安装,我们可以使用yum工具完全可以做到只下载而不安装。
用法:
-
yum istall 包名 -y --downloadonly --downloaddir=/usr/local/src
-
后面是指定下载到/usr/local/src目录下
7.2如果这个包已经安装过了“yum install --downloadonly”根本就不起作用,它会提示这个包已经安装过,根本就不能下载下来,那我们就可以用这个命令:yum reinstall -y bash --dwonloadonly
8源码包安装
8.1在linux中安装源码包是最常用的。源码包的编译用到了linux系统里的编译器。使用源码包除了中以自定义修改源代码外,还可以定制相关的功能,因为源码包在编译时可以附加额外的选项。
8.2安装源码包一般可以通过以下3个步骤:
./configure | 这里会检测你的linux系统与相关的套件是否有编译该源码包时所需要的库,因为一旦缺少某个库,就不能完成编译。 |
make | 会根据makefile文件中预设的参数进行编译,这一步其实是在gcc工作了 |
make install | 这是安装步骤,用于创建相关软件的存放目录和配置文件。 |
8.3我们一般会把源码包放在/usr/local/src目录下:"wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.34.tar.gz"
8.4解压源码包:"tar xzvf httpd-2.4.34.tar.gz"
8.5配置相关的选项并生成makefile
8.5.1首先我们进入安装目录:
8.5.2 ../configure有很多参数:我们这里要用到--prefix
--prefix=/usr/local/apache
解释:prefix是你要安装的位置。
通常 ./configure --prefix=/usr/lcoal/xxxx
我们可以通过这个命令难证是否成功:0为成功,其它数字表示不成功
-
[root@localhost httpd-2.4.34]# echo $?
-
0
8.6进行编译:生成Makefile后,需要进行编译
-
[root@localhost httpd-2.4.34]# ls -l Makefile
-
-rw-r--r--. 1 root root 11359 Aug 10 05:14 Makefile
-
[root@localhost httpd-2.4.34]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
-
checking for chosen layout... Apache
-
checking for working mkdir -p... yes
-
checking for grep that handles long lines and -e... /usr/bin/grep
-
checking for egrep... /usr/bin/grep -E
-
checking build system type... x86_64-pc-linux-gnu
-
checking host system type... x86_64-pc-linux-gnu
-
checking target system type... x86_64-pc-linux-gnu
-
configure:
-
configure: Configuring Apache Portable Runtime library...
-
configure:
-
checking for APR... yes
-
setting CC to "gcc"
-
setting CPP to "gcc -E"
-
setting CFLAGS to " -g -O2 -pthread"
-
setting CPPFLAGS to " -D_REENTRANT -D_GNU_SOURCE"
-
setting LDFLAGS to " "
-
configure:
-
configure: Configuring Apache Portable Runtime Utility library...
-
configure:
-
checking for APR-util... yes
-
checking for gcc... gcc
-
checking whether the C compiler works... yes
-
checking for C compiler default output file name... a.out
-
[root@localhost httpd-2.4.34]# echo $?
-
0
8.7安装
8.7.1安源源码包的命令为 make install
-
[root@localhost httpd-2.4.34]# make install
-
Making install in srclib
-
make[1]: Entering directory `/usr/local/src/httpd-2.4.34/srclib'
-
make[2]: Entering directory `/usr/local/src/httpd-2.4.34/srclib'
-
make[2]: Leaving directory `/usr/local/src/httpd-2.4.34/srclib'
-
make[1]: Leaving directory `/usr/local/src/httpd-2.4.34/srclib'
-
Making install in os
-
make[1]: Entering directory `/usr/local/src/httpd-2.4.34/os'
-
Making install in unix
-
make[2]: Entering directory `/usr/local/src/httpd-2.4.34/os/unix'
-
make[3]: Entering directory `/usr/local/src/httpd-2.4.34/os/unix'
-
make[3]: Leaving directory `/usr/local/src/httpd-2.4.34/os/unix'
-
make[2]: Leaving directory `/usr/local/src/httpd-2.4.34/os/unix'
-
make[2]: Entering directory `/usr/local/src/httpd-2.4.34/os'
-
make[2]: Leaving directory `/usr/local/src/httpd-2.4.34/os'
-
make[1]: Leaving directory `/usr/local/src/httpd-2.4.34/os'
-
Making install in server
-
[root@localhost httpd-2.4.34]# echo $?
-
0
8.7.2 我们可以看一下安装完后的目录:
-
[root@localhost apache2.4]# ls
-
bin build cgi-bin conf error htdocs icons include logs man manual modules
注:这里编译的时候出现在了一些错误缺少一些必要的aprapr-uitl可以看一些这篇去解决