Homework_week5

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

RPM
rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变的容易、并且具有查询、验证软件包的功能
  • 安装
rpm {-i|–install} [install-options] PACKAGE_FILE …
选项:
-h:-hash,显示安装进度
-v:–verbose,显示安装过程中的详细信息
-vv:显示更详细信息
-vvv:更详细
–testL不执行真正的安装过程,仅仅报告依赖关系以及冲突信息等;
–nodeps:忽略依赖关系(不建议)
–replacepkgs:重新安装并覆盖原有文件
  • 升级
rpm {-U|–upgrade}[install-options]PACKAGE_FILE… 升级或安装
rpm {-F|–freshen}[install-options]PACKAGE_FILE… 升级
选项:
–test:不执行真正的安装过程,仅报告依赖关系以及冲突信息等
–nodeps:忽略依赖关系(不建议)
–oldpackage:降级到旧版本
注意:
1、不要升级内核。Linux允许多内核共存,所以可以直接安装多个不同版本内核
2、如果程序包的配置文件安装后曾被修改,那么升级时新版本的文件不会覆盖老版本的配置文件,把新版本的配置文件重命名(加后缀.remnew)后保存
  • 查询
rpm {-q|–query} [select-options] [query-options]
选择选项:
rpm -q PACKAGE_NAME:查询某些包是否已安装
rpm -qa:查询已经安装的所有包
rpm -qf /PATH/TO/SOEMFILE:查询某文件是由哪个包安装生成的
rpm -qpi PACKAGE_NAME:查询尚未安装的包文件的相关信息
查询选项:
rpm -qi PACKAGE_NAME:查询某包的简要说明信息
rpm -ql PACKAGE_NAME:查询某包安装后生成的文件列表
rpm -qc PACKAGE_NAME:查询某包安装后生成的所有配置文件
rpm -qd PACKAGE_NAME:查询某包安装后生成的所有帮助文件
rpm -q –changelog PACKAGE_NAME:查看某包制作时随版本变化的changelog信息
rpm -q –provides PACKAGE_NAME:查询某包提供的capabilities
rpm -q –requires PACKAGE_NAME:查询某包所依赖的capabilities
rpm -q –scripts PACKAGE_NAME:查询某包安装或卸载时执行脚本
脚本有四类:
preinstall:安装过程开始之前执行的脚本
postinstall:安装过程完成后执行的脚本
preuninstall:卸载开始之前执行的脚本
postuninstall:卸载过程完成之后执行的脚本
  • 卸载
rpm {-e|–erase} [–allmatches] [–nodeps] [–test] PACKAGE_NAME …
选项:
–nodeps:忽略依赖关系
–test:测试卸载
–allmatches:如果一个程序包同时安装多个版本,则全部卸载
注意:如果程序包的配置文件安装后曾被修改,那么卸载时此文件通常不会被删除而是被重命名(加后缀.rpmsave)后保存
  • 校验
rpm {-V|–verify} [select-options] [verify-options]
当没有输出结果时表示如简报完整,当有相应输出表明对应的内容有膝盖,具体如下:
S:文件大小
M:文件的类型或文件的属性
5:MD5指纹码
D:装置的主/次代码
L:Link路径
U:文件的所属人
G:文件的所属群组
T:文件的创建时间
P:capabilities
YUM
yum是通过分析rpm的标头数据后,根据各软件的依赖关系制作出有依赖关系时的解决方案,然后可以自动处理软件的依赖性问题,以解决软件安装、移除与升级的问题。
常用命令:
yum repolist {all|enabled|disabled} 列出所有/已启用/已禁用的yum源
yum list {all|installed|avaliable} 列出所有/已安装/可安装的软件包
yum info package 显示某一个软件包的信息
yum install package 安装软件包
yum reinstall package 重新安装软件包
yum remove|earse package 卸载软件包
yum whatprovides|provides files 查询某个文件是哪个软件包生成的
yum grouplist {all|installed|avaliable} 列出所有/已安装/可安装的软件包组
yum groupinfo 显示某个软件包组的信息
yum groupinstall 安装某个软件包组
yum groupremove 删除某个软件包组
yum history 查看yum使用的历史
yum clean {all|packages|metadata} 清除所有/软件包/元数据
yum makecache 生成yum元数据
yum –nogpgcheck 不校验公钥文件
yum -y 自动进行操作

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

网络源
1.vim /etc/yum.repos.d/Centos-network.repo
2.添加以下内容
[http]
name=mirros ali
baseurl=baseurl=http:///http://mirrors.163.com/centos/7/os/x86_64/
enable=1
gpgcheck=0
本地源
1. mount -rt /dev/cdrom /media/cdrom
2.vim /etc/yum.repos.d/centos-network.repo
3.添加以下内容
[xen4centos]
name=Xen 4 CentOS 6
baseurl=file:///media/cdrom
gpgcheck=1

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

at命令:适合一次性的任务计划
选项:
-l:相当于atq,列出所有用户的at队列
-d:相当于atm,取消一个工作
-v:使用明显的时间格式列出工作列表
-f:把所有任务放置于文件中,让at读取此文件作为要运行的任务
crontab命令:适合周期性的任务计划
选项:
-l:列出所有任务
-e:打开编辑任务界面
-r:移除所有任务
注意:删除单个任务应该通过编辑界面删除行实现
示例:
1.编写输出当前时间的脚本
echo “date +”%Y-%m-%d %H:%M:%S”” >> /root/show_time2.sh
2.制定任务
(1) crontab -e
(2) 添加一行,内容如下:
10 3,5 * * 3 /root/show_time2.sh

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

sed [OPTION]… {script-only-if-no-other-script} [input-file]…
选项:
-r:支持扩展正则表达式
-n:静默模式
-e script1 -e script2 -e script3:多脚本运行
-f /path/to/script_file:读取指定脚本
-i:直接修改源文件
地址定界:
#:指定行
$:最后一行
/regexp/:任何被regexp匹配到的行
\%regexp%\:同上,不过换了%作为regexp边界符
sed编辑命令:
d:删除模式空间中的行
=:为模式空间中的行打印行号
a \text:在行后追加文本“text”,支持使用\n实现多行追加
i \text:在行前插入文本“text”,支持使用\n实现多行插入
c \text:用text替换匹配到的行
p:显示模式空间中的内容
s///:查找替换,其分隔符可自行指定,常用的有s@@@,s###等
替换标记:
g:全局替换
i:不区分大小写
示例:
1、删除某文件中所有行首的空白字符
sed ‘s/^[[:space:]]\+//’ /root/11.txt
2、删除某文件中所有行首的#和#后面的空白字符
sed ‘s/^#[[:space:]]\+’ /root/11.txt
3、把某文件的奇数行保存为另一个文件中
sed ‘1~2w /root/11.1.txt’ /root/11.txt
4、echo一个文件路径给sed命令,去除其基名和路径名
echo “/tmp/floor1/floor2/hi.txt” | sed ‘s@^.*/\([^/]\+\)@\1@’ #取基名
echo “/tmp/floor1/floor2/hi.txt” | sed ‘s@[^/]\+\?$@@’ #取路径名

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

(0)
鸡翼不晓飞鸡翼不晓飞
上一篇 2018-07-23
下一篇 2018-07-23

相关推荐