Linux第五周作业

Linux

1、简述rpm与yum命令的常见选项,并举例;

rpm

rpm安装软件分为二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

rpm安装软件时的常用参数:

Install/Upgrade/Erase options:

-i, –install                     install package(s)

-v, –verbose                     provide more detailed output

-h, –hash                        print hash marks as package installs (good with -v)

-e, –erase                       erase (uninstall) package

-U, –upgrade=<packagefile>+      upgrade package(s)

--replacepkge                    无论软件包是否已被安装,都强行安装软件包

–test                            安装测试,并不实际安装

–nodeps                          忽略软件包的依赖关系强行安装

–force                           忽略软件包及文件的冲突

 

Query options (with -q or –query):

-a, –all                         query/verify all packages

-p, –package                     query/verify a package file

-l, –list                        list files in package

-d, –docfiles                    list all documentation files

-f, –file                        query/verify package(s) owning file

 

常用命令组合:

-ivh:安装显示安装进度–install–verbose–hash

-Uvh:升级软件包–Update;

-qpl:列出RPM软件包内的文件信息[Query Package list];

-qpi:列出RPM软件包的描述信息[Query Package install package(s)];

-qf:查找指定文件属于哪个RPM软件包[Query File];

-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];

-e:删除包

 

示例如下:

 

~]# rpm -q gcc          #查询是否已经安装gcc软件

gcc-4.4.7-23.el6.x86_64

~]# rpm -qa |grep gcc   #查询是否已经安装gcc相关软件

libgcc-4.4.7-23.el6.x86_64

gcc-4.4.7-23.el6.x86_64

~]# rpm -qi gcc       #查询安装的gcc软件详细信息

Name        : gcc                          Relocations: (not relocatable)

Version     : 4.4.7                             Vendor: CentOS

Release     : 23.el6                        Build Date: 2018年06月19日 星期二 20时30分36秒

Install Date: 2018年07月18日 星期三 15时41分19秒      Build Host: x86-01.bsys.centos.org

Group       : Development/Languages         Source RPM: gcc-4.4.7-23.el6.src.rpm

Size        : 19499265                         License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions

Signature   : RSA/SHA1, 2018年06月20日 星期三 19时35分44秒, Key ID 0946fca2c105b9de

Packager    : CentOS BuildSystem <http://bugs.centos.org>

URL         : http://gcc.gnu.org

Summary     : Various compilers (C, C++, Objective-C, Java, …)

Description :

The gcc package contains the GNU Compiler Collection version 4.4.

You’ll need this package in order to compile C code.

~]# rpm -qd gcc  查看一个gcc软件的文档安装位置:

~]# rpm -qR gcc    查看一下gcc软件所依赖的软件包及文件;

 

yum指令

yum [options] [command] [package …]

  1. intall

 

安装软件包或者软件包组的最新版本,前提是所有的依赖关系满足要求。如果根据package参数没有对应的匹配,则会根据glob正则模式来匹配下载软件包。如果package参数以“@“开头,则将会以groupintall命令执行软件包组的安装。如果package参数是一个文件时,则会以localinstall命令执行本地软件包安装。

 

yum install package1 [package2] […]

 

  1. update

如果命令执行时没有package参数,则会更新所有已安装的软件。如果有一个或更多的package参数,则只会更新package参数对应的软件。在更新的过程中,yum会确保所有的依赖关系都满足。如果package参数对应的软件还没有安装,则update命令不会进行安装操作。

yum update [package1] [package2] […]

 

  1. update-to

命令的执行和update类似,和update不同的是可以更新到软件具体版本。

yum update-to [package1] [package2] […]

 

  1. check-update

检测系统所有需要更新的软件,这个检测过程并不不需要软件运行。若有软件需要更新,则返回值100并展示一个需要更新软件列表。若没有软件需要更新,则返回值0。若执行过程中发生了错误,则返回1。

 

yum check-update

 

  1. upgrade

命令的执行和update –obsoletes类似,废弃的软件包也会被更新

yum upgrade [package1] [package2] […]

 

  1. upgrade-to

命令的执行和upgrade类似,和upgrade不同的是可以更新到软件的指定版本。

yum upgrade-to [package1] [package2] […]

 

  1. distribution-synchronization/distro-sync

 

同步已安装的软件到最新的可用版本,yum根据情况选择是废弃还是更新还是降级软件。在一般的情况下都是和upgrade命令相同,但是有一种情况特殊,当已经安装了软件FOO的版本4,但是yum源中最新可用版本是版本3,则此命令会进行软件降级,降到版本3。

此命令在对groups(软件包组)和本地软件包是不起作用的。

yum distribution-synchronization [package1] [package1] […]

 

  1. remove/erase

移除系统里指定的软件,同时依赖这个软件的其它软件也会被一并移除。

