本篇文章讲解Linux专业知识:软件包管理、文件的归档和压缩。
第一部分:软件包管理 准备工作: 1.练习的过程中,需要一些rpm软件包,供你尝试,我们把一会它下载下来。 2.因为 bin-DVD1 类型的系统镜像,自带有一些rpm软件包的。 3.比如我用的系统镜像是 CentOS-6.9-i386-bin-DVD1.iso (如果是其它,比如CentOS-6.9-i386-LiveDVD.iso,是不带Package的)。 4.VMware挂载DVD镜像(选择CentOS-6.9-i386-bin-DVD1.iso 镜像的位置):
5.点击确定以后,在虚拟机右下角的 DVD光盘图标 中,右键点击连接,linux中就能看到光盘了。
6.使用 df -l 查看一下挂载点,默认挂载到了 /media/CentOS_6.9_Final/ 目录下:
一、rpm软件包管理 RPM: Redhat Package Manager 的简称。 1.rpm包说明: 比如 zsh-5.0.2-14.el7.x86_64.rpm :
2.安装rpm软件:
3.到rpm包相关的网站上去下载软件包: http://rpmfind.net/ http://rpm.pbone.net/ http://www.rpmseek.com/index.html 4.rpm查询功能 rpm查询功能(rpm –q 常与下面参数组合使用):
查看某个软件是由哪个rpm包安装的: rpm -qf `vim` (查看vim是有哪个rpm包安装的)。 查看已经安装的rpm包生成了哪些文件:rpm -ql [rpm包名]
查看一个未安装包的安装后将生成的文件: rpm -qpl [rpm包名]
5.rpm软件包安装 软件包升级: rpm -Uvh [rpm包名] 。 6.rpm软件包卸载 rpm卸载: rpm -e [rpm包名] 。如果有依赖,导致无法卸载,可以使用 --nodeps 参数忽略依赖强制卸载。 7.rpm包签名验证 MD5哈希签名验证,可以防止别人修改软件包: 查看签名: rpm -K [软件包名] 例如:rpm -K httpd-2.2.15-60.el6.centos.6.i686 。
导入密钥: rpm --import [密钥文件] 例如:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 (系统密钥默认保存在 /etc/pki/rpm-gpg/ 这个目录下)。
二、yum的使用 yum(Yellow dog Update, Modified)安装时,自动处理依赖关系。yum基于C/S架构。 1.yum源的位置 配置文件在: cd /etc/yum.repos.d/ :
手工书写yum源配置文件: # 源的名称,你随意起一个 [7-soucre] # 描述信息,随意写一些说明 name=rhel7-server # 源的位置,也就是rpm软件包的位置,file://说明是本地源, # /media 是本地存放软件包的目录。 # baseurl=file:///media baseurl=file:///media/CentOS_6.9_Final # 启用yum源:1 # 关闭yum源:0 enabled=1 # 签名验证,为1检验公钥的正确性,0不检验 gpgcheck=0 2.使用本地yum源 删除原来的源码配置文件:将 cd /etc/yum.repos.d/ 目录下的 .repo 文件进行备份,然后清空这个目录下的文件(yum将该目录下所有.repo结尾的文件,识别为yum源配置文件)。 创建一个以 .repo 结尾的文件,比如:vim CentOS-Base.repo,然后写入手工配置文件的内容(注意修改挂载点)。 保存配置文件后,执行下面命令,清空一下yum缓存: yum clean all 。 重新生成列表: yum list 。 安装软件: yum install [软件名称] (如果安装过程中,软件有需要用户输入yes或者no进行的确认的步骤,如果你想全部选择yes,则加上 -y 参数 :yum install -y [软件名称])。 检测升级:yum check-update (本地yum源是不行的,远程网络才能升级) 查看软件信息: yum info [软件名称] 。 卸载软件: yum remove [软件名称] 。 按组来安装:就是一下子可以安装一组软件。查看一下有哪些rpm组包:yum grouplist 。安装某组软件:yum 3.使用远程yum源 远程yum源一般由开源镜像站提供,开源镜像站一般会提供一个配置文件,比如阿里镜像站: http://mirrors.aliyun.com/repo/ 或者网易镜像站: http://mirrors.163.com/.help/ 找到对应的 .repo 文件,下载放入 /etc/yum.conf.d/ 这个目录下就可以了。每一个 .repo 文件都配置了一个源,所以如果原来的 .repo 文件,你不想用了,将它从 /etc/yum.conf.d/ 这个目录删除就可以了。然后执行 yum clean all 和 yum makecache 更新一下就可以了。
三、源码编译安装软件包 解压源代码包。 进入解压后的目录,用 ./configure [--prefix=/usr/local/filname] 来配置,这个过程主要是收集系统信息、设置安装目录等(卸载的时候只需将这个目录删除则可)。 编译:make -j 4 。 安装:make install 。 1.源码方式安装nginx服务器: 需要 pcre-devel 、 zlib-devel 。查看一下这两个依赖包有没有:rpm -q pcre-devel zlib-devel 。如果没有安装就安装它: yum install -y pcre-devel zlib-devel 。 添加一个程序运行的系统用户: useradd -s /sbin/nologin -M nginx (-s指定shell,shell为/sbin/nologin,-M表示不生成宿主目录)。 解压准备好的压缩包 tar -zxvf nginx-1.0.15.tar.gz 。 解压完成上次一个 nginx-1.0.15 目录,进入这个目录。执行配置命令 # --prefix指定安装的位置 # --user 指定运行的用户 # --group 指定运行的组 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx 如果这一步出错,提示没有安装gcc: ./configure: error: C compiler gcc is not found 则安装GCC编译器: yum install -y gcc 。再执行上面配置命令。如果你和我一样,使用了本地软件源,gcc可能因为版本问题,安装失败。可以先打开网络源,比如阿里源,安装gcc。 编译和编译安装:make -j4 && make install 。如果安装成功,会有 /usr/local/nginx/sbin/nginx 可执行程序。另外可以执行 netstat -anptu | grep nginx 命令查看nginx是否已经监听80端口。如果没有,启动nginx:/usr/local/nginx/sbin/nginx。
然后用 ifconfig 命令查看一下你的ip地址,在浏览器中输入 [ip地址]:80 ,比如我的:192.168.154.133:80 。你会看到Welcome to nginx! 显示出来。 2.nginx 首页修改测试 打开任意一个网页,比如百度,通过浏览器查看网页源代码,将网页源代码复制到 /usr/local/nginx/html/index.xml 中(删除原来的内容)。然后通过浏览器,输入 [ip地址]:80 ,这时显示的就是百度首页了,而不是 Welcome to nginx! 。
四、使用 | 管道命令 管道命令: | 。将前面命令的输出信息,最为后面命令的输入信息。比如,执行rpm -qa 这个命令时,终端会打印很多信息。如果将这些输出信息,作为grep命令的输入,grep命令通过这些输入字符,找到包含 httpd 字符的字符串。
可以进行分页查看:打印信息太多时,追加上 | more 进行分页查看,例如 rpm -qa | more 。
附:Xshell与远程机器通信 rz命令: 在使用Xshell这个SSH工具登陆Linux时,如果想 向linux系统传文件,可以使用 rz 命令。使用这个工具,需要安装lrzsz这个工具包:yum -y install lrzsz。注意:在其它终端执行这个命令会使终端卡死。
第二部分:文件的归档和压缩 一、tar工具 tar工具可以进行压缩、打包文件。 语法:tar [参数] [生成的包的名称] [将要打包或解压的目标文件/目录] 参数和说明 -c:create 创建文件 -x:解压还原文件 -v:显示执行详细过程,解压过程打印一些信息 -f:指定备份文件 -t:列出备份文件内容 -P(大写):在使用绝对路径时,不移除文件名称前的根号 -C (大写):指定解压位置 -z:通过 gzip 进行压缩 -j:通过 bzip2 解压缩
二、创建归档 这里是将文件打包成一个文件,但还没有压缩。 1.打包一个文件: # 将/boot/grub/目录下的内容打包 # 打包以后生成一个grub.tar文件 # -c 参数是创建包,-v参数显示压缩过程,f是指定文件。 tar -cvf grub.tar /boot/grub/
如果你的文件想保留根/ ,那么你可以加上参数 -P (大写P): tar -cvPf grub-1.tar /boot/grub/ 把多个文件打成一个包:tar -cvf test.tar a.txt b.txt c.txt (将a.txt、b.txt、c.txt这三个文件成一个test.tar包)。
三、查看压缩包里面的内容 查看压缩包里面的内容(就像你在桌面直接双击一个压缩包文件一样,可以看到里面的文件列表,但没有解压开): # 查看,并通过more分页显示 tar -tvf grub.tar | more
四、Linux压缩工具 1.压缩工具: gzip、 bzip2、 zip、 tar。
2.常见的压缩格式:gz、 bz2、 xz、 zip、 Z 。 3.使用gzip工具压缩:tar -zcvf newfile.tar.gz SOURCE(-z参数表示压缩) 。
4.使用bzip2工具压缩: tar -jcvf newfile.tar.bz2 SOURCE (-j参数表示压缩) 。 5.使用zip工具压缩(直接压缩,不像tar那样先归档后压缩): zip test.zip SOURCE 。如果是压缩的对象时目录,要使用 -r 参数 :zip -r test.zip /tmp/tmp-dir/(将/tmp/tmp-dir/这个目录下所有内容进行打包压缩):
6.专门用于压缩的工具 有一些工具专门用于压缩(其实tar会调用它们):gzip、 bzip2、 xz。在文件使用tar打包以后,可以使用压缩工具进行压缩。这些工具只有压缩功能,没有打包功能。 注意:gzip、 bzip2、 xz这些工具只能对文件进行压缩,且压缩后源文件消失(其中 xz 命令可以加上-k 参数保留源文件) 7.gzip命令: 压缩:gzip [文件] 、解压: gzip -d [文件] 。
8.bzip2命令: 压缩: bzip2 [文件] 、解压:bzip2 [文件]。
9.xz命令: 压缩: xz [文件] 、 解压:xz -d [文件] 或者 unxz -d [文件]。
五、解压 解压一个 普通包(没有经过压缩的): tar -xvf grub.tar (把grub.tar这个文件解压开)。 解压到 指定目录: tar -xvf grub.tar -C /tmp(-C参数,解压到了/tmp/这个目录下)。 解压一个经 gzip工具压缩 的文件:tar -xzvf test.tar.gz 。 解压一个经过 bzip2工具压缩 的文件:tar -xjvf test.tar.bz2 。 解压一个经过 zip工具压缩 的文件:unzip test.zip (-d参数解压以后的目录:unzip test.zip -d /tmp/)。
六、确定文件类型 使用 file 命令确定文件类型(常见返回结果): 返回结果和说明 empty:空文件 directory :目录文件 English text:英文正式文件 assembler program text :汇编语言程序的正文文件 ascii text:ASCII编码的文本文件 command text:命令语言编写的命令正文程序 c program:C语言正文程序 relocation text:用于连接的目标文件 executable:可执行的目标代码文件 data:数据文件
七、查看文件大小 查看具体某个文件的大小:du -sh test.tar ll -h test.tar 列出当前文件夹下使用文件,并显示大小:du -sh * :
八、参数列表 ZIP参数列表: zip Linux上适用的参数: -1 : 最快压缩,压缩率最差。 -9 : 最大压缩,压缩率最佳。 -b : 暂存文件的路径。这个参数一般在要产生的 zip 文件存在,而硬盘现有空间不足时。 -c : 替新增或更新的文件增加一行注解。 -d : 从 zip 文件移出一个文件。 -D : 不要在 zip 文件中储存文件的目录信息。 -f : 以新文件取代现有文件。 -F : 修复已经损毁的压缩文件。 -g : 将文件压缩附加到 zip 文件中。 -h : 显示辅助说明。 -i : 指定要含入的某些特定文件。 -j : 只储存文件的名称,不含目录。 -k : 强迫使用 MSDOS 格式文件名。 -l : 将 CR ( Carriage Return ) LF ( Line Feed ) 转换成 LF,一般是要将 MS-DOS 上的文本文件压缩后拿到 UNIX 下使用时才使用此参数。这只适用于文本文件 ( .txt ),如果用于二进制文件则会造成二进制文件损毁。 -L : 显示 zip 命令的版权。 -m : 将特定文件移入 zip 文件中,并且删除特定文件。 -n : 不压缩特定扩展名的文件。 -o : 将 zip 文件的时间设成最后修正 zip 文件的时间。 -q : 安静模式,不会显示相关讯息和提示。 -r : 包括子目录。 -t : 只处理 mmddyy 日期以后的文件。 -T : 测试 zip 文件是否正常。 -u : 只更新改变过的文件和新文件。 -v : 显示版本资讯或详细讯息。 -x : 不需要压缩的文件。 -y : 将 symbolic link 压缩,而不是压缩所连结到的文件。 -z : 为 zip 文件增加注解。 -# : 设定压缩速度,-0 表示不压缩,-1 表示最快速度的压缩, -9 :表示最慢速度的压缩 ( 最佳化的压缩 ),预设值为 -6。 -@ : 从标准输入读取文件名称。
相关主题 |