<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>绿色记忆 &#187; CentOS</title>
	<atom:link href="https://blog.gmem.cc/tag/centos/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.gmem.cc</link>
	<description></description>
	<lastBuildDate>Thu, 30 Apr 2026 03:05:57 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.14</generator>
	<item>
		<title>CentOS知识集锦</title>
		<link>https://blog.gmem.cc/centos-faq</link>
		<comments>https://blog.gmem.cc/centos-faq#comments</comments>
		<pubDate>Sun, 17 Nov 2013 07:57:24 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[FAQ]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=8489</guid>
		<description><![CDATA[<p>常用命令 软件包管理命令 dnf dnf是yum的下一个重大版本，基于RPM的Linux的包管理器。dnf保证了和yum的CLI接口的大概兼容性。 命令 作用 check-update 检查可更新的软件包 upgrade 更新软件包 [crayon-69f38e0362eec489978964/] install 安装指定软件包 [crayon-69f38e0362ef1297048089/] reinstall 重新安装指定软件包 remove 删除指定软件包 search 以关键词搜索软件包 info 查看软件包详情 <a class="read-more" href="https://blog.gmem.cc/centos-faq">[...]</a></p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/centos-faq">CentOS知识集锦</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><div class="blog_h1"><span class="graybg">常用命令</span></div>
<div class="blog_h2"><span class="graybg">软件包管理命令</span></div>
<div id="rpm">
<div class="blog_h3"><span class="graybg">dnf</span></div>
<p>dnf是yum的下一个重大版本，基于RPM的Linux的包管理器。dnf保证了和yum的CLI接口的大概兼容性。</p>
</div>
<div>
<table border="1" width="100%">
<thead>
<tr>
<td style="width: 20%; text-align: center;">命令</td>
<td style="text-align: center;">作用</td>
</tr>
</thead>
<tbody>
<tr>
<td>check-update</td>
<td>检查可更新的软件包</td>
</tr>
<tr>
<td>upgrade</td>
<td>
<p>更新软件包</p>
<pre class="crayon-plain-tag"># 更新所有软件包
dnf upgrade

# 更新指定软件包
dnf upgrade pkg-name</pre>
</td>
</tr>
<tr>
<td>install</td>
<td>安装指定软件包<br />
<pre class="crayon-plain-tag"># 从指定的软件源安装
dnf –enablerepo=repo-name install pkg-name 

# 安装名为mariadb的模块或组
dnf install @mariadb</pre>
</td>
</tr>
<tr>
<td>reinstall</td>
<td>重新安装指定软件包</td>
</tr>
<tr>
<td>remove</td>
<td>删除指定软件包</td>
</tr>
<tr>
<td>search</td>
<td>以关键词搜索软件包</td>
</tr>
<tr>
<td>info</td>
<td>查看软件包详情</td>
</tr>
<tr>
<td>repoquery</td>
<td>
<p>查看软件包依赖
<pre class="crayon-plain-tag"># 查看软件包依赖
dnf repoquery --requires pkg-name
# 查看满足依赖所需的额外 RPM 包
dnf repoquery --requires --resolve pkg-name</pre>
</td>
</tr>
<tr>
<td>download</td>
<td>下载软件包到当前目录（不安装）</td>
</tr>
<tr>
<td>list installed</td>
<td>列出已安装软件包</td>
</tr>
<tr>
<td>grouplist</td>
<td>列出软件组</td>
</tr>
<tr>
<td>groupinstall</td>
<td>安装指定软件组软件</td>
</tr>
<tr>
<td>groupupdate</td>
<td>更新指定软件组软件</td>
</tr>
<tr>
<td>groupremove</td>
<td>删除指定软件组软件</td>
</tr>
<tr>
<td>repolist</td>
<td>列出已启用的软件安装源</td>
</tr>
<tr>
<td>repolist all</td>
<td>列出所有软件安装源</td>
</tr>
<tr>
<td>downgrade</td>
<td>降级指定软件包版本</td>
</tr>
<tr>
<td>history</td>
<td>查看 DNF 命令历史记录</td>
</tr>
<tr>
<td>config-manager</td>
<td>
<pre class="crayon-plain-tag"># 添加 DNF 软件安装源
dnf config-manager --add-repo example.repo
# 启用 DNF 软件安装源
dnf config-manager --set-enabled example-repo
# 禁用 DNF 软件安装源
dnf config-manager --set-disabled example-repo</pre>
</td>
</tr>
<tr>
<td>autoremove</td>
<td>删除不需要的依赖项软件包</td>
</tr>
<tr>
<td>clean all</td>
<td>删除缓存数据及软件包文件</td>
</tr>
</tbody>
</table>
</div>
<div>
<div class="blog_h3"><span class="graybg">rpm</span></div>
</div>
<p>rpm即红帽子包管理器，是Redhat及其衍生系统使用的软件包管理工具。其常用选项包括：
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="width: 150px; text-align: center;">选项分类 </td>
<td style="text-align: center;">选项说明 </td>
</tr>
</thead>
<tbody>
<tr>
<td>安装/更新/删除</td>
<td>
<p>-i, --install 安装软件包<br />-F, --freshen=&lt;packagefile&gt;+ 如果软件包已经安装，升级软件包<br />-e, --erase=&lt;package&gt;+ 清除 (卸载) 软件包<br />-U, --upgrade=&lt;packagefile&gt;+ 升级软件包</p>
<p>-h, --hash 软件包安装的时候列出哈希标记<br />--allfiles 安装全部文件，包含配置文件，否则配置文件会被跳过<br />--nodeps 忽略软件包的依赖关系强行安装<br />--oldpackage 更新到软件包的旧版本<br />--percent 安装软件包时打印百分比<br />--replacefiles 忽略软件包之间的冲突的文件<br />--replacepkgs 如果软件包已经有了，重新安装软件包<br />--test 不真正安装，只是判断下是否能安装</p>
</td>
</tr>
</tbody>
</table>
<p>命令应用举例：</p>
<pre class="crayon-plain-tag">#检查软件包是否已经安装
rpm -q pptpd
#安装指定路径上的软件包并显示进度
rpm -ivh ~/jdk.rpm
#不安装，仅测试依赖关系
rpm -ivh --test ~/jdk.rpm
#列出所有已安装的软件包
rpm -qa
#升级软件包
rpm -Uvh jdk.rpm 
#删除软件包
rpm -e jdk.rpm
#从源代码编译并安装软件
rpm　--recompile　vim-4.6.src.rpm

# 显示wget包在系统中安装的文件 
rpm -ql wget
# 显示RPM包中的文件
rpm -qlp wget.rpm

# 显示一个文件所属的软件包
rpm -qf /usr/bin/file</pre>
<div id="yum" class="blog_h3"><span class="graybg">yum</span></div>
<p>yum（Yellow dog Updater, Modified）是一个交互式的、基于RPM的软件包管理工具，类似于apt-get。它能够从指定的服务器自动下载 RPM 包并且安装，可以处理依赖性关系，并且一次安装所有依赖的软件包，支持Redhat-like的操作系统。其命令格式如下：</p>
<pre class="crayon-plain-tag">yum [options] [command] [package ...]</pre>
<p> 其中command为子命令，包括：</p>
<table style="width: 100%;" border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<td style="width: 150px; text-align: center;"> 子命令</td>
<td style="text-align: center;">说明 </td>
</tr>
</thead>
<tbody>
<tr>
<td>check </td>
<td>检查 RPM 数据库问题</td>
</tr>
<tr>
<td>check-update</td>
<td>检查是否有可用的软件包更新</td>
</tr>
<tr>
<td>update</td>
<td>更新系统中的一个或多个软件包，<pre class="crayon-plain-tag">yum update [pkg0 [,...]]</pre> ，不指定包名则更新所有软件包</td>
</tr>
<tr>
<td>repolist </td>
<td>显示已配置的源</td>
</tr>
<tr>
<td>search</td>
<td>根据关键字搜索软件包吗，<pre class="crayon-plain-tag">yum search keyword</pre> </td>
</tr>
<tr>
<td>clean </td>
<td>删除缓存数据（/var/cache/yum）</td>
</tr>
<tr>
<td>install</td>
<td>向系统中安装一个或多个软件包，<pre class="crayon-plain-tag">yum install pkg0 [,...]</pre> </td>
</tr>
<tr>
<td>reinstall</td>
<td>覆盖安装软件包</td>
</tr>
<tr>
<td>deplist</td>
<td>列出软件包的依赖关系</td>
</tr>
<tr>
<td>downgrade</td>
<td>降级软件包</td>
</tr>
<tr>
<td>erase</td>
<td>从系统中移除一个或多个软件包</td>
</tr>
<tr>
<td>info</td>
<td>显示关于软件包或组的详细信息</td>
</tr>
<tr>
<td>list </td>
<td>
<p>列出一个或一组软件包：</p>
<pre class="crayon-plain-tag"># 显示已安装
yum list installed
# 显示可安装
yum list available</pre>
</td>
</tr>
<tr>
<td>provides</td>
<td>查找提供指定内容的软件包</td>
</tr>
<tr>
<td>repo-pkgs</td>
<td>将一个源当作一个软件包组，可以一次性安装/移除全部软件包</td>
</tr>
</tbody>
</table>
<p>options为选项，常用的包括：
<ol>
<li>-y 假设对所有提示回答“是”</li>
<li>-q 不输出安装信息，常和-y联用</li>
<li>-e 设置错误级别，0-10，0表示仅仅输出致命错误</li>
</ol>
<div class="blog_h3"><span class="graybg">yumdownloader</span></div>
<p>从YUM源下载RPM包，注意，已经安装的RPM包，或者它的依赖，都不会下载。</p>
<p>格式：<pre class="crayon-plain-tag">yumdownloader [options] package1 [package2...]</pre></p>
<p>选项：</p>
<p style="padding-left: 30px;">--destdir DIR 下载到的目标目录，默认当前目录</p>
<p style="padding-left: 30px;">--urls 从指定URL下载，而不是根据包名下载</p>
<p style="padding-left: 30px;">--resolve 下载RPM时，解析它的依赖，并一同下载</p>
<p style="padding-left: 30px;">--source 下载source而非binary</p>
<p style="padding-left: 30px;">--archlist=ARCH1[,ARCH2...] 下载指定体系结构的包</p>
<div class="blog_h3"><span class="graybg">repoquery</span></div>
<p>从YUM存储库查询信息</p>
<p>格式：<pre class="crayon-plain-tag">repoquery [options] &lt;item ...&gt;</pre></p>
<p>选项：</p>
<p style="padding-left: 30px;">-i 显示类似于<pre class="crayon-plain-tag">rpm -qi</pre>的软件包信息<br />-l 列出包中文件<br />-R 列出包的依赖<br />--resolve 解析包的capabilities，如果不指定该选项，列出的依赖是文件，指定后列出的是包名<br />--recursive 递归的查询<br />--location  打印包的可下载位置</p>
<p>示例：</p>
<pre class="crayon-plain-tag"># 解析bind-utils的所有依赖  递归解析包               并下载
repoquery -R --resolve --recursive  bind-utils  |  xargs -r yumdownloader </pre>
<div class="blog_h3"><span class="graybg">rpm2cpio</span></div>
<p>将RPM包转换为CPIO归档文件，输出到标准输出。示例：<pre class="crayon-plain-tag">rpm2cpio wget.rpm| cpio -idm</pre></p>
<div class="blog_h2"><span class="graybg">系统管理命令</span></div>
<table class="full-width fixed-word-wrap">
<thead>
<tr>
<td style="width: 20%; text-align: center;">命令</td>
<td style="text-align: center;">说明</td>
</tr>
</thead>
<tbody>
<tr>
<td class="blog_h3">update-ca-trust</td>
<td>
<p>更新系统的根证书列表：</p>
<pre class="crayon-plain-tag">update-ca-trust enable 

cd /etc/pki/ca-trust/source/anchors/
# 将你的CA证书拷贝到此目录

# 更新证书列表
update-ca-trust extract </pre>
</td>
</tr>
<tr>
<td class="blog_h3">firewalld</td>
<td>
<p>防火墙服务，是CentOS 7的重要特性。优势包括：
<ol>
<li>支持动态更新，不用重启服务</li>
<li>支持防火墙Zone的概念</li>
</ol>
<pre class="crayon-plain-tag"># 启动
systemctl start  firewalld
# 启用
systemctl enable firewalld </pre>
</td>
</tr>
<tr>
<td class="blog_h3">firewall-cmd</td>
<td>
<p>firewalld的命令行接口。
<p><span style="background-color: #c0c0c0;">格式：</span><pre class="crayon-plain-tag">firewall-cmd [OPTIONS...]</pre></p>
<p><span style="background-color: #c0c0c0;">选项：</span></p>
<pre class="crayon-plain-tag">--state                         # 显示firewalld的状态
--reload                        # 不中断连接，重新加载
--complete-reload               # 中断所有连接，重新加载
--runtime-to-permanent          # 将当前防火墙的规则永久保存
--check-config                  # 检查配置正确性


--get-log-denied                # 获取记录被拒绝的日志
--set-log-denied=value          # 设置记录被拒绝的日志 'all','unicast','broadcast','multicast','off'
--get-active-zones              # 查看激活的区域信息
--get-zones                     # 查看可用的区域信息
--get-zone-of-interface=eth1    # 查看指定接口所属区域

--panic-on                      # 拒绝所有包
--panic-off                     # 取消拒绝所有包
--query-panic                   # 查看是否拒绝所有包


--set-default-zone=public       # 设置网络接口默认所属区域

--get-zone-of-interface=eth1                        # 查看eth1所属的区域
--zone=public --add-interface=eth1                  # 将eth1加入到public区域
# 加--permanent表示永久修改
--permanent --zone=public --add-port=443/tcp        # 开放public区域的443 TCP端口
--permanent --zone=public --remove-port=53/udp      # 禁止public区域的53  UDP端口
--zone=public --list-ports                          # 列出public区域开放的端口
   

--get-services                                      # 显示支持的服务列表
--enable service=ssh                                # 允许SSH服务通过
--disable service=ssh                               # 禁止SSH服务通过
--enable service=samba --timeout=600                # 在600秒内允许samba服务通过
--list-services                                     # 列出允许的服务
--permanent --zone=internal --add-service=http      # 将HTTP服务加到internal区域


# 直接打开9000 TCP端口
--direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT


# 端口转发
# 将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080  
# 将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1 
# 将80端口的流量转发至192.168.0.1的8080端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080  </pre>
</td>
</tr>
</tbody>
</table>
<div class="blog_h1"><span class="graybg">常见问题</span></div>
<div class="blog_h2"><span class="graybg">CentOS 8</span></div>
<div class="blog_h3"><span class="graybg">升级最新内核</span></div>
<p><pre class="crayon-plain-tag">rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
dnf install https://www.elrepo.org/elrepo-release-8.0-2.el8.elrepo.noarch.rpm
dnf --enablerepo=elrepo-kernel install kernel-ml</pre>
<p>重启即可。 </p>
<div class="blog_h2"><span class="graybg">零散问题</span></div>
<div class="blog_h3"><span class="graybg">如何切换yum源</span></div>
<pre class="crayon-plain-tag">curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo </pre>
<div class="blog_h3"><span class="graybg">如何信任CA证书</span></div>
<p>将证书拷贝到目录：/etc/pki/ca-trust/source/anchors/，然后执行：</p>
<pre class="crayon-plain-tag">update-ca-trust extract</pre>
<div class="blog_h3"><span class="graybg">如何使用APT命令</span></div>
<p>以x64的Centos为例</p>
<pre class="crayon-plain-tag">wget http://pkgs.repoforge.org/apt/apt-0.5.15lorg3.94a-5.el5.rf.x86_64.rpm
rpm -Uvh apt-0.5.15lorg3.94a-5.el5.rf.x86_64.rpm
cp /etc/apt/sources.list.d/os.list /etc/apt/sources.list
vi /etc/apt/sources.list</pre>
<div class="blog_h3"><span class="graybg">如何使用update-grub</span></div>
<p>修改Grub启动选项仍然是通过/etc/default/grub文件，但是Ubuntu下update-grub命令的等价物是：</p>
<pre class="crayon-plain-tag">grub2-mkconfig -o /boot/grub2/grub.cfg </pre>
<div class="blog_h3"><span class="graybg">添加常用软件源</span></div>
<pre class="crayon-plain-tag">#添加源Fedora Extra Packages for Enterprise Linux (EPEL) repository
#该源包含了很多CentOS系统没有包含的常用软件
yum install epel-release
#如果从该源安装软件时出现： Cannot retrieve metalink for repository: epel. Please verify its path and try again
#则编辑vi /etc/yum.repos.d/epel.repo
#把所有baseurl前面的注释#去掉
#把所有mirrorlist前面加上注释#</pre>
<div class="blog_h3"><span class="graybg">如何支持Zeroconf</span></div>
<pre class="crayon-plain-tag"># Zeroconf（Multicast DNS）规范的开源实现
# 它可以在没有DNS服务的局域网里发现基于zeroconf协议的设备和服务
yum install avahi
# GNU Name Service Switch (NSS)插件，允许使用*.local风格的域名发现
yum install nss-mdns
# 启动服务
service avahi-daemon start</pre>
<div class="blog_h3"><span class="graybg">如何禁用网络管理器</span></div>
<p>首先，停止网络管理器服务，并禁用之：</p>
<pre class="crayon-plain-tag">systemctl stop NetworkManager.service 
systemctl disable NetworkManager.service</pre>
<p>对于/etc/sysconfig/network-scripts/ifcfg-*，你需要设置：</p>
<pre class="crayon-plain-tag">NM_CONTROLLED=no
ONBOOT=yes</pre>
<p>启动传统的网络服务：</p>
<pre class="crayon-plain-tag"># 确保网络服务启用
chkconfig network on
# 手工启动一下服务
service network start 
# 即使使用传统网络服务，/etc/sysconfig/network-scripts/中的脚本仍然有效</pre>
<div class="blog_h3"><span class="graybg">如何禁用防火墙</span></div>
<pre class="crayon-plain-tag"># 禁用
systemctl disable firewalld
# 停止服务
systemctl stop firewalld</pre>
<div class="blog_h3"><span class="graybg">如何安装类似Ubuntu的build-essential软件包</span></div>
<pre class="crayon-plain-tag">yum groupinstall 'Development Tools'</pre>
<div class="blog_h3"><span class="graybg">无法Ping通localhost</span></div>
<p>报错：ping: unknown host localhost</p>
<p>解决办法：</p>
<ol>
<li>首先查看/etc/hosts，确保存在这样的条目：<pre class="crayon-plain-tag">127.0.0.1 localhost</pre> </li>
<li>然后，确保/etc/nsswitch.conf的访问权限正确：<br />
<pre class="crayon-plain-tag">sudo chmod 644 /etc/nsswitch.conf </pre></p>
<p>并具有合适的配置： </p>
<pre class="crayon-plain-tag"># 应当包含files
hosts:      files dns</pre>
</li>
</ol>
<div class="blog_h3"><span class="graybg">如何在CentOS 7上安装MySQL</span></div>
<p><pre class="crayon-plain-tag">wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

# 安装MySQL
yum install mysql-server
systemctl start mysqld

# 执行此脚本，修改root密码、移除匿名用户，等等
mysql_secure_installation</pre>
<div class="blog_h3"><span class="graybg">无法使用netstat和ifconfig</span></div>
<pre class="crayon-plain-tag">yum install -y net-tools</pre>
<div class="blog_h3"><span class="graybg">如何修改主机名称</span></div>
<p>在CentOS 7中，下列命令可以用来修改主机名：</p>
<ol>
<li>hostnamectl：修改系统主机名，推荐的方式</li>
<li>nmtui：基于文本用户接口（TUI）修改系统主机名</li>
<li>nmcli：基于NetworkManager的CLI修改主机名</li>
</ol>
<p>主机名可以分为几个类型：</p>
<ol>
<li>静态主机名：由系统管理员分配，例如tokyo.gmem.cc</li>
<li>临时/动态主机名：由DHCP或者mDNS服务器运行时分配</li>
<li>Pretty host name：由系统管理员或者最终用户分配的UTF-8兼容的、自由格式的主机名</li>
</ol>
<p>查看主机名信息：</p>
<pre class="crayon-plain-tag">hostnamectl status
#  Static hostname: localhost.localdomain
#         Icon name: computer-vm
#           Chassis: vm
#        Machine ID: a179e3668a70483691a57509c0044cc4
#           Boot ID: 1b264d45e8db4fc6a8655f6451de32e9
#    Virtualization: qemu
#  Operating System: CentOS Linux 7 (Core)
#       CPE OS Name: cpe:/o:centos:centos:7
#            Kernel: Linux 3.10.0-327.28.3.el7.x86_64
#      Architecture: x86-64</pre>
<p>设置主机名：</p>
<pre class="crayon-plain-tag">hostnamectl set-hostname cos7-0
hostnamectl set-hostname "CentOS 7 base" --pretty
hostnamectl set-hostname cos7-0 --static
hostnamectl set-hostname cos7-0 --transient</pre>
<div class="blog_h3"><span class="graybg">如何修改Terminal字体</span></div>
<p>通过控制台登录到文字界面时，可以使用下面的命令设置字体：</p>
<pre class="crayon-plain-tag"># 下载新字体
yum install terminus-fonts-console

# 设置字体
setfont ter-116n.psf.gz

# 持久化设置
echo setfont ter-116n.psf.gz &gt;&gt; /etc/rc.local</pre>
<div class="blog_h3"><span class="graybg">如何设置提示符</span></div>
<pre class="crayon-plain-tag">PS1="\e[1;32m\u@\h\e[39m:\e[1;34m\w\e[39m\\$ \e[0;39m"</pre>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/centos-faq">CentOS知识集锦</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/centos-faq/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