yum remove | erase package1 [package2] […]

 

  1. list

列出可用软件包的各种信息。更多命令参数信息详见以下的“List Options“一节。

 

yum list […]

 

  1. info

列出可用软件包的描述和概要信息。更多命令参数信息和list命令的相同。

yum info […]

 

  1. provides/whatprovides

找出包含指定feature(特性)或文件的软件包,使用一个特定字段或file-glob-syntax通配符来找出相关的可用或已安装软件包。

 

yum provides | whatprovides feature1 [feature2] […]

 

  1. clean

清除yum缓存,

yum clean [package | metadata | expire-cache | rpmdb | plugins | all]

 

  1. makecache

针对当前的yum repo(源/资源库)下载元数据并使其可用。

yum makecache

 

  1. groupinstall

安装一个group(软件包组)内所有的软件包。

yum groupinstall group1 [group2] […]

 

  1. groupupdate

更新一个group(软件包组)内所有的软件包。

yum groupupdate group1 [group2] […]

 

  1. grouplist

列出所有的yum repo(源/资源库)中可用的group(软件包组),如果group(软件包组)内所有必要的软件包都已安装,则该group(软件包组)被标识为已安装。参数“hidden“能显示隐藏的group(软件包组)。如果还添加了“-v“参数,则进入详情模式并同时显示groupid。

yum grouplist [hidden] [groupwildcard] […]

 

  1. groupremove

移除group(软件包组)所有的软件。

yum groupremove group1 [group2] […]

  1. groupinfo

列出group(软件包组)的描述以及所包含的软件包。添加“-v“进入详情模式能看到更多的详情。

yum groupinfo group1 […]

 

  1. search

在只知道软件包部分信息的情况下进行软件包查找。默认先查找软件包名称和概要,接着对软件包的描述和url进行查找。

yum搜索会把匹配度高的软件包放在结果的前面。

可以在第一个参数设置为“all“来强制搜索所有内容。

yum search string1 [string2] […]

 

  1. shell

yum shell [filename]

 

  1. resolvedep

列出依赖参数dep的所有软件包

yum resolvedep dep1 [dep2] […]

 

  1. localinstall

通过本地软件包安装软件

yum localinstall rpmfile1 [rpmfile2] […]

 

  1. localupdate

通过本地软件包更新软件

yum localupdate rpmfile1 [rpmfile2] […]

 

  1. reinstall

重新安装软件

yum reinstall package1 [package2] […]

 

  1. downgrade

通过package对软件进行降级

yum downgrade package1 [package2] […]

 

  1. deplist

列出软件所依赖的信息

 

yum deplist package1 [package2] […]

 

  1. repolist

列出repo(源/资源库)的信息

yum repolist [all | enabled | disabled]

 

  1. version

列出yum的版本信息

yum version [all | installed | available | group-* | nogroups* | grouplist | groupinfo]

 

  1. history

列出操作信息

 

yum history [info | list | packages-list | packages-info | summary | addon-info | redo | undo | roll-back | new | sync | stats]

 

  1. load-transaction

yum load-transaction [txfile]

 

  1. check

检查本地rpmdb以及软件是否存在问题

yum check

 

  1. 使用Cache执行命令

-C | –cacheonly

 

  1. 使用执行的配置文件执行命令

-c [配置文件路径]

 

  1. 显示命令执行详情

-v | –verbose

 

  1. 静默安装

-q | –quiet

 

  1. 默认执行yes确认

-y | –assumeyes

 

  1. 默认执行no否定

–assumeno

 

  1. 指定软件安装目录路径,覆盖默认的目录

–installroot=[安装目录路径]

 

  1. 指定可用repo(软件库)

–enablerepo=[repo名称]

 

  1. 指定不可用repo(软件库)

–disablerepo=[repo名称]

 

  1. 忽略依赖关系

–skip-broken

 

  1. 不更新,只下载

–downloadonly

 

  1. 指定更新下载路径

–downloaddir=[下载路径]

  1. 查看rmp/yum的版本

yum –version | yum version

 

2、自建yum仓库,分别为网络源和本地源;

建立本地yum仓库(包含网络源和本地源):

1)挂载系统或者安装包的光盘到光驱;

# mkdir /mnt/Centos6.7/

~]# mount /dev/cdrom /mnt/Centos6.7/

mount: block device /dev/sr0 is write-protected, mounting read-only

# cd /etc/yum.repos.d/

# mkdir repo_bak

# mv *.repo /etc/yum.repos.d/repo_bak/

# vim Local-ISO.repo

1 [CentOS6-base]

2 name=CentOS-6-base

3 baseurl=file:///mnt/Centos6/Packages

4         https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/

5 gpgcheck=1

6 enabled=1

7 gpgkey=file:///mnt/Centos6RPM-GPG-KEY-CentOS-6

8 gpgkey=https://mirrors.aliyun.com/centos/7.5.1804/os/x86_64/RPM-GPG-KEY-CentOS-7

~]# yum clean all

已加载插件:fastestmirror, refresh-packagekit, security

Cleaning repos: CentOS6-base

清理一切

Cleaning up list of fastest mirrors

~]# yum makecache

已加载插件:fastestmirror, refresh-packagekit, security

Determining fastest mirrors

* CentOS6-base:

CentOS6-base                                                                                                                                                                                                         | 4.0 kB     00:00 …

CentOS6-base/group_gz                                                                                                                                                                                                | 219 kB     00:00 …

CentOS6-base/filelists_db                                                                                                                                                                                            | 6.2 MB     00:00 …

CentOS6-base/primary_db                                                                                                                                                                                              | 4.6 MB     00:00 …

CentOS6-base/other_db                                                                                                                                                                                                | 2.8 MB     00:00 …

元数据缓存已建立

~]# yum repolist

Loading mirror speeds from cached hostfile

* CentOS6-base:

仓库标识                                                                                                           仓库名称                                                                                                            状态

CentOS6-base                                                                                                       CentOS-6-base                                                                                                       6,575

repolist: 6,575

~]# yum list

 

3、简述at和crontab命令,制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00;

at 命令是针对仅运行一次的任务,crontab命令是用来制定执行循环运行的例行性计划任务。

at命令格式:

at[参数][时间]

命令功能:

在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程(

ps -ef | grep atd查看, 开启用/etc/init.d/atd start or restart;

开机即启动则需要运行 chkconfig –level 2345 atd on)。

-m 当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出

-I atq的别名

-d atrm的别名

-v 显示任务将被执行的时间

-c 打印任务的内容到标准输出

-V 显示版本信息

-q<列队> 使用指定的列队

-f<文件> 从指定文件读入任务而不是从标准输入读入

-t<时间参数> 以时间参数的形式提交要运行的任务

示例:

~]# at 9:26

at> /bin/ls >/root/ls.txt

at> <EOT>  #此处使用Ctrl+D键作为停止输入;

job 8 at 2018-07-26 09:26

~]# cat ls.txt

date.sh

fun.sh

guess.sh

jisuan.sh

num.sh

test.sh

~]# atq  #计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务

12   2018-07-26 11:20 a root

crontab命令格式:

crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

命令功能:

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。

命令参数:

-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般由root用户来运行。

file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

-i:在删除用户的crontab文件时给确认提示。

 

~]# crontab -e

10 3,5 * * 3 echo $(date ‘+\%F \%T’)

~]# crontab -l

10 3,5 * * 3 echo $(date ‘+\%F \%T’)

4、简述sed常用操作命令,并举例。

sed处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕;接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

sed命令行格式:sed [options] ‘command’ file(s)

options常用选项:

-n或–quiet或——silent:仅显示script处理后的结果;

-e<script>或–expression=<script>:以选项中的指定的script来处理输入的文本文件;        -f<script文件>或–file=<script文件>:以选项中指定的script文件来处理输入的文本文件;

-r∶sed 的动作支援的是延伸型正规表示法的语法;

-i∶直接修改读取的档案内容,而不是由萤幕输出;(此命令选项慎重使用,再三确认之后才使用。)

-h或–help:显示帮助;

-V或–version:显示版本信息。

Command常用命令:

a:新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);

c:取代,c 的后面可以接字符串,这些字符串可以取代n1,n2 之间的行;

d:删除,d 后面通常不接任何字符串;

i:插入,i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);

p:列印,亦即将某个选择的资料印出。通常 p 会与参数 sed-n 一起运作;

s:取代,可以直接进行取代的工作,通常与正规表达式搭配使用。

实例说明:

新增操作:a命令

sed ‘/^bird/a\test’ file将test追加到 以bird开头的行后面

删除操作:d命令

sed ‘/^$/d’ file   #删除空白行;

sed ‘2d’ file     #删除第二行;

sed ‘2,$d’ file   #删除第2行到最后一行;

sed ‘$d’ file     #删除最后一行;

sed ‘/^bird/’d file   #删除所有开头是bird的行;

插入操作:i命令

sed -i ‘3i\bird ‘ bird.conf   #在bird.conf文件第3行之前插入bird

替换文本中的字符串:s命令

sed ‘s/bird/birds/’ file  #将文本中的bird替换成birds;

sed -i ‘s/ bird / birds /g’file  #将file文件中每一行的第一个bird替换为birds;

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/103984

评论列表(0条)

  • 马哥教育
    马哥教育 2018-09-20 09:05

    不错的文章,其中rpm包管理上可以列举一些例子稍微说明一下哈,继续加油。

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code