1.简述rpm与yum命令的常见选项,并举例
rpm的相关命令和选项
- rpm命令: rpm [OPTIONS] [PACKAGE_FILE]
- 安装: -i, --install
- 升级: -U, --update,-F, --freshen
- 卸载: -e, --erase
- 查询: -q, --query
- 校验: -v, --verify
- 数据库维护: --builddb, --initdb
- 安装:
- rpm {-i|--install} [install-options] PACKAGE_FILE...
- rpm -ivh PACKAGE_FILE....
- GENERAL OPTIONS:
- -v: VERBOSE,详细信息
- -vv: 更详细的输出
- [install-options]:
- -h: hash marks输出进度条;每个#表示2%的进度;
- --test: 测试安装,检查并报告依赖关系及冲突消息等;
- --nodeps: 忽略依赖关系;不建议;
- --replacepkgs: 重新安装
- 注意: rpm可以自带脚本;
- 四类: --noscripts
- preinstall: 安装过程开始之前运行的脚本, %pre, --nopre
- postinstall: 安装过程完成之后运行的脚本, $post, --nopost
- preuninstall: 卸载过程真正开始执行之前运行的脚本, %preun, --nopreun
- postuninstall: 卸载过程完成之后运行的脚本, %postun, --nopostun
- 四类: --noscripts
- --nosignature: 不检查包签名信息, 不检查来源合法性
- --nodigest: 不检查包完整性信息
- rpm {-i|--install} [install-options] PACKAGE_FILE...
- 升级:
- rpm {-U|--update} [install-options] PACKAGE_FILE...
- rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
- -U: 升级或安装;
- -F: 只是升级;
- rpm -Uvh PACKAGE_FILE...
- rpm -Fvh PACKAGE_FILE...
- --oldpackage: 降级;
- --force: 强制升级;
- 注意:
- (1)不要对内核做升级操作; Linux支持多内核版本并存,因此,直接安装新版本内核;
- (2)如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;
- 卸载:
- rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts][--test] PACKAGE_NAME ...
- --allmatches: 卸载所有匹配指定名称的程序包的各版本;
- --nodps: 忽略依赖关系
- --test: 测试卸载, dry run模式
- rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts][--test] PACKAGE_NAME ...
- 查询:
- rpm {-q|--query} [select-options] [query-options]
- [select-options]
- PACKAGE_NAME: 查询指定的程序包是否已经安装,及其版本;
- -a, --all: 查询所有已经安装过的包;
- -f FILE: 查询指定的文件由哪个程序包安装生成;
- -p, --package PACKAGE_FILE: 用于实现对未安装的程序包执行查询操作;
- --whatprovides CAPABILITY: 查询指定的CAPABILITY由哪个程序包提供;
- --whatrequires CAPABILITY: 查询指定的CAPABILITY被哪个包所依赖;
- [query-options]
- --changelog: 查询rpm包的changelog
- -l, --list: 程序安装生成的所有文件列表;
- -i, --info: 程序包相关的信息,版本号、大小、所属的包组,等等;
- -c, --configfiles: 查询指定的程序包提供的配置文件;
- -d, --docfiles: 查询指定的程序包提供的帮助文档;
- --provider: 列出指定的程序包提供的所有的CAPABILITY;
- -R, --requires: 查询指定的程序包的依赖关系;
- --scripts: 查询程序包自带的脚本片段;
- 用法:
- qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
- qpi PACKAGE FILE, -qpl, -qpc, -qpd
- 校验:
- 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命令的常见选项
参数选项 | 解释说明 |
---|---|
repolist [all|enabled|disabled] | 显示仓库列表 |
list [...] | 显示程序包 |
1.yum list [all | glob_exp1] [glob_exp2] [...] | |
2.yum list {available|installed|updates} [glob_exp1] [...] | |
install package1 [package2] [...] | 安装程序包 |
reinstall package1 [package2] [...] | 重新安装 |
update [package1] [package2] [...] | 升级程序包 |
downgrade package1 [package2] [...] | 降级程序包 |
check-update | 检查可用升级 |
remove | erase package1 [package2] [...] | 卸载程序包 |
info [...] | 查看程序包information |
provides | whatprovides feature1 [feature2] [...] | 查看指定的特性是由哪个程序包所提供 |
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] | 清理本地缓存 |
makecache [fast] | 构建缓存 |
search string1 [string2] [...] | 以指定关键字搜索程序包名及summary信息 |
deplist package1 [package2] [...] | 查看指定包所依赖的capabilities |
history [info|list|stats] | 查看yum事务历史 |
group | 包组管理的相关命令 |
1.groupinstall group1 [group2] [...] | |
2.groupupdate group1 [group2] [...] | |
3.grouplist [hidden] [groupwildcard] [...] | |
4.groupremove group1 [group2] [...] | |
5.groupinfo group1 [...] | |
6.search string1 [string2] [...] |
2、自建yum仓库,分别为网络源和本地源
第一、如何自建本地yum源仓库
- 先查看目前服务器上所拥有的yum源仓库
[root@Centos7 ~]#yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
repo id repo name status
base/7/x86_64 CentOS-7 - Base 9,911
extras/7/x86_64 CentOS-7 - Extras 402
updates/7/x86_64 CentOS-7 - Updates 1,333
repolist: 11,646
- 查看目前所有的yum源仓库,并对其进行备份
[root@Centos7 yum.repos.d]#mkdir backup
[root@Centos7 yum.repos.d]#ll
total 36
drwxr-xr-x. 2 root root 4096 Sep 11 01:21 backup
-rw-r--r--. 1 root root 1664 Apr 29 00:35 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Apr 29 00:35 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Apr 29 00:35 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Apr 29 00:35 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Apr 29 00:35 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Apr 29 00:35 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 Apr 29 00:35 CentOS-Vault.repo
[root@cherry yum.repos.d]# mv CentOS-* backup
- 创建cdrom挂载点,并挂载本地镜像iso文件
[root@Centos7 ~]#mkdir /mnt/cdrom
[root@Centos7 ~]#mount -r /dev/cdrom /mnt/cdrom
- 配置本地镜像文件
[root@Centos7 ~]#cd /etc/yum.repos.d/
[root@Centos7 yum.repos.d]#ll
total 4
drwxr-xr-x. 2 root root 4096 Sep 11 01:22 backup
[root@Centos7 yum.repos.d]#vim /etc/yum.repos.d/CentOS_local.repo
[local]
name=CentOS7 local_source
baseurl=file:///mnt/cdrom
gbgcheck=0
enabled=1
- 配置缓存
[root@Centos7 ~]#yum clean all
[root@cherry yum.repos.d]# yum makecache
[root@cherry yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name status
local CentOS7 local_source 9,911
repolist: 9,911ed
第二、如何自建网络yum源
第一种方案,直接修改repo源,和上述本地方案类似,最后一步配置页面做一下更改;
[root@Centos7 yum.repos.d]#vim /etc/yum.repos.d/CentOS_local.repo
[network]
name=CentOS7 network_source
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gbgcheck=0
enabled=1
第二种方案通过安装http或ftp服务构建;
- 安装httpd网络服务
[root@cherry ~]# yum install httpd
- 启动httpd服务,并测试是否能通过ip正常打开
[root@cherry yum.repos.d]# systemctl start httpd
- 进入html的文件目录创建1级和2级子目录
[root@cherry ~]# cd /var/www/html
[root@cherry html]# mkdir -pv httpd/1/2
- 把镜像光盘挂载到1级目录下
[root@cherry html]# mount -r /dev/cdrom /var/www/html/httpd/1
3、简述at和crontab命令,制定一个脚本每周三的凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00
at [OPTION]...TIME
- TIME:
- HH:MM [YYYY-mm-dd]
- noon, midnight, teatime
- tomorrow
- now+#
- UNIT: minutes,hours,days,OR weeks
- at的作业有队列,用单个字母表示,默认都使用a队列
- 常用队列:
- -l: 查看作业队里,相当于atq
- -f: /PATH/FROM/SOMEFILE; 从指定文件中读取作业任务,而不用再交互式输入;
- -d: 删除指定的作业,相当于atrm;
- -c: 查看指定作业的具体内容;
- -q QUEUE: 指明队列;
crontab命令:
- crontab [-u user] [-l | -r | -e] [-i]
- -e: 编辑任务
- -l: 列出所有任务
- -r: 移除所有任务;即删除/var/spool/cron/USERNAME文件;
- -i: 在使用-r选项移除所有任务时提示用户确认;
- -u user: root用户可为指定用户管理cron任务;
10 3,5 0 0 3 /usr/bin/echo "The present time is $(date "+%F %H:%m:%S")."
4、简述sed常用操作命令,并举例
- sed [OPTION]... script [input-file]...
- script:
- 地址定界编辑命令
- 常用选项:
- -n: 不输出模式空间中的内容至屏幕;
- -e script, --expression=script: 多点编辑;
- -f /PATH/TO/SED_SCRIPT_FILE
- 每行一个编辑命令;
- -r, --regexp-extended: 支持使用扩展正则表达式;
- -i[SUFFIX], --in-place[=SUFFIX]: 直接编辑原文件;
- 地址定界:
- (1)空地址: 对全文进行处理;
- (2)单地址:
-
:指定行;
- /pattern/: 被此模式匹配到的每一行;
-
- (3)地址范围
-
,#:
-
,+#:
-
, /pat1/, /pat2/
-
- (4)步进: ~
- 1~2: 所有奇数行
- 2~2: 所有偶数行
- 编辑命令:
- d: 删除
- p: 显示模式空间中的内容;
- a \text: 在行后面追加文本"test",支持使用\n实现多行追加;
- i \text: 在行前面追加文本"test",支持使用\n实现多行追加;
- c \text: 把匹配到的行替换为此处指定的文本"test";
- w /PATH/TO/SOMEFILE: 保存模式空间匹配到的行至指定的文件中;
- r /PATH/FROM/SOMEFILE: 读取指定文件的内容至当前文件被模式匹配到的行后面;实现文件合并;
- =: 为模式匹配到的行打印行号;
- !: 条件取反;
- 地址定界!编辑命令;
- s///: 查找替换,其分隔符可自行指定,常用的有s@@@,s###等;
- 替换标记:
- g:全局替换
- w:/PATH/TO/SOMFILE: 将替换成功的结果保存至指定文件中
- p:显示替换成功的行
- 替换标记:
- 高级编辑命令:
- h: 把模式空间中的内容覆盖至保持空间中
- H: 把模式空间中的内容追加至保持空间中
- g: 把保持空间中的内容覆盖至模式空间中
- G: 把保持空间中的内容追加至模式空间中
- x: 把模式空间中的内容与保持空间中的内容互换
- n: 覆盖读取匹配到的行的下一行至模式空间中
- N: 追加读取匹配到的行的下一行至模式空间中
- d: 删除模式空间中的行
- D: 删除多行模式空间中的所有行
- script:
网友评论