配置文件是为了在不改变源程序的基础上,通过更改其内容来控制源程序行为的文件,该文件由源程序在启动时加载或者在运行过程中定期加载。每个源程序的行为都可以通过修改其配置文件来按照您的偏好或需要去定制。由于Linux系统中并没有标准的配置文件格式,所以每次遇到一个新的配置文件就可能面临一次新的挑战。配置文件的格式依赖于编写源程序的程序员的喜好,为了便于用户使用,我们在编写程序时应该尽量秉承简洁明了的原则。配置文件按照隶属干系的不同,又可以分为全局配置文件跟用户配置文件。全局配置文件直接隶属于操作系统内核,需要管理员权限方能修改,对每个用户都生效,通常位于 /etc 目录下;用户配置文件直接隶属于每个用户,只能被对应的用户或者管理员修改,也只对相应的用户有效,一般以隐藏文件或目录(文件或目录名以“.”开头)的形式位于各个用户的家目录下。
一、全局配置文件
全局配置文件,通常是被系统内核加载并监控的一类配置文件,该配置文件用于维护跟描述系统必备的某些环境跟参数,如用户名密码信息、网络地址信息、环境变量信息等,也可以是第三方软件用于影响所有用户的配置文件,它们通常位于 /etc 目录下。因为涉及到系统低层,故对全局配置文件的修改必须预先获得管理员权限。不同的版本的 Linux 系统,全局配置文件大同小异,这里以 Ubuntu 10.04 为例,简单介绍下几类常用的全局配置文件。
1、系统初始化配置文件
/etc/timezone 时区 /etc/inetd.conf 超级进程
2、文件系统配置文件
/etc/fstab 开机时挂载的文件系统 /etc/mtab 当前挂载的文件系统
3、用户系统配置文件
/etc/passwd 用户信息 /etc/shadow 用户密码 /etc/group 群组信息 /etc/gshadow 群组密码 /etc/sudoers Sudoer列表(请使用“visudo”命令修改此文件,而不要直接编辑)
4、Shell配置文件
/etc/shell 可用Shell列表 /etc/inputrc ReadLine控件设定 /etc/profile 用户首选项 /etc/bash.bashrc bash配置文件
5、系统环境配置文件
/etc/environment 环境变量 /etc/updatedb.conf 文件检索数据库配置信息 /etc/issue 发行信息 /etc/issue.net/etc/screenrc 屏幕设定
6、网络配置文件
/etc/iftab 网卡MAC地址绑定 /etc/hosts 主机列表 /etc/hostname 主机名 /etc/resolv.conf 域名解析服务器地址 /etc/network/interfaces 网卡配置文件
二、用户配置文件
用户配置文件隶属于每个用户,配置信息只对相应的用户生效,一般都是第三方程序保存跟设置相关操作的配置文件,如 scim 输入法的配置文件 “~/.scim/config” ,也有跟系统相关的配置,如环境变量配置文件 “~/.profile” 。用户配置文件通常为全局配置文件的同名隐藏文件,位于当前用户的家目录($HOME)下,如 scim 输入法的全局配置文件 “/etc/scim/config” 跟用户配置文件 “/home/user/scim/config” ,也有少数例外,如 Shell 终端的全局配置文件 “/etc/bash.bashrc” 跟用户配置文件 “/home/user/.bashrc” 。
当我们为Linux添加用户时,系统将为这个用户自动创建一个以该用户名命名的目录,称之为该用户的家目录。比如对“trevor”用户,他的家目录就是“/home/trevor”。一般用户只能更改自己家目录底下的文件,其他目录下的文件需要管理员权限,这样一来,各个用户之间就不会相互干扰了。
用户配置文件便是为每一个用户所独有的配置文件。正如前面提到的,“trevor” 用户的 Shell 配置文件为 “/home/trevor/.bashrc”,“root” 用户的 Shell 配置文件为 “/home/root/.bashrc”。这样,每个用户拥有不同的“.bashrc”文件,可以根据需要自行修改,而不会相互影响。全局配置文件“/etc/bash.bashrc” 则是所有用户共享的,整个系统只有一份。一般而言,用户的 “/home/user/.bashrc” 开头都会调用 “/etc/bash.bashrc”,因此更改“/etc/bash.bashrc”将会影响到所有用户。
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。