shell命令整理(九)

1、rpm管理

rpm的作用类似于windows上的电脑管家中软件管理、安全卫士里面 “软件管家” 等产品,是 RPM 软件包的管理工具。rpm 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。要想装软件,和 windows 下一样,先得找到安装包。
软件包的获得方式:

  • 不嫌麻烦的话,去官网去下载;

  • 不介意老版本的话,可以从光盘(或者镜像文件)中读取;

rpm要安装软件需要挂载安装,并且一个一个的去安装对应的依赖,对于一般运维工作,使用yum即可

2、YUM包管理系统

2.1 yum简介

yum(Yellow dog Updater Modified)是 CentOS 中属于 RPM 前端软件包管理器,能从指定的服务器中下载 RPM 包,并自动分析和处理 RPM 包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。
yum 相比 rpm 更人性化,更便捷:

  • 联网安装(不用挂载)

  • 联动安装(软件所需依赖自动安装)

  • 联网更新

  • yum 仓库的组成部分

  • 数据 :包含所有的软件包文件

  • 元数据:指的是数据文件:包括每个包的包名、版本信息、各包所包含的文件列表、包与包之间的依赖关系、包的分组信息.

2.2 yum的配置文件

yum 的配置文件有 2 种:

# 为所有仓库提供公共配置
/etc/yum.conf
# 为仓库的指向提供配置
/etc/yum.repos.d/*.repo

2.2.1 主配置文件

路径 /etc/yum.conf

[main]
# 下载RPM包的缓存目录
cachedir=/var/cache/yum/$basearch/$releasever
# RPM缓存的程序包安装完成后是否保存,0表示不保存,1表示保存
keepcache=0
# 调试级别 取值范围 0 – 10,默认值为2
debuglevel=2
# yum相关日志存放路径
logfile=/var/log/yum.log
# 是否要平台完全匹配才能安装
exactarch=1
# 需不需要检查已过期的仓库
obsoletes=1
# 是否检查包的完整性和合法性
gpgcheck=1
# 是否允许支持yum的插件功能,0 表示不允许 ,1表示允许
plugins=1
# 允许保留多少个内核包
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
# 指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release
distroverpkg=centos-release

2.2.2 仓库配置文件

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

# 容器名字,必须是唯一的
[repositoryID]
# 仓库的名字,仅作一个标识
name=Some name for this repository
# 指定真正仓库所在的路径,可以指多个仓库
baseurl=url://path/to/repository/
# 指是否启用这个仓库,1表示启用,0表示不启用
enabled={1|0}
# 是否要检测软件包的合法性,1表示启用,0表示不启用
gpgcheck={1|0}
# 软件包的公钥文件所在路径
gpgkey=URL
# 是否基于组来批量管理程序包
enablegroups={1|0}
# 意思是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,默认为:roundrobin,意为随机挑选;
failovermethod={roundrobin|priority}
# 仓库优先级 ,默认为1000 
cost=1000

2.3 配置本地 yum 源

2.3.1 挂载光盘

虚拟光驱加载镜像文件,然后挂载到本地目录,先用 lsblk 命令查看光驱的块设备名称,这里是 sr0

#建立本地yum源文件夹
mkdir /mnt/dvd
#挂载
mount –o ro /dev/sr0 /mnt/dvd

2.3.2 开机自动挂载

方法 1
修改/etc/rc.local 文件。该文件是操作系统开机后最后执行的一个文件,该文件默认是没有执行权限的,如果你是第一次修改,请记得加执行权限。这就相当于开机后用脚本执行了一条挂载命名

    echo "mount -O ro /dev/sr0 /mnt/dvd" >> /etc/rc.local

方法 2
编写/etc/fstab文件,将光盘当作块状设备挂载到系统中。

    # 将下面一行配置写入/etc/fstab中
    /dev/sr0   /mnt/dvd   iso9660    defaults      0 0

2.3.3 修改配置文件指向本地仓库

配置文件路径:/etc/yum.repos.d/

# 备份源配置文件
mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/
创建本地配置文件,名字随意,如:vim /etc/yum.repos.d/dvd.repo

# 仓库的名字,不要有特殊符号(自定义)
[dvd]
# 仓库描述
name=localdvd
# 指定yum仓库的路径;file://表示本地路径
baseurl=file:///mnt/dvd
# 启用仓库,1表示启用;0表示不启用
enabled=1
# 不用校验软件包的签名,0表示不校验;1表示校验
gpgcheck=0

2.3.4 测试验证

yum clean all    #清空yum缓存 rm -rf /var/cache/yum
yum makecache   #创建yum缓存
yum list       #查看仓库里的软件包

2.4 配置国内网络 yum 源(重点)

前面说了,由于自带的 yum 源是国外的源,速度很慢,所以可以替换为国内的 yum 源。目前国内提供 yum 源的机构有很多,如阿里、网易、搜狐、清华等等,这里以阿里源为例。

2.4.1 还是先备份原来的 yum 源

mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/

2.4.2 下载网络源的 repo 文件到服务器

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
也可以将这两个文件自己保存起来,每次新建服务器,将该源替换进去。

清空并创建缓存

# 清空yum缓存 rm -rf /var/cache/yum
yum clean all
#创建yum缓存
yum makecache

2.5 扩展:自建局域网 yum 源

公司内网自建了 yum 仓库,在公司内的服务器可以使用

[base]
name=CentOS-7-Base-hbgg
baseurl=http://10.10.16.80/centos/7/base/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-7-updates-hbgg
baseurl=http://10.10.16.80/centos/7/updates/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-7-extras-hbgg
baseurl=http://10.10.16.80/centos/7/extras/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-CentOS-7
[epel]
name=CentOS-7-epel-hbgg
baseurl=http://10.10.16.80/centos/7/epel/
gpgcheck=1
gpgkey=http://10.10.16.80/centos/RPM-GPG-KEY-EPEL-7

具体用法不再赘述,参考前文。

3、安装网络 yum 源

# 清理缓存
yum clean all
# 更新YUM源
yum makecache
# 备份默认源
mkdir /root/yum_back
mv /etc/yum.repos.d/* /root/yum_back/
# 删除默认的国外源
rm -rf /etc/yum.repos.d/*
# 下载阿里源的repo文件到服务器
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 清理缓存
yum clean all
# 更新YUM源
yum makecache
# 关闭防火墙
systemctl stop firewalld.service
# 禁止开机自启
systemctl disable firewalld
# 关闭selinux 
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
# 重启
reboot
# 查询启用的yum源清单,获取仓库标识
yum repolist
# 安装常用软件
yum -y install vim wget net-tools telnet tree nmap sysstat lrzsz dos2unix bind-utils ntpdate
vim /etc/resolv.conf

nameserver 8.8.8.8
nameserver 114.114.114.114

4、yum 命令的用法

4.1 yum 查询功能

yum [options] [command] [package …]
 -y:默认yum需要是交互模式,-y表示自动提供yes响应
 search:搜索某个软件名或关键字
 list:列出所有yum所管理的软件包和名称
 info:同上,也类似rpm -qai
 provides:查找该命令是由软件安装生成的,类似rpm -df的功能
 repolist:列出所有可用的repo

4.2 yum 安装、升级、降级、卸载

yum install:后面接需要安装的软件
 reinstall:后面接需要重新安装的软件
 update:后面接需要升级到的软件
 check-update:检查可用的升级包
 downgrade:后面接需要降级到的版本
 remove:卸载软件
 erase:功能同上,卸载和软件组相关的功能

4.3 yum 组功能

yum grouplist:列出所有可使用的组列表
 groupinfo:后面接groupname,可用了解该group内含所有组的名称
 groupinstall:安装整组的软件
 groupremove:删除某个组的软件

4.4 清理缓存

yum clean { all | package | headers }
 all:将所有的数据删除,包括元数据和软件文件
 package:将所有已下载的软件文件删除
 headers:删除所有下载的元数据文件

4.5 构建缓存

yum makecache

5、查看服务器基本信息

5.1 查看 gcc 版本级相关信息

gcc -v

5.2 查看当前内核系统版本信息

cat /proc/version

5.3 安装 lsb_release

yum install redhat-lsb -y

5.4 查看操作系统版本信息 (使用命令时提示 command not found, 需要安装 redhat-lsb)

lsb_release -a

6、开关防火墙

在 RHEL7 里有几种防火墙共存:

  • firewalld
  • iptables
  • ebtables

默认是使用 firewalld 来管理 netfilter 子系统,不过底层调用的命令仍然是 iptables 等
Firewalld 与 iptables 对比更自由、更人性化

6.1 查看 firewalld 状态

systemctl status firewalld

6.2 策略启停 firewalld

# 启动
systemctl start firewalld
# 停止
systemctl stop firewalld
**6.3 开机启用 / 禁用**

# 启用
systemctl enable firewalld
# 禁用
systemctl disable firewalld

6.4 查看默认域中的火墙

firewall-cmd --list-all

6.5 启 / 停、重启firewalld服务

# 启动
systemctl start firewalld.service
# 关闭
systemctl stop firewalld.service
# 重启一个服务
systemctl restart firewalld.service

6.6 显示一个firewalld服务的状态

systemctl status firewalld.service

6.7 是否开机自启

# 查看服务是否开机启动
systemctl is-enabled firewalld.service
# 查看已启动的服务列表
systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表
systemctl --failed
# 开机自启
systemctl enable firewalld.service
# 禁止开机自启
systemctl disable firewalld.service

6.8 查看端口开放情况

firewall-cmd --list-port

如果提示FirewallD is not running,说明防火墙处于关闭状态

6.9 防火墙开启状态下开放端口

firewall-cmd --zone=public --add-port=3334/tcp --permanent
# 重启firewall
firewall-cmd --reload
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,200评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,526评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,321评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,601评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,446评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,345评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,753评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,405评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,712评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,743评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,529评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,369评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,770评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,026评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,301评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,732评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,927评论 2 336

推荐阅读更多精彩内容