1.chkconfig:管理开机服务
该命令为linux系统中的系统服务管理工具,可以查询和更新不同的运行等级下系统服务的启动状态。
选项 | 说明 |
--list(常用) | 显示不同运行级别下服务的启动状态 |
--add(常用) | 添加一个系统服务 |
--del(常用) | 删除一个系统服务 |
--level(常用) | 指定运行级别 |
示例:
1)查看系统的服务状态
[root@boxiaoyuan ~]# chkconfig --list
NetworkManager :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭
abrt-ccpp :关闭 :关闭 :关闭 :启用 :关闭 :启用 :关闭
abrtd :关闭 :关闭 :关闭 :启用 :关闭 :启用 :关闭
关于运行级别的说明:0表示关机;1表示单用户模式;2表示没有网络的多用户模式;3表示完全的多用户模式;4表示没有使用的级别;5表示图形界面多用户模式;6表示重启。
2)管理系统服务
[root@boxiaoyuan ~]# chkconfig --list sshd # 显示sshd不同运行级别下服务的启动状态
sshd :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭
[root@boxiaoyuan ~]# chkconfig sshd off # 关闭2 5级别下开机自启动
[root@boxiaoyuan ~]# chkconfig --list sshd
sshd :关闭 :关闭 :关闭 :关闭 :关闭 :关闭 :关闭
[root@boxiaoyuan ~]# chkconfig sshd on # 打开2 5级别下开机自启动
[root@boxiaoyuan ~]# chkconfig --list sshd
sshd :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭
[root@boxiaoyuan ~]# chkconfig sshd --level off # 关闭sshd服务5级别开机自启动
[root@boxiaoyuan ~]# chkconfig --list sshd
sshd :关闭 :关闭 :启用 :启用 :启用 :关闭 :关闭
[root@boxiaoyuan ~]# chkconfig sshd --level on # 打开sshd服务5级别开机自启动
[root@boxiaoyuan ~]# chkconfig --list sshd
sshd :关闭 :关闭 :启用 :启用 :启用 :启用 :关闭
3)了解chkconfig的原理
chkconfig是在runlevel级别的/etc/rc.d/rc*.d目录中将对应服务做一个以S或K开头的软链接。
[root@boxiaoyuan ~]# ls -l /etc/rc.d/rc3.d/ | grep sysstat # 运行级别3的目录rc3.d查看sysstat
lrwxrwxrwx. root root 10月 : S01sysstat -> ../init.d/sysstat # S是开启
[root@boxiaoyuan ~]# chkconfig --list sysstat
sysstat :关闭 :启用 :启用 :启用 :启用 :启用 :关闭
[root@boxiaoyuan ~]# chkconfig sysstat off
[root@boxiaoyuan ~]# chkconfig --list sysstat
sysstat :关闭 :启用 :关闭 :关闭 :关闭 :关闭 :关闭
[root@boxiaoyuan ~]# ls -l /etc/rc.d/rc3.d/ | grep sysstat
lrwxrwxrwx. root root 4月 : K99sysstat -> ../init.d/sysstat # K是关闭
下面对rc3.d目录进行试验,chkconfig的--level 2345是同时对rc2.d、rc3.d、rc4.d、rc5.d这四个目录进行操作。
[root@boxiaoyuan rc3.d]# ls -al /etc/rc.d/rc3.d/ | grep sysstat
lrwxrwxrwx. root root 4月 : K99sysstat -> ../init.d/sysstat
[root@boxiaoyuan rc3.d]# rm -rf K99sysstat
[root@boxiaoyuan rc3.d]# chkconfig --list sysstat
sysstat :关闭 :启用 :关闭 :关闭 :关闭 :关闭 :关闭
[root@boxiaoyuan rc3.d]# ln -s ../init.d/sysstat S01sysstat
[root@boxiaoyuan rc3.d]# chkconfig --list sysstat
sysstat :关闭 :启用 :关闭 :启用 :关闭 :关闭 :关闭
[root@boxiaoyuan rc3.d]# rm -rf S01sysstat
[root@boxiaoyuan rc3.d]# ln -s ../init.d/sysstat K99sysstat
[root@boxiaoyuan rc3.d]# chkconfig --list sysstat
sysstat :关闭 :启用 :关闭 :关闭 :关闭 :关闭 :关闭
[root@boxiaoyuan rc3.d]# cat /etc/rc.d/rc3.d/K99sysstat
#!/bin/sh
#
# chkconfig: 99 # 01和99的来源出自这里。
2.rpm:RPM包管理器
几乎所有的linux发行版本都是使用rpm命令进行管理,安装,卸载和更新软件。rpm命令包含了安装,卸载,升级,查询和验证等功能。
选项 | 说明 |
-q(常用) | 查询软件包 |
-p(常用) | 后接以".rpm"为后缀的软件包 |
-i(常用) | 如果配合-qp,则表示显示软件包的概要信息;如果是安装包,则表示安装 |
-l(常用) | 显示软件包中的所有文件列表 |
-R(常用) | 显示软件包的依赖环境 |
-v(常用) | 显示详细信息 |
-h(常用) | 用“#”显示安装进度条 |
-a(常用) | 与-q参数搭配使用,用于查询所有的软件包 |
-e(常用) | 卸载软件包 |
-f(常用) | 查询文件或命令属于哪个软件包 |
实例:
首先下载rpm包作为测试文件:https://mirrors.aliyun.com/centos/6.10/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm
1)查看rpm包信息
[root@boxiaoyuan ~]# rpm -qpi lrzsz-0.12.-27.1.el6.x86_64.rpm
Name : lrzsz Relocations: (not relocatable)
Version : 0.12. Vendor: CentOS
Release : 27.1.el6 Build Date: 2010年08月19日 星期四 14时20分40秒
Install Date: (not installed) Build Host: c6b3.bsys.dev.centos.org
Group : Applications/Communications Source RPM: lrzsz-0.12.-27.1.el6.src.rpm
Size : License: GPLv2+
Signature : RSA/, 2011年07月03日 星期日 12时43分30秒, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://www.ohse.de/uwe/software/lrzsz.html
Summary : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.
2)查看rpm包的内容
[root@boxiaoyuan ~]# rpm -qpl lrzsz-0.12.-27.1.el6.x86_64.rpm
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz..gz
/usr/share/man/man1/sz..gz
3)查询rpm包的依赖
[root@boxiaoyuan ~]# rpm -qpR lrzsz-0.12.-27.1.el6.x86_64.rpm
libc.so.()(64bit)
libc.so.(GLIBC_2.)(64bit)
libc.so.(GLIBC_2.2.5)(64bit)
libc.so.(GLIBC_2.)(64bit)
libc.so.(GLIBC_2.3.4)(64bit)
libc.so.(GLIBC_2.)(64bit)
libc.so.(GLIBC_2.)(64bit)
libnsl.so.()(64bit)
rpmlib(CompressedFileNames) <= 3.0.-
rpmlib(FileDigests) <= 4.6.-
rpmlib(PartialHardlinkSets) <= 4.0.-
rpmlib(PayloadFilesHavePrefix) <= 4.0-
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-
4)安装rpm包
[root@boxiaoyuan ~]# rpm -ivh lrzsz-0.12.-27.1.el6.x86_64.rpm
Preparing... ########################################### [%]
package lrzsz-0.12.-27.1.el6.x86_64 is already installed
5)查看系统中是否安装指定的rpm包
[root@boxiaoyuan ~]# rpm -qa lrzsz
lrzsz-0.12.-27.1.el6.x86_64
6)卸载rpm包
[root@boxiaoyuan ~]# rpm -e lrzsz
[root@boxiaoyuan ~]# rpm -qa lrzsz
7)查看文件属于哪个包
[root@boxiaoyuan ~]# rpm -qf $(which ifconfig)
net-tools-1.60-.el6_2.x86_64
3.yum:自动化RPM包管理工具
yum主要用于自动安装,升级rpm软件包,它能自动查找并解决rpm包质检的依赖关系。
yum命令的常用参数为-y,表示确认操作,下面以安装httpd软件包为例,给出常用的yum命令。
命令 | 说明 |
yum install httpd | 安装httpd软件包 |
yum update httpd | 更新httpd软件包 |
yum list httpd | 列出软件包 |
yum search httpd | 如果不记得软件包的确切名称,可以使用该命令搜索 |
yum info httpd | 获取软件包的信息,需要在安装软件包之前知道它的信息 |
yum deplist httpd | 查看软件包的依赖 |
yum clean all | 清理所有YUM的缓存内容 |
yum history | 查看yum的历史记录 |
yum check-update | 检查是否有可用的更新rpm软件包 |
yum list installed | 列出所有已安装的软件 |
yum list | 列出所有可用软件 |
示例:
1)安装httpd软件包
[root@boxiaoyuan ~]# yum install httpd
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
* base: mirror.jdcloud.com
* epel: mirrors.yun-idc.com
* extras: mirror.jdcloud.com
* updates: mirror.jdcloud.com
解决依赖关系
--> 执行事务检查
---> Package httpd.x86_64 :2.2.-.el6.centos will be 升级
---> Package httpd.x86_64 :2.2.-.el6.centos will be an update
--> 处理依赖关系 httpd-tools = 2.2.-.el6.centos,它被软件包 httpd-2.2.-.el6.centos.x86_64 需要
--> 执行事务检查
---> Package httpd-tools.x86_64 :2.2.-.el6.centos will be 升级
---> Package httpd-tools.x86_64 :2.2.-.el6.centos will be an update
--> 完成依赖关系计算 依赖关系解决 =================================================================================================
软件包 架构 版本 仓库 大小
=================================================================================================
正在升级:
httpd x86_64 2.2.-.el6.centos base k
为依赖而更新:
httpd-tools x86_64 2.2.-.el6.centos base k 事务概要
=================================================================================================
Upgrade Package(s) 总下载量: k
确定吗?[y/N]:y
下载软件包:
(/): httpd-2.2.-.el6.centos.x86_64.rpm | kB :
(/): httpd-tools-2.2.-.el6.centos.x86_64.rpm | kB :
-------------------------------------------------------------------------------------------------
总计 kB/s | kB :
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
Warning: RPMDB altered outside of yum.
正在升级 : httpd-tools-2.2.-.el6.centos.x86_64 /
正在升级 : httpd-2.2.-.el6.centos.x86_64 /
清理 : httpd-2.2.-.el6.centos.x86_64 /
清理 : httpd-tools-2.2.-.el6.centos.x86_64 /
Verifying : httpd-tools-2.2.-.el6.centos.x86_64 /
Verifying : httpd-2.2.-.el6.centos.x86_64 /
Verifying : httpd-tools-2.2.-.el6.centos.x86_64 /
Verifying : httpd-2.2.-.el6.centos.x86_64 / 更新完毕:
httpd.x86_64 :2.2.-.el6.centos 作为依赖被升级:
httpd-tools.x86_64 :2.2.-.el6.centos 完毕!
2)检查httpd安装列表
[root@boxiaoyuan ~]# yum list httpd # 检查httpd安装列表
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.zju.edu.cn
* epel: ftp.riken.jp
* extras: mirrors.zju.edu.cn
* updates: ftp.sjtu.edu.cn
已安装的软件包
httpd.x86_64 2.2.-.el6.centos @base
[root@boxiaoyuan ~]# yum search httpd
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror.jdcloud.com
* epel: mirror.pregi.net
* extras: mirror.jdcloud.com
* updates: mirror.jdcloud.com
====================================== N/S Matched: httpd =======================================
iipsrv-httpd-fcgi.noarch : Apache HTTPD files for iipsrv
libmicrohttpd-devel.i686 : Development files for libmicrohttpd
libmicrohttpd-devel.x86_64 : Development files for libmicrohttpd
libmicrohttpd-doc.noarch : Documentation for libmicrohttpd
lighttpd-fastcgi.x86_64 : FastCGI module and spawning helper for lighttpd and PHP configuration
lighttpd-mod_authn_gssapi.x86_64 : Authentication module for lighttpd that uses GSSAPI
lighttpd-mod_authn_mysql.x86_64 : Authentication module for lighttpd that uses a MySQL database
lighttpd-mod_geoip.x86_64 : GeoIP module for lighttpd to use for location lookups
lighttpd-mod_mysql_vhost.x86_64 : Virtual host module for lighttpd that uses a MySQL database
httpd.x86_64 : Apache HTTP Server
httpd-devel.i686 : Development interfaces for the Apache HTTP server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-itk.x86_64 : MPM Itk for Apache HTTP Server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
lighttpd.x86_64 : Lightning fast webserver with light system requirements
mirmon-httpd.noarch : Apache configuration for mirmon
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
mod_dnssd.x86_64 : An Apache HTTPD module which adds Zeroconf support
python-mozhttpd.noarch : Basic Python webserver
python2-sphinxcontrib-httpdomain.noarch : Sphinx domain for documenting HTTP APIs
sysusage-httpd.noarch : Apache configuration for sysusage
viewvc-httpd.noarch : ViewVC configuration for Apache/mod_python
web-assets-httpd.noarch : Web Assets aliases for the Apache HTTP daemon Name and summary matches only, use "search all" for everything.
注:本文内容为《跟老男孩学linux运维 核心系统命令实践》的学习笔记。