- List item
今天继续宅家,闲来无事接着写。本篇是《Linux从小白到高手》理论篇的最后一篇了。本篇集中介绍所有常用的Linux重要配置文件。
用这个命令可以查看配置文件所在的位置:如上图
locate "*.conf" "*.ini" "*.cfg"
每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作。
例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中文件
的列表时需要使用这些机器指令。几乎每个程序的行为都可以通过修改其配置文件来按照操作者的偏好或需
要去定制。
那么,Linux 中有没有一个标准的配置文件格式?
答案可能会让您失望。没有。在 Linux 中,每个程序员都可以自由选择他喜欢的配置文件格式。
Linux的配置文件成百上千,以下是我结合工作经验列出的可能用到的或者需要修改的,大家可以收藏备用。
1. 系统启动和初始化
/etc/inittab:系统启动时的主控制文件,用于定义系统的运行级别和启动过程。不过,现代Linux系统可能使用systemd来替代传统的init系统,因此这个文件可能不再被直接使用。
/etc/fstab:文件系统表,定义了系统启动时自动挂载的文件系统。
/etc/rc.local:在系统启动过程中执行的本地脚本文件。
2.用户和组管理
/etc/passwd:用户账户信息文件,包含用户的用户名、用户ID(UID)、组ID(GID)、家目录、登录Shell等信息。
/etc/shadow:用户密码文件,存储经过加密的用户密码和其他密码信息。
/etc/group:用户组信息文件,包含组名、组密码(通常不使用)、组ID(GID)和组成员列表。
3.网络配置
/etc/sysconfig/network-scripts/ifcfg-:网络接口配置文件,用于配置网络接口的参数,如IP地址、子网掩码、网关等。
/etc/resolv.conf:DNS解析配置文件,用于指定系统的DNS服务器。
/etc/hosts:本地主机名解析文件,用于将主机名映射到IP地址。
4.系统服务和守护进程
/etc/init.d/ 或 /etc/systemd/system/ 或 /lib/systemd/system/:系统服务和守护进程的启动脚本目录。这些脚本用于启动、停止、重启和检查服务状态。
/etc/xinetd.d/:如果系统使用xinetd超级服务器,该目录包含xinetd管理的服务的配置文件
5.系统日志和监控
etc/rsyslog.conf 或 /etc/syslog.conf:系统日志配置文件,用于定义日志消息的路由和处理规则。
/etc/logrotate.conf 和 /etc/logrotate.d/:日志轮转配置文件,用于定义日志文件的轮转策略,如压缩、删除和归档。
6.系统安全
/etc/sudoers:sudo命令的配置文件,用于定义哪些用户可以使用sudo以及他们可以使用sudo执行哪些命令。
/etc/ssh/sshd_config:SSH守护进程的配置文件,用于配置SSH服务的参数,如认证方式、端口号、允许连接的用户等。
7.系统环境变量
/etc/profile、/etc/bash.bashrc、/etc/environment:系统全局环境变量配置文件,用于设置系统的环境变量,如PATH、LANG等。
~/.bash_profile、~/.bashrc、~/.profile:用户个人环境变量配置文件,用于设置用户个人的环境变量。
8.系统核心配置
/etc/sysctl.conf:用于配置内核参数,如网络性能调整、内存管理等。
/etc/modules:指定系统启动时加载的内核模块。
9.文件系统和存储
/etc/fstab:定义系统启动时自动挂载的文件系统,包括硬盘分区、网络文件系统(NFS)等。
/etc/mtab:当前挂载的文件系统列表,通常由系统自动维护。
/proc/mounts:另一个当前挂载的文件系统列表,以文本形式提供。
10.网络和安全
/etc/ipsec.conf , /etc/ipsec.secrets:IPSec配置文件,用于设置IP安全策略。
/etc/firewalld/ , /etc/iptables/:防火墙配置文件,具体取决于系统使用的防火墙工具。
/etc/nftables/:如果系统使用nftables作为防火墙和包过滤工具,该目录包含相关配置文件。
11.系统和服务管理
/etc/systemd/system/:systemd服务配置文件目录,包含系统服务的单元文件。
/etc/upstart.conf:Upstart服务管理配置文件。(对于使用Upstart的系统)
/etc/init/:传统SysVinit服务脚本目录(在现代系统中可能不再使用)。
12.应用程序配置
/etc/apache2/ , /etc/httpd/:Apache Web服务器配置文件目录。
/etc/nginx/:Nginx Web服务器配置文件目录。
/etc/mysql/ , /etc/mariadb/:MySQL或MariaDB数据库配置文件目录。
/etc/postgresql/:PostgreSQL数据库配置文件目录。
/etc/samba/:Samba文件共享服务配置文件目录。
13.日志和监控
/etc/rsyslog.d/:rsyslog日志守护进程的额外配置文件目录。
/var/log/:系统日志文件目录,包含各种服务和应用程序的日志文件。
/var/log/audit/:审计日志文件目录,如果系统启用了审计功能。
14.国际化和本地化
/etc/locale.conf:设置系统语言和区域设置的配置文件。
/etc/timezone:指定系统时区的配置文件。
15.硬件和设备管理
/etc/udev/:udev设备管理器配置文件目录,用于定义设备规则。
/etc/modprobe.d/:modprobe配置文件目录,用于定义模块加载选项。
16.虚拟化和容器
/etc/docker/:Docker容器运行时配置文件目录。
/etc/kubernetes/:Kubernetes集群配置文件目录(如果系统作为Kubernetes节点)。
17.其他重要文件和目录
/etc/skel/:新用户家目录的模板目录,包含默认的配置文件。
/etc/default/:包含一些服务和应用程序的默认配置文件。
/etc/security/:系统安全相关配置文件目录,可能包含PAM(可插拔认证模块)配置等。
/var/spool/:存储系统运行时产生的临时文件的目录,如邮件队列、打印作业等。
18.其他配置文件
/etc/exports:NFS(网络文件系统)导出配置文件,用于定义哪些文件系统可以通过NFS共享给网络上的其他计算机。
/etc/crontab , /etc/cron.*/:定时任务配置文件,用于定义系统定期执行的任务。
注:以下命令可以找出当前系统所有的配置文件:
find /etc/ -type f -name "*.conf" -o -name "*.ini" -o -name "*.cfg"
locate "*.conf" "*.ini" "*.cfg"
ls /etc/ | grep -E "\.conf|\.ini|\.cfg"
find /etc/ -type f | grep -E "\.conf|\.ini|\.cfg"
本篇完结。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,家人们的点赞和关注是我笔耕不辍的动力。