CentOS 基础简介
一、CentOS的系统服务管理系统:
1、Linux 系统服务管理:
- 从CentOS7开始,CentOS的服务管理工具由SysV改为了systemd,但即使是在CentOS7里,也依然可以使用
chkconfig
这个原本出现在SysV里的命令。
2、chkconfig服务管理工具:
-
使用
chkconfig --list
命令可以列出所有的服务及其在每个级别(run level)下的自启状态。netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
-
这里我们
只关心第3级和第5级:第3级表示完整的多用户模式,是标准的运行级,也即我们平常最常用的文字模式;第5级表示图形界面的管理模式。
-
使用chkconfig更改某服务在某级别下的自启状态:
-
chkconfig --level 345 network off
即可关闭network这个服务在第3/4/5级中的自启; -
另外如果不传入参数
--level
,则默认针对级别2/3/4/5操作。 -
为chkconfig添加/删除管理的服务项:
# chkconfig --del network # chkconfig --add network
3、systemd服务管理工具:
-
列出systemd所管理的服务:
-
systemctl list-units --all --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION aegis.service loaded active running LSB: aegis update. agentwatch.service loaded active exited SYSV: Starts and stops guest agent aliyun-util.service loaded active exited Initial Aliyun Jobs aliyun.service loaded active running Ali
-
-
这些服务对应的启动脚本文件保存在
/usr/lib/systemd/system
。
4、systemd的基本概念:
-
systemd把系统的各项资源(包括各个服务、设备等)都看作是
unit
,unit有许多种类,我们目前关心的是service和target -
target是多个unit的组合,启动一个target也就相当于启动其中包含的所有unit
-
SysV中的run level在systemd里被target所取代,例如系统以多用户文字模式(runlevel 3)启动时,就会启动multi-user.target,而以图形界面模式(runlevel 5)启动时,则会启动graphical.target;target之间并非互斥的,因此可以同时启动多个target。
-
可以用
systemctl list-dependencies multi-user.target
来列举multi-user.target所包含的内容 :multi-user.target ● ├─auditd.service ● ├─chronyd.service ● ├─crond.service ● ├─dbus.service ● ├─firewalld.service ● ├─irqbalance.service ● ├─kdump.service ● ├─network.service ● ├─NetworkManager.service ● ├─plymouth-quit-wait.service ● ├─plymouth-quit.service ● ├─postfix.service ● ├─rhel-configure.service ● ├─rsyslog.service ● ├─sshd.service ● ├─systemd-ask-password-wall.path ● ├─systemd-logind.service ● ├─systemd-readahead-collect.service ● ├─systemd-readahead-replay.service ● ├─systemd-update-utmp-runlevel.service ● ├─systemd-user-sessions.serv
5、systemd常用命令:
# systemctl enable crond.service // 让某个服务开机自启(.service可以省略)
# systemctl disable crond // 不让开机自启
# systemctl status crond // 查看服务状态
# systemctl start crond // 启动某个服务
# systemctl stop crond // 停止某个服务
# systemctl restart crond //重启某个服务
# systemctl reload * # 重新加载服务配置文件
# systemctl is-enabled crond // 查询服务是否开机启动
6、systemd功能介绍:
- Systemd 是 Linux 的系统工具,用来启动守护进程,已成为大多数发行版的标准配置。
- 从CentOS7开始,CentOS的服务管理工具由
SysV改为了systemd
,但即使是在CentOS7里,也依然可以使用chkconfig
这个原本出现在SysV里的命令。
二、CentOS的文件系统:
1、修改文件的特殊属性:
chattr
,可修改文件的多种特殊属性:a
,增加该属性后,只能追加不能删除,非root用户不能设定该属性c
,自动压缩该文件,读取时会自动解压;i
,增加后,使文件不能被删除、重命名、设定链接接、写入、新增数据
lsattr
,该命令用来读取文件或者目录的特殊权限
2、再Linux下搜一个文件:
which
,找命令locate
,针对已生成的全局文件树索引对文件名进行搜索,但使用前需要先安装mlocate
且执行updatedb
来生成文件树索引;该命令仅支持按文件名进行搜索。find
,遍历查找指定目录(不指定就针对整个系统进行查找);- 该命令支持多种筛选条件(可按
与或否
的逻辑关系进行串联)进行查找,如:- 文件名,通过
-name
和-iname
参数传入,支持通配符。 - 所属用户,通过
-user
参数传入。 - 所属组,通过
-group
参数传入。 - 文件时间戳的相关属性,通过
-atime
(Access time)/-ctime
(Change time)/-mtime
(Modify time)参数传入,其中-mtime
参数比较常用 - 文件类型,通过
-type
参数传入。 - 文件大小,通过
-size
参数传入。
- 文件名,通过
- 该命令支持多种筛选条件(可按
3、如果动态显示一个不停增加内容的文件:
- 使用
tail -f
可实时追踪一个或多个文档的所有更新,这个功能在调试程序时非常好用:- tail -f /var/log/access.log
4、查看文件/目录占用磁盘大小:
du -sh filename
:-s
,表示只列出目录本身的数据。-h
,系统自动调节单位。
5、压缩和解压缩:
5.1、gzip压缩工具:
- linux下压缩工具有多种,但
最常用的是gzip
,其它的使用起来也差不多。 gzip只支持文件的压缩
,若要压缩目录,则需要使用下述的tar
打包工具。- 压缩直接用
gzip sourcefile
,解压则用gzip -d zipfile
- 使用 gzip 压缩的文件后缀一般为
.gz
。
5.2、tar打包工具:
tar 本身是一个打包工具
,并不具有压缩功能,但可以配合压缩工具,一次性完成打包和压缩的任务(通常情况下我们也不会只打包不压缩,所以我们直接记住“一次性打包压缩”的参数即可 )tar -czvf distfile sourcedir
,压缩打包sourcedir到disfile。- 比如当前目录中有docker-vim的目录
tar -czvf docker.tar docker-vim
- 比如当前目录中有docker-vim的目录
tar -zxvf sourcefile
,解压解包fourcefile到当前目录。- 比如当前目录中只有 docker.tar压缩包:
tar -zxvf docker.tar
- 比如当前目录中只有 docker.tar压缩包:
- 解释上面用到命令的参数:
-z
表示使用gzip 压缩工具
;其实还可使用其它压缩工具(如 bzip2 和 xz),但毕竟最常用的还是 gzip。-c
(c
for compress)表示压缩打包,-x
表示解压解包。-v
表示可视化。-f
后面跟文件名(即-f filename
),表示压缩后的文件名为 filename,或当期需要解压文件 filename。- tar 除了可以打包目录,还可以指定多个文件打包到一起:
tar -czvf files.tar.gz file1 file2 file3
- tar 命令支持查看(但不解压)压缩文件的内容,其参数为
-t
,但需要注意的是必须与-f
同用,其用法为:tar -tf file.tar.gz
5.3、zip 压缩工具:
- 对比起上述介绍的 gzip 和 tar,zip 的功能更为强大,它
可以压缩(解压)文件和目录
。 - 由于 zip 在 windows 系统上比较常用,因此如需与 windows 系统交换文件,可通过 zip 进行压缩,这样两边都可以识别。
- CentOS 默认不带 zip 命令,需要通过
yum install -y zip
进行安装。 - 压缩文件用
zip distfile sourcefile
,压缩目录则用zip distfile sourcedir
- 当压缩目录下还有二级目录甚至更多级目录时,zip 命令仅仅是把二级目录本身压缩而已,如果想要一并压缩二级目录下的文件及更多级目录,则必须加上
-r
,如zip -r distfile sourcedir
。 - 解压文件并不用 zip 命令,而是用
unzip
命令,如unzip file.zip
。