N31第五周

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

一.rpm包管理

CentOS系统上使用rpm命令管理程序包:安装、卸载、升级、查询、校验、数据库维护安装

(1)安装[install-options]

rpm {-i | –install} [install-options] PACKAGE_FILE …
-h:使用”#”显示完成进度;

-v:显示安装进度的详细信息;

–test: 测试安装,但不真正执行安装,即dry run模式
–nodeps:忽略依赖关系
(2)卸载

rpm -e

–nodeps:忽略软件包所依赖的其它软件,强制执行

(3)升级

升级:

rpm {-U | –upgrade} [install-options] PACKAGE_FILE …

安装有旧版程序包,则“升级”,如果不存在旧版程序包,则“安装”

rpm {-F|–freshen} [install-options] PACKAGE_FILE..

安装有旧版程序包,则“升级”如果不存在旧版程序包,则不执行升级操作

#注意不要对内核做升级操作,Linux支持多内核版本并存

#如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

(4)查询

rpm {-q|–query} [select-options] [query-options]

-i:显示软件包的信息,比如名称、版本和描述信息;

-l:列出某个软件包内所包含的文件;

-R:查询安装该软件包所需要的其它软件包;

-f: 查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作

-c: 查询程序的配置文件
-d: 查询程序的文档

(5)效验

rpm {-V|–verify} [select-options] [verify-options]

S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P capabilities differ

 

二.yum命令

用法:yum [options] [command] [package …]

显示仓库列表:yum repolist [all|enabled|disabled]

显示程序包:yum list
yum list [all | glob_exp1] [glob_exp2] […]
yum list {available|installed|updates} [glob_exp1]

安装程序包:yum install package1 [package2] […]
yum reinstall package1 [package2] […] (重新安装)#有的部分文件损坏,不能安装就需要重装

升级程序包:yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降级)

检查可用升级:yum check-update

卸载程序包:yum remove | erase package1 [package2] […]

查看程序包information:yum info […]

查看指定的特性(可以是某文件)是由哪个程序包所提供:yum provides | whatprovides feature1 [feature2]

清理本地缓存:清除/var/cache/yum/$basearch/$releasever缓存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

构建缓存:yum makecache

查看指定包所依赖的capabilities:yum deplist package1 [package2] […]

查看yum事务历史:
yum history [info|list|packages-list|packages-info|
summary|addon-info|redo|undo|
rollback|new|sync|stats]
yum history                      #查询执行过的yum事务
yum history info 6
yum history undo 6       #取消第8步,可以把依赖的包也卸载
日志 :/var/log/yum.log

包组管理的相关命令:
yum groupinstall group1 [group2] […]
yum groupupdate group1 [group2] […]
yum grouplist [hidden] [groupwildcard] […]
yum groupremove group1 [group2] […]
yum groupinfo group1 […]

yum的命令行选项:
–nogpgcheck:禁止进行gpg check
-y: 自动回答为“yes”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件

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

一.配置本地源

(1)建立本地源目录

mkdir  /mnt/cdrom    #创建的空的文件夹用于挂载iso镜像文件

mkdir /yum    #为了让iso镜像文件能够被像文件一样被便利地读取利用,将iso文件挂载在一个空的文件里面

(2)挂载Centos光盘

mount /dev/cdrom /mnt/cdrom   #将读入的光盘挂载在设定好的文件夹

