rpm与yum

rpm包及yum

包查询

rpm -q –query  搭配别的选项可用来包查询

-a

-f

-p rpmfile:针对尚未安装的程序包文件做查询操作  

-p 选项参数为文件名(一定要指定路径)

例子:

rpm -qpl /media/Packages/zsh-4.3.11-4.el6.centos.2.x86_64.rpm

可用来模拟安装, 模拟安装成功后查看在系统中产生的文件

–whatprovides CAPABILITY :  可用来查看某种功能是由哪个包提供

rpm -q –whatrequires CAPABILITY  查询指定的CAPABILITY被哪个包所依赖

 

解压rpm包:

rpm2cpio 包文件 | cpio -itv  预览包内文件

rpm2cpio 包文件 | cpio -id "*.conf"  释放包内文件

 

包查询

–changelog  查询rpm包的changelog

-c   查看程序的配置文件

-d    查看程序的文档

-i    inforation

-l    所有的系统文件

–scripts  : 程序包自带的脚本片段

-R : 查看指定的程序包所依赖的CAPABILITY

–provides  列出指定程序包所提供的CAPABILITY

 

卸载包:

rpm -e 包名

rpm -e 是不可以直接xxx, xxx是没有.rpm后缀的。

 

包校验:

rpm -V  包名

用来校验包只安装后, 系统中的文件的变化。

 

包来源合法性验证及完整性验证:

完整性验证: SHA256

来源合法性验证: RSA

rpm -K|checksig rpmfile 检测包的完整性及合法性

rpm –import / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

CentOS 7 发行版光盘提供: RPM-GPG-KEY-CentOS-7

rpm -qa gpg-pubkey* // 可用来查看rpm包是否导入公钥

 

rpm数据库

/var/lib/rpm

rpm –initdb | –rebuilddb

initdb: 初始化   有许多文件

如果事先不存在数据库, 则新建之

否则, 不执行任何操作

–rebuilddb:重建  只有Packages文件夹

无论当前存在与否, 直接重新创建数据库。

 

yum dnf

yum的工作的方式是C/S模式。 yum的服务端其实是文件服务器。

yum只支持三种文件服务器

http://

ftp://

file:///

 

yum客户端的配置文件:

/etc/yum.conf

