根目录及其结构
[root@#test ~]# tree -L 1 /
/
├── bin -> usr/bin #所有二进制命令所在的目录
├── boot #内核以及系统引导文件所在目录
├── dev #所有设备文件的目录,如磁盘,光驱等
├── etc #二进制安装包配置文件的默认路径,服务启动命令的存放目录
├── home #普通用户的家目录
├── lib -> usr/lib #32位库文件存放目录
├── lib64 -> usr/lib64 #64位库文件存放目录
├── media
├── mnt #临时挂载存储设备(u盘)的目录
├── opt #自定义软件安装存放目录
├── proc #内核和进程信息存放目录
├── root #root用户家目录
├── run #系统运行时产生的临时文件存放的目录
├── sbin -> usr/sbin #系统管理命令存放目录(root用户命令)
├── srv #服务启动后需要访问的数据的存放目录
├── sys #系统使用目录
├── tmp #临时文件存放目录
├── usr #系统命令和帮助文件目录
└── var #存放内容经常变动的文件的目录
/etc 和/var
/etc/profile #系统全局变量配置文件
/etc/rc.local #存储系统开机自启动程序命令文件
/etc/resolv.conf #设置本地客户端的DNS的文件
/var/log/dmesg #系统核心启动日志文件
/var/log/message #系统报错日志文件
/var/log/maillog #邮件系统日志文件
/var/log/wtmp #用户登录信息文件
重要文件
- 网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33
虚拟机设置为桥接时,文件配置如下所示。
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens33
ONBOOT=yes
IPADDR=<虚拟机IP地址>
NETMASK=<子网掩码>
GATEWAY=<默认网关>
DNS1=<首选DNS服务器>
DNS2=<备用DNS服务器>
-
DNS配置文件/etc/resolv.conf
网卡配置文件中的DNS设置优先级高于此文件中的DNS配置。 -
系统hosts文件/etc/hosts。hosts文件是主机ip地址与特定域名或者主机名对应的解析配置文件,在实际生产环境中,内网主机的hosts文件都应该保持一致。
-
主机名配置文件/etc/hostname
-
fstab文件。
在 CentOS 7 中,fstab(文件系统表)是一个配置文件,用于定义系统引导时自动挂载的文件系统。fstab 文件包含了关于每个文件系统的信息,例如文件系统的设备名称、挂载点、文件系统类型、挂载选项等。fstab 文件通常位于 /etc/fstab 路径下。要编辑 fstab 文件,您可以使用文本编辑器(如 vi 或 nano)以 root 用户权限打开该文件。
# <文件系统设备> <挂载点> <文件系统类型> <挂载选项> <其他选项> <备份频率> <检查顺序>
/dev/sda1 /boot ext4 defaults 1 2
/dev/mapper/root / ext4 defaults,noatime 0 1
/dev/mapper/home /home ext4 defaults,noatime 0 2
/dev/mapper/swap none swap defaults 0 0
在示例中,每行代表一个文件系统的挂载信息。各字段的含义如下:
<文件系统设备>: 指定文件系统设备的名称或标识符,如 /dev/sda1、UUID=xxx。
<挂载点>: 指定文件系统挂载的目标目录。
<文件系统类型>: 指定文件系统的类型,如 ext4、xfs、ntfs。
<挂载选项>: 指定挂载选项,如 defaults、noatime 等。可以使用逗号分隔多个选项。
<其他选项>: 指定其他选项,如 0(不备份)或 1(每日备份)。
<备份频率>: 指定备份频率,如 1(每天备份)或 2(每周备份)。
<检查顺序>: 指定文件系统检查顺序,如用于 / 根目录的 1 或 0(不检查)。
注意;对于自定义的挂载点,您需要确保这些目录已经存在,并且已经设置合适的权限。
在编辑 fstab 文件后,记得保存更改,并使用以下命令测试文件是否正确无误:
sudo mount -a
此命令将尝试挂载 fstab 中定义的所有文件系统。如果没有任何错误消息,则说明 fstab 中的配置是正确的,并且文件系统已成功挂载。
重要提示:在修改 fstab 文件之前,请务必备份原始文件和确保了解每个项目的含义。错误的 fstab 配置可能会导致系统无法引导或挂载失败。
- rc.local 文件,rc.local文件用于存放开机自启动服务命令。在 CentOS 7 中,默认情况下 rc.local 文件是禁用的,并不推荐使用。因此,如果要在 CentOS 7 中执行自定义命令或脚本,建议使用其他方式,如 systemd 单元文件。
然而,如果仍然希望使用 rc.local 文件,以下是一些需要注意的事项:
最首先,我发现在/etc路径下已经存在一个名为rc.local的文件,但是用此文件启动服务始终报错,后用touch命令在/etc下新建了/rc.d/rc.local文件,使用此文件最终成功。
1.确保 rc.local 文件存在并可执行:
sudo touch /etc/rc.d/rc.local
sudo chmod +x /etc/rc.d/rc.local
2.使用 root 权限编辑 rc.local 文件:
sudo vi /etc/rc.d/rc.local
3.在 rc.local 文件中添加要执行的自定义命令或脚本,特别注意,此文件中的第一行必须是#!/bin/bash,当此文件的第一行为空时,启动服务将失败!例如:
#!/bin/bash
# 这是一个示例命令
echo "Hello, World!" > /tmp/hello.txt
4.保存并关闭 rc.local 文件。
5.启用 rc.local 服务单元:
sudo systemctl enable rc-local.service
6.启动 rc.local 服务:
sudo systemctl start rc-local.service
上述步骤启用了 rc.local 服务单元,并执行了 rc.local 文件中的命令。
重要提示:由于 CentOS 7 默认禁用 rc.local 文件并不推荐使用,建议考虑使用 systemd 单元文件来管理启动任务和服务。
启动时打印时间到/tmp/helloandtime.txt。
在rc.local中写入以下内容。
echo $(date +%F%n%T) > /tmp/helloandtime.txt
在启动rc-local.service过程中频繁报错,如下图所示,
7. 全局环境变量配置文件,/etc/profile文件。可用于存放用户登录后自动执行的脚本。
注意的是,/etc/profile 文件中的脚本是在所有用户登录时执行的。如果想要定义仅在特定用户下执行的脚本,可以考虑使用相应用户的个人配置文件,例如:
对于特定用户:home/用户名/.bash_profile
修改文件之后需要使用source命令是文件立即生效。
- 定时任务配置文件,/var/spool/cron。
用户定时任务:对于特定用户的定时任务,可以使用用户的个人配置文件来配置。每个用户可以使用 crontab 命令编辑自己的定时任务。用户的定时任务文件位于 /var/spool/cron 目录中,以用户名命名。例如,要编辑用户 username 的定时任务,可以运行以下命令:
crontab -e -u username
在编辑器中,可以添加或编辑定时任务。定时任务的格式遵循 cron 语法。编辑完成后,定时任务将自动保存并生效。
系统定时任务:对于系统级别的定时任务,可以使用系统的定时任务配置文件。在 CentOS 7 中,这些配置文件位于 /etc/cron.* 目录中,并根据执行时间间隔进行分类。以下是其中一些常见的配置文件:
/etc/crontab:系统范围的定时任务配置文件。
/etc/cron.hourly/:每小时执行一次的定时任务目录。
/etc/cron.daily/:每天执行一次的定时任务目录。
/etc/cron.weekly/:每周执行一次的定时任务目录。
/etc/cron.monthly/:每月执行一次的定时任务目录。
可使用文本编辑器打开这些文件,并按照 cron 语法的格式添加或编辑定时任务。注意,对于这些文件的更改将在下一个对应时间间隔触发定时任务时生效。
示例:要在系统级别每天执行脚本的定时任务,可以将脚本添加到 /etc/cron.daily/ 目录中,确保脚本具有可执行权限。
sudo chmod +x /etc/cron.daily/my_script.sh
必须符合cron特定的 语法,以确保任务在预期的时间和频率下执行。
编辑完成后,定时任务将自动进行触发和执行,而无需其他操作。