cp -r /mnt/cdrom/* /yum   #将光盘内容复制至本地源目录

(3)备份repo

mkdir /etc/yum.repo.d/backup   #创建/etc 下的一个空文件夹用于备份原来的yum源读取文件

mv /etc/yum.repos.d/* /etc/yum.repo.d/backup/  # 备份yum仓库指定文件

(4)编辑wcyum.repo

cd /etc/yum.repo.d/

vim wcyum.repo

[base]                                                #repositoryid,用于指定一个仓库,唯一值     

name=wc                                         #指定仓库的名称

baseurl=file:///yum                      #用于指定本仓库的URL,可以是http:  ftp:  file:  三种格式

enable=1                                           #用于指定是否启用本仓库,默认值为1,即可用

gpgckeck=0                                     # 用于指定是否检查软件包的gpg签名

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7       #用于指定gpg签名文件的URL

(5)刷新测试

yum clean all       #清空本地/var/cache/yum容器清单列表旧数据(既yum缓存)

yum repolist  #列出所有的可用的yum仓库,执行这个命令,会重读yum源设置志向文件,刷新本地容器清单列表

二.配置网络源

(1)备份源镜像文件

mv centos* ./backup

(2)下载阿里云的镜像到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo

http://mirrors.aliyun.com/repo/Centos-7.repo

(3)编辑base.repo

vim/etc/yum.repos.d/base.repo
[base]
name=ftp centos7.4
baseurl=ftp://http://mirrors.aliyun.com/repo/Centos-7.repo/pub/centos/$releasever/os/$basearch/
gpgcheck=0

enable=1

(4)清除缓存

yum clean all            清空缓存

yum makecache       建立缓存

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

at命令:at [option] TIME
 常用选项:
-V 显示版本信息:
-l: 列出指定队列中等待运行的作业;相当于atq
-d: 删除指定的作业;相当于atrm
-c: 查看具体作业任务
-f /path/from/somefile:从指定的文件中读取任务
-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出

at时间格式
 HH:MM 02:00
在今日的 HH:MM 进行,若该时刻已过,则明天此时执行任务
 HH:MM YYYY-MM-DD 02:00 2016-09-20
规定在某年某月的某一天的特殊时刻进行该项任务
 HH:MM[am|pm] [Month] [Date]
04pm March 17
17:20 tomorrow
 HH:MM[am|pm] + number [minutes|hours|days|weeks]
在某个时间点再加几个时间后才进行该项任务
now + 5 minutes
02pm + 3 days

执行方式:
1)交互式 2)输入重定向 3)at –f 文件
 依赖与atd服务,需要启动才能实现at任务
at队列存放在/var/spool/at目录中
 /etc/at.{allow,deny}控制用户是否能执行at任务
白名单:/etc/at.allow 默认不存在,只有该文件中的用户
才能执行at命令
黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行
at命令,而没有在at.deny 文件中的使用者则可执行
如果两个文件都不存在,只有 root 可以执行 at 命令

 crontab命令:
crontab [-u user] [-l | -r | -e] [-i]
-l: 列出所有任务;
-e: 编辑任务;
-r: 移除所有任务;
-i:同-r一同使用,以交互式模式移除指定任务
-u user: 仅root可运行,指定用户管理cron任务

制定 每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00

echo “date +”%Y-%m-%d %H:%M:%S”” >> /tmp/date.sh

crontab -e

10 3,5 * * 3 /bin/bash /tmp/date.sh

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

sed是一种流编辑器,它一次处理一行内容

功能:主要用来自动编辑一个或多个文件,简化对文件的反复
操作,编写转换程序等

用法:sed [option]… 'script' inputfile…”

常用选项

-n:不输出模式空间内容到屏幕,即不自动打印
-e: 多点编辑
-f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
-r: 支持使用扩展正则表达式
-i.bak: 备份文件并原处编辑

编辑命令:
d: 删除模式空间匹配的行,并立即启用下一轮循环
p:打印当前模式空间内容,追加到默认输出之后
a [\]text:在指定行后面追加文本
支持使用\n实现多行追加
i [\]text:在行前面插入文本
c [\]text:替换行为单行或多行文本
w /path/somefile: 保存模式匹配的行至指定文件
r /path/somefile:读取指定文件的文本至模式空间中
匹配到的行后
=: 为模式空间中的行打印行号
!:模式空间中匹配行取反处理

s///:查找替换

一.常用操作

1.处理/etc/fstab路径,使用sed命令取出其目录名和基名
echo "/etc/fstab" |sed -rn 's_(.*/)(.+)/?_\1_p' 取目录
echo "/etc/fstab" |sed -rn 's_(.*/)(.+)/?_\2_p' 取基名

2.利用sed 取出ifconfig命令中本机的IPv4地址
ifconfig ens33 | sed -n '2p' |sed 's@inet@ $g' | sed 's@netmask.*@@g'
ifconfig ens33 | sed -n '2p' |sed -r 's@.*inet(.*)netmask.*@\1@'
ifconfig ens33 | sed -r -n '2s@.*inet(,*) netmask.*@\1@p'
ifconfig ens33 | sed -r ‘2!d;s/.*inet //;s/ netmask.*//'

3.统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数
ls /misc/cd/Packages/*.rpm |sed -r 's/.*\.(.+)\.rpm$/\1/' |sort |uniq -c

4.统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)
sed 's/[^[:alpha:]]/\n/g' /etc/init.d/functions |sed '/^$/d' |sort |uniq -c
grep -Eo "[[:alpha:]]+" /etc/init.d/functions |sort |uniq -c

5.将文本文件的n和n+1行合并为一行,n为奇数行
seq 1 10 |sed 'N;s/\n/ /'
seq 1 10 |xargs -n2

6.删除/tmp/grub.conf文件中所有行的行首的空白字符

sed ‘s/^[[:space:]]\+//’ /tmp/grub.conf

7.删除/tmp/grub.conf文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

sed ‘s/^#[[:space:]]\+//’ /tmp/grub.conf

 

 

 

 

 

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

(0)
王
上一篇 2018-07-30
下一篇 2018-07-30

相关推荐

  • Nginx认证模块与状态监测模块使用示例

    Nginx认证模块与状态监测模块使用示例 一、环境准备 1. 软件版本 CentOS7.4 httpd-tools.x86_64        2.4.6-67.el7.centos.6 nginx.x86_64                  1:1.12.2-2.el7 2. 软件安装 nginx的安装需要epel源,没有配置epel可以直接yum安装…

    2018-06-29
  • nmcli命令

    可以用命令行工具 nmcli 来控制 NetworkManager。 在CentOS / RHEL 7中网络管理命令行工具,也叫nmcli。经常使用ifconfig的用户应该在CentOS 7中避免使用ifconfig了。nmcli的功能要强大、复杂的多。 地址配置工具:nmcli nmcli – command-line tool for controll…

    Linux笔记 2018-05-05
  • Linux基础命令——cp简介

    问世间情为何物,直教人生死相许

    2018-04-03
  • Linux用户与组管理详解

    在linux系统上,用户管理是基于用户名和密码的方式进行资源的分配,了解和掌握用户与组的管理是从事运维工作所必须具备的能力,也是将来从事运维行业的重要工作之一。

    2018-04-03
  • 马哥网络班第31期——第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
    3、请使用命令行展开功能来完成以下练习
    (1)创建/tmp目录下的:a_c,a_d,b_c,b_d
    (2)创建/tmp/mylinux目录下的:
    4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息
    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录
    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
    12、复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中

    Linux笔记 2018-07-18
  • linux文件处理命令和用户管理和权限管理

    文件处理命令
    用户管理
    权限管理

    Linux笔记 2018-05-28