/etc/yum.repos.d/*.repo

 

[repositoryID]   唯一性

name=xxxxxxxxxxxx

baseurl=xxxxxxxxx

enabled=

gpgcheck=

gpgkey=

enablegroups

failovermethod={roundrobin|priority}

默认: roundrobin   意外随记挑选;

cost=  默认为1000  开销

while 循环的特殊用法(遍历文件的每一行):

 

Shell编程模块

while read line;do

循环体

done < /PATH/FROM/SOMEFILE

 

for(())  适合于数字循环

select 循环与菜单(使用与交互式的建立)

select variable in list

do

循环体指令

done

加入list为{a,b,c}

这会产生一个的界面

1>a

2>b

3>c

用户可以使用1 2 3 进入相应的模块功能, 而不是a b c

select  循环主要用于创建菜单,按数字顺序排列的

菜单项将显示在标准错误上,并显示 PS3  提示符,

等待用户输入

用户输入菜单列表中的某个数字,执行相应的命令

用户输入被保存在内置变量 REPLY  中。

 

for 与 select 后面都可以没有循环列表, 而可以使用位置变量。

函数是不能单独使用, 而应该被调用使用。 被调用的函数与依附的shell程序是一个整体, 没有父子进程之说。

 

定义函数的三种方式:

1>. function myfun1 {}    

2>. myfun2() {}

3>. function myfun3() {}

{ 必须和函数名隔开或则是直接从下一行开始。

 

C、java都非常相似, 函数的退出状态码:

(1). 取决于函数中执行的最后一条命令的退出状态码

(2). 自定义退出状态码, 其格式为:

return 从函数中退出, 由最后命令的状态决定返回值

return 0 无错误返回

return 1-255  有错误返回

return是用于函数中的, 而不是不用于自己编写的脚本程序中, 用来返回返回以值并且终止函数。

如果在自己写的脚本中想要终止的话, 使用exit退出当前shell就ok了。

 

set  查看变量和函数

unset  取消变量和函数

 

函数可以接受参数:

传递参数给函数:调用参数时,在函数名后面以空白分隔给定参数列表即可;例如"testfunc  arg1 arg2 …"

函数体内部的参数, 是函数本身的参数, 而函数为参数则是整个shell脚本的参数。

add(){

        ((sum=$1+$2))   函数内部的参数

        echo "sum=$sum"

}

add $1 $2    而这两个参数则是函数外部的参数

 

函数变量:

坏境变量: 当前shell和子shell有效

export a=1

echo $a

aa(){

        a=2

}

aa

echo $a

 

本地变量: 只在当前shell进程有效,为执行脚本会启动

专用子shell进程;因此,本地变量的作用范围是当前shell脚本

程序文件,包括脚本中的函数。

 

局部变量:函数的生命周期;函数结束时变量被自动销毁

注意:如果 函数中有局部变量,如果其名称同本地变量, 使用局部变量。

局部变量只能作用于函数中, 这样仅仅自己使用, 不影响函数外部的与其同名的名字

a=1

echo $a

aa(){

        local a=2

}

aa

echo $

执行结果:

[root@centos7 0819]# bash export.sh

1

1

递归:

1>. 自己调用自己

2>. 告诉自己什么时候就停下来不调用了

3>. 递归是由层数限制的。

#!/bin/bash

#

fact(){

if [ $1 -eq 0 -o  $1 -eq 1 ];then

echo 1

else

 sum=$[$1*$(fact $[$1-1])]

 echo $sum

fi

}

fact 5

 

如何判断输入的参数为

expr xxx + 0  只有整数才能参加运算, 通过命令的返回结果来判断xxx是否为整数。

 

            作业: 斐波拉契数列递归

feibolaqi.main

feibo() {

if [ $1 -eq 0 ];then

echo "0"

elif [ $1 -eq 1 ];then

echo "1"

else

echo "$[$(feibo $[$1-1])+$(feibo $[$1-2])]"

fi

}

feibolaqi.sh

while true;

do

read -p "please input one zheng interger:" int

if ! expr $int + 0 >> /dev/null;then

echo "please input one integer!!!"

elif [ $int -lt 0 ];then

echo "please input one zheng integer!!!"

else

. ./feibolaqi.main

feibo $int

exit

fi

done

 

 

 

 

 

 

 

 

原创文章,作者:458813466,如若转载,请注明出处:http://www.178linux.com/38770

(0)
458813466458813466
上一篇 2016-08-24 10:26
下一篇 2016-08-24 10:27

相关推荐

  • nginx+keepalived构建负载均衡代理服务器

    实验环境: 1、centos7.3 centos6.82、两台VS提供nginx代理和keepalived3、两台RS提供httpd服务并部署wordpress4、另外一台提供Mysql数据库服务 实验拓扑图: 拓扑图 实验步骤 1、在vs1(172.18.251.4)上配置,用yum安装keepalived和nginx yum install -y kee…

    Linux干货 2017-05-21
  • N26-博客作业-week16

    1、源码编译安装LNMP架构环境 IP:192.168.12.137 Nginx:1.8.1 MariaDB:5.5.57 PHP:5.6.31 安装开发环境包组 yum groupinstall “Development Tools” “Server Platform Development” -y 安装开发程序包 yum install pcre-dev…

    2017-08-04
  • N25期第一周作业

    计算机的组成与功能  一台能正常工作的计算机有硬件和软件组成,计算机的硬件就好比人的躯体,计算机的软件就好比人的思想,人的思想控制指挥人的躯体,计算机有了软件才能进行工作。 硬件大致由CPU,内存,输入输出设备,存储设备组成,各个部件的主要作用流程是:由输入设备(例如:键盘)输入数据, 数据暂时出入内存, 而后由内存传到CPU(CPU又由运算器+控…

    Linux干货 2016-12-05
  • 配置LAMP服务器网站架构

    配置LAMP服务器网站架构 LAMP指的Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立web应用平台。 结构拓扑 httpd服务器配置 安装环境 yum install httpd -y 修改httpd配置 vim /etc/ht…

    2017-06-06
  • 磁盘分区管理之磁盘基础知识1

    1、磁盘基础知识 1.1 磁头 磁头是利用气流漂浮在盘片上,并没有接触到盘片,因而可以在各轨间高速来回移动,但如果磁头距离盘片太高,读取的信号就会太弱;太低又会磨到盘片表面,所以盘片表面必须相当光滑平整,任何异物和尘埃均会使得磁头摩擦到表面而造成数据永久性损坏。 硬盘读写磁头为了能在磁盘表面高速来回移动读取数据,则需漂浮在磁盘表面上,但是不能接触,接触就会造…

    Linux干货 2016-09-07
  • 第一周:Linux基础之常用命令(二)

    一、Linux的命令使用格式 命令的语法通用格式: ~]# COMMAND  OPTIONS  ARGUMENTS   命令  选项  参数 1.  COMMAND,命令:发起命令时将请求内核将某个二进制程序运行为一个进程,命令本身是一个可执行的程序文件,二进制格式的文件有可能会调用共享库文件。 多…

    Linux干货 2016-09-18