介绍
每个 Linux E序都是一个可执行文gQ它含有操作码列表,CPU 执行这些操作码来完成特定的操作。例如,ls 命o是由 /bin/ls 文g提供的,该文件含有机器指令的列表Q在屏幕上显C当前目录中文g的列表时需要用这些机器指令。几乎每个程序的行ؓ都可以通过修改光|文件来按照您的偏好或需要去定制?/p>
Linux 中有没有一个标准的配置文g格式Q?/span>
一句话Q没有。不熟悉 Linux 的用P一定)会感到沮丧,因ؓ每个配置文g看v来都象是一个要q接的新挑战。在 Linux 中,每个E序员都可以自由选择他或她喜Ƣ的配置文g格式。可以选择的格式很多,?/etc/shells 文gQ它包含被一个换行符分开?shell 的列表)Q到 Apache 的复杂的 /etc/httpd.conf 文g?/p>
什么是pȝ配置文gQ?/span>
内核本n也可以看成是一?#8220;E序”。ؓ什么内栔R要配|文Ӟ内核需要了解系l中用户和组的列表,q而管理文件权限(x据权限判定特定用PUNIX_USERSQ是否可以打开某个文gQ。注意,q些文g不是明确地由E序d的,而是ql库所提供的一个函数读取,q被内核使用。例如,E序需要某个用LQ加密过的)密码时不应该打开 /etc/passwd 文g。相反,E序应该调用pȝ库的 getpw() 函数。这U函C被称为系l调用。打开 /etc/passwd 文g和之后查N个被h的用L密码都是由内核(通过pȝ库)军_的?/p>
除非另行指定QRed Hat Linux pȝ中大多数配置文g都在 /etc 目录中。配|文件可以大致分Z面几c:
讉K文g
/etc/host.conf |
告诉|络域名服务器如何查找主机名。(通常?/etc/hostsQ然后就是名U服务器Q可通过 netconf 对其q行更改Q?/td> |
/etc/hosts |
包含Q本地网l中Q已知主机的一个列表。如果系l的 IP 不是动态生成,可以用它。对于简单的L名解析(点分表示法)Q在h DNS ?NIS |络名称服务器之前,/etc/hosts.conf 通常会告诉解析程序先查看q里?/td> |
/etc/hosts.allow |
请参?hosts_access 的联机帮助页。至由 tcpd d?/td> |
/etc/hosts.deny |
请参?hosts_access 的联机帮助页。至由 tcpd d?/td> |
引导和登录/注销
/etc/issue & /etc/issue.net |
q些文g?mingettyQ和cM的程序)dQ用来向从终端(issueQ或通过 telnet 会话Qissue.netQ连接的用户昄一?#8220;welcome”字符丌Ӏ它们包括几行声?Red Hat 版本受名U和内核 ID 的信息。它们由 rc.local 使用?/td> |
/etc/redhat-release |
包括一行声?Red Hat 版本号和名称的信息。由 rc.local 使用?/td> |
/etc/rc.d/rc |
通常在所有运行别运行,U别作ؓ参数传送。例如,要以囑ŞQGraphicsQ模式(X-ServerQ引导机器,请在命o行运行下面的命oQ?init 5 。运行?5 表示以图形模式引导系l? |
/etc/rc.d/rc.local |
非正式的。可以从 rc、rc.sysinit ?/etc/inittab 调用?/td> |
/etc/rc.d/rc.sysinit |
通常是所有运行别的W一个脚本?/td> |
/etc/rc.d/rc/rcX.d |
?rc q行的脚本( X 表示 1 ?5 之间的Q意数字)。这些目录是特定“q行U别”的目录。当pȝ启动Ӟ它会识别要启动的q行U别Q然后调用该q行U别的特定目录中存在的所有启动脚本。例如,pȝ启动旉常会在引导消息之后昄“entering run-level 3”的消息;q意味着 /etc/rc.d/rc3.d/ 目录中的所有初始化脚本都将被调用? |
文gpȝ
内核提供了一个接口,用来昄一些它的数据结构,q些数据l构对于军_诸如使用的中断、初始化的设备和内存l计信息之类的系l参数可能很有用。这个接口是作ؓ一个独立但虚拟的文件系l提供的Q称?/proc 文gpȝ。很多系l实用程序都使用q个文gpȝ中存在的值来昄pȝl计信息。例如,/proc/modules 文g列Dpȝ中当前加载的模块。lsmod 命od此信息,然后其以h们可以看懂的格式昄出来。下面表g指定?mtab 文g以同L方式d包含当前安装的文件系l的 /proc/mount 文g?/p>
/etc/mtab |
q将随着 /proc/mount 文g的改变而不断改变。换句话_文gpȝ被安装和卸蝲Ӟ改变会立卛_映到此文件中?/td> |
/etc/fstab |
列D计算机当?#8220;可以安装”的文件系l。这非常重要Q因机引导时将q行 mount -a 命oQ该命o负责安装 fstab 的倒数W二列中带有“1”标记的每一个文件系l? |
/etc/mtools.conf |
DOS cd的文件系l上所有操作(创徏目录、复制、格式化{等Q的配置?/td> |
pȝ理
/etc/group |
包含有效的组名称和指定组中包括的用户。单一用户如果执行多个dQ可以存在于多个l中。例如,如果一?#8220;用户”?#8220;project 1”工程l的成员Q同时也是管理员Q那么在 group 文g中他的条目看h׃是这LQ?user: * : group-id : project1 |
/etc/nologin |
如果?/etc/nologin 文g存在Qlogin(1) 只允许 root 用户q行讉K。它对其它用户昄此文件的内容q拒l其d?/td> |
etc/passwd |
请参?#8220;man passwd”。它包含一些用户帐号信息,包括密码Q如果未?shadow E序加密q)?/td> |
/etc/rpmrc |
rpm 命o配置。所有的 rpm 命o行选项都可以在q个文g中一赯|,q样Q当M rpm 命o在该pȝ中运行时Q所有的选项都会全局适用?/td> |
/etc/securetty |
包含讑֤名称Q由 tty 行组成(每行一个名Uͼ不包括前面的 /dev/Q,root 用户在这里被允许d?/td> |
/etc/usertty /etc/shadow |
包含加密后的用户帐号密码信息Q还可以包括密码时效信息。包括的字段有:
- d?/li>
- 加密后的密码
- ?1970 q?1 ?1 日到密码最后一ơ被更改的天?/li>
- 距密码可以更改之前的天数
- 距密码必L改之前的天数
- 密码到期前用戯警告的天?/li>
- 密码到期后帐戯用的天?/li>
- ?1970 q?1 ?1 日到帐号被禁用的天数
|
/etc/shells |
包含pȝ可用的可能的“shell”的列表?/td> |
/etc/motd |
每日消息Q在理员希望向 Linux 服务器的所有用户传达某个消息时使用?/td> |
/etc/gated.conf |
gated 的配|。只能被 gated 守护q程所使用?/td> |
/etc/gated.version |
包含 gated 守护q程的版本号?/td> |
/etc/gateway |
?routed 守护q程可选地使用?/td> |
/etc/networks |
列D从机器所q接的网l可以访问的|络名和|络地址。通过路由命o使用。允怋用网l名U?/td> |
/etc/protocols |
列D当前可用的协议。请参阅 NAGQ网l管理员指南QNetwork Administrators GuideQ和联机帮助c?C 接口?getprotoent。绝不能更改?/td> |
/etc/resolv.conf |
在程序请?#8220;解析”一?IP 地址时告诉内核应该查询哪个名U服务器?/td> |
/etc/rpc |
包含 RPC 指oQ规则,q些指oQ规则可以在 NFS 调用、远E文件系l安装等中用?/td> |
/etc/exports |
要导出的文gpȝQNFSQ和对它的权限?/td> |
/etc/services |
网l服务名转换为端口号Q协议。由 inetd、telnet、tcpdump 和一些其它程序读取。有一?C 讉K例程?/td> |
/etc/inetd.conf |
inetd 的配|文件。请参阅 inetd 联机帮助c包含每个网l服务的条目Qinetd 必须些网l服务控制守护进E或其它服务。注意,服务会q行Q但?/etc/services 中将它们注释掉了Q这样即使这些服务在q行也将不可用。格式ؓQ?lt;service_name> <sock_type> <proto> <flags> <user> <server_path> <args> |
/etc/sendmail.cf |
邮gE序 sendmail 的配|文件。比较隐晦,很难理解?/td> |
/etc/sysconfig/network |
指出 NETWORKING=yes ?no。至由 rc.sysinit d?/td> |
/etc/sysconfig/network-scripts/if* |
Red Hat |络配置脚本?/td> |
pȝ命o
pȝ命o要独占地控制pȝQƈ让一切正常工作。所有如 loginQ完成控制台用户w䆾验证阶段Q或 bashQ提供用户和计算Z间交互)之类的程序都是系l命令。因此,和它们有关的文g也特别重要。这一cd中有下列令用户和理员感兴趣的文件?/p>
/etc/lilo.conf |
包含pȝ的缺省引导命令行参数Q还有启动时使用的不同映象。您?LILO 引导提示的时候按 Tab 键就可以看到q个列表?/td> |
/etc/logrotate.conf |
l护 /var/log 目录中的日志文g?/td> |
/etc/identd.conf |
identd 是一个服务器Q它按照 RFC 1413 文档中指定的方式实现 TCP/IP 提议的标?IDENT 用户w䆾识别协议。identd 的操作原理是查找特定 TCP/IP q接q返回拥有此q接的进E的用户名。作为选择Q它也可以返回其它信息,而不是用户名。请参阅 identd 联机帮助c?/td> |
/etc/ld.so.conf |
“动态链接程?#8221;QDynamic LinkerQ的配置?/td> |
/etc/inittab |
按年代来Ԍq是 UNIX 中第一个配|文件。在一?UNIX 机器打开之后启动的第一个程序是 initQ它知道该启动什么,q是׃ inittab 的存在。在q行U别改变Ӟinit d inittabQ然后控制主q程的启动?/td> |
/etc/termcap |
一个数据库Q包含所有可能的l端cd以及q些l端的性能?/td> |
守护q程
守护q程是一U运行在非交互模式下的程序。一般来_守护q程d是和联网区域有关的:它们{待q接Q以侉K过q接提供服务。Linux 可以使用?Web 服务器到 ftp 服务器的很多守护q程?/p>
/etc/syslogd.conf |
syslogd 守护q程的配|文件。syslogd 是一U守护进E,它负责记录(写到盘Q从其它E序发送到pȝ的消息。这个服务尤其常被某些守护进E所使用Q这些守护进E不会有另外的方法来发出可能有问题存在的信号或向用户发送消息?/td> |
/etc/httpd.conf |
Web 服务?Apache 的配|文件。这个文件一般不?/etc 中。它可能?/usr/local/httpd/conf/ ?/etc/httpd/conf/ 中,但是要确定它的位|,您还需要检查特定的 Apache 安装信息?/td> |
/etc/conf.modules or /etc/modules.conf |
kerneld 的配|文件。有意思的是,kerneld q不?#8220;作ؓ守护q程?#8221;内核。它其实是一U在需要时负责“快?#8221;加蝲附加内核模块的守护进E?/td> |
用户E序
?LinuxQ和一般的 UNIXQ中Q有无数?#8220;用户”E序。最常见的一U用L序配|文件是 /etc/lynx.cfg。这是著名的文本览?lynx 的配|文件。通过q个文gQ您可以定义代理服务器、要使用的字W集{等。下面的代码h展示?lynx.cfg 文g的一部分Q修改这部分代码可以改变 Linux pȝ的代理服务器讄。缺省情况下Q这些设|适用于在各自?shell 中运?lynx 的所有用P除非某个用户通过指定 --cfg = "mylynx.cfg"
重设了缺省的配置文g?
/etc/lynx.cfg 中的代理服务器设|?/strong>
.h1 proxy
.h2 HTTP_PROXY
.h2 HTTPS_PROXY
.h2 FTP_PROXY
.h2 GOPHER_PROXY
.h2 NEWS_PROXY
.h2 NNTP_PROXY
# Lynx version 2.2 and beyond supports the use of proxy servers that can act as
# firewall gateways and caching servers. They are preferable to the older
# gateway servers. Each protocol used by Lynx can be mapped separately using
# PROTOCOL_proxy environment variables (see Lynx Users Guide). If you have
# not set them externally, you can set them at run time via this configuration file.
# They will not override external settings. The no_proxy variable can be used
# to inhibit proxying to selected regions of the Web (see below). Note that on
# VMS these proxy variables are set as process logicals rather than symbols, to
# preserve lowercasing, and will outlive the Lynx image.
#
.ex 15
http_proxy:http://proxy3.in.ibm.com:80/
ftp_proxy:http://proxy3.in.ibm.com:80/
#http_proxy:http://penguin.in.ibm.com:8080
#ftp_proxy:http://penguin.in.ibm.com:8080/
.h2 NO_PROXY
# The no_proxy variable can be a comma-separated list of strings defining
# no-proxy zones in the DNS domain name space. If a tail substring of the
# domain-path for a host matches one of these strings, transactions with that
# node will not be proxied.
.ex
no_proxy:demiurge.in.ibm.com, demiurge
|
更改配置文g
在更攚w|文件时Q如果程序不是由pȝ理员或内核控制的,p保重新启动q用该配置的程序。普通用户通常没有启动或停止系l程序和Q或守护q程的权限?/p>
内核
更改内核中的配置文g会立卛_响到pȝ。例如,更改 passwd 文g以增加用户将立即使该用户变ؓ可用。而且M Linux pȝ?/proc/sys 目录中都有一些内核可调参数。只有超U用户可以得到对所有这些文件的写访问权力;其它用户只有只读讉K权力。此目录中文件的分类的方式和 Linux 内核源代码的分类方式一栗此目录中的每个文g都代表一个内核数据结构,q些数据l构可以被动态地修改Q从而改变系l性能?/p>
注意Q?/strong>在更改其中Q何文件的Mg前,您应该确保自己全面了解该文gQ以避免对系l造成不可修复的损実?
/proc/sys/kernel/ 目录中的文g
文g?/strong> |
描述 |
threads-max |
内核可运行的最大Q务数?/td> |
ctrl-alt-del |
如果gؓ 1Q那么顺序按下这几个键将“d?#8221;重新引导pȝ?/td> |
sysrq |
如果gؓ 1QAlt-SysRq 则ؓȀzȝ态?/td> |
osrelease |
昄操作pȝ的发行版版本?/td> |
ostype |
昄操作pȝ的类型?/td> |
hostname |
pȝ的主机名?/td> |
domainname |
|络域,pȝ是该|络域的一部分?/td> |
modprobe |
指定 modprobe 是否应该在启动时自动q行q加载必需的模块?/td> |
守护q程和系l程?/span>
守护q程是永q运行在后台的程序,它默默地执行自己的Q务。常见的守护q程?in.ftpdQftp 服务器守护进E)、in.telnetdQtelnet 服务器守护进E)?syslogdQ系l日志记录守护进E)。有些守护进E在q行时会严密监视配置文gQ在配置文g改变时就会自动重新加载它。但是大多数守护q程q不会自动重新加载配|文件。我们需要以某种方式“告诉”q些守护q程配置文g已经被发生了改变q应该重新加载。可以通过使用服务命o重新启动服务来达到这个目的(?Red Hat Linux pȝ上)?/p>
例如Q如果我们更改了|络配置Q就需要发出:
service network restart
?
注意Q这些服务最常见的是 /etc/rc.d/init.d/* 目录中存在的脚本Q在pȝ被引导时?init 启动。所以,您也可以执行如下操作来重新启动服务:
/etc/rc.d/init.d/<script-for-the-service> start | stop | status
start、stop ?status 是这些脚本接受的输入|用来执行操作?
用户E序
用户或系l程序在每次启动旉会读取其配置文g。尽如此,误住,有些pȝE序在计机打开时情况不一P它们的行Z赖于?/etc/ 中的配置文g中读到的内容。所以,用户E序W一ơ启动时从 /etc/ 目录中存在的文gd~省配置。然后,用户可以通过使用 rc ?.Q点Q文件来定制E序Q正如下面一节所C?/p>
用户配置文gQ?Q点Q文件和 rc 文g
我们已经看到怎样Ҏ地配|程序。但是如果有的h不喜Ƣ在 /etc/ 中配|程序的方式该怎么办呢Q?#8220;普?#8221;用户不能单地q入 /etc 然后更改配置文gQ从文gpȝ的角度来看,配置文g的所有者是 root 用户Q这是大多数用L序都定义两个配置文g的原因:W一个是“pȝ”U别的,位于 /etc/Q另一个属于用?#8220;专用”Q可以在他或她的ȝ录中扑ֈ?/p>
例如Q我在我的系l中安装了非常有用的 wget 实用E序?etc/ 中有一?/etc/wgetrc 文g。在我的ȝ录中Q有一个名?.wgetrc 的文Ӟ它描qC我定制的配置Q只有在我,也就是用戯?wget 命oӞ才会加蝲q个配置文gQ。其它用户在他们自己的主目录Q?home/otherQ中也可以有 .wgetrc 文gQ当Ӟ只有q些用户q行 wget 命oӞ才会dq个文g。换句话_/etc/wgetrc 文g?wget 提供?#8220;~省”|?/home/xxx/.wgetrc 文g列D了某个用L“定制?#8221;。重要的是这只是“一般规?#8221;Qƈ非所有情况都如此。例如,一个象 pine 一LE序Q在 /etc/ 中ƈ没有M文gQ它只在用户ȝ录中有一个定刉|文Ӟ名ؓ .pinerc。其它程序可能只?/etc/ 中的~省配置文gQ而且可能不允许用?#8220;定制”q些配置文gQ?etc 目录中只有少?config. 文g是这U情况)?/p>
通常使用?rc ?.Q点Q文?/span>
文g?/strong> |
描述 |
~/.bash_login |
请参?#8220;man bash”。如?~/.bash_profile 不存在,bash 则将 ~/.bash_login 作ؓ ~/.bash_profile 处理?/td> |
~/.bash_logout |
请参?#8220;man bash”。在退出时?bash d shell 引用?/td> |
~/.bash_profile |
?bash d shell 引用 /etc/profile 之后引用?/td> |
~/.bash_history |
先前执行的命令的列表?/td> |
~/.bashrc |
请参?#8220;man bash”。由 bash 非登录交互式 shell 引用Q没有其它文Ӟ。除非设|了 BASH_ENV ?ENVQ非交互?shell 不引用Q何文件?/td> |
~/.emacs |
启动时由 emac d?/td> |
~/.forward |
如果q里包含一个电子邮件地址Q那么所有发往 ~ 的所有者的邮g都会被{发到q个电子邮g地址?/td> |
~/.fvwmrc ~/.fvwm2rc |
fvwm ?fvwm2Q基本的 X Window 理器)的配|文件?/td> |
~/.hushlogin |
请参?#8220;man login”。引?#8220;无提C?#8221;dQ没有邮仉知、上ơ登录信息或?MOD 信息Q?/td> |
~/.mail.rc |
邮gE序的用户初始化文g?/td> |
~/.ncftp/ |
ncftp E序的目录;包含书签、日志、宏、首选项和跟t信息。请参阅 man ncftp。ncftp 的目的是为因特网标准文g传输协议QInternet standard File Transfer ProtocolQ提供一个强大而灵zȝ接口。它旨在替换pȝ所使用的标准的 ftp E序?/td> |
~/.profile |
请参?#8220;man bash”。如?~/.bash_profile ?~/.bash_login 文g不存在,bash 则将 ~/.profile 作ؓ ~/.bash_profile 处理Qƈ被其它?Bourn ?shell 使用?/td> |
~/.pinerc |
Pine 配置 |
~/.muttrc |
Mutt 配置 |
~/.exrc |
q个文g可以控制 vi 的配|? CZQset ai sm ruler 在此文g中写入上面一行会?vi 讄自动~进、匹配括受显C号和?列这几个选项? |
~/.vimrc |
~省?#8220;Vim”配置文g。和 .exrc 一栗?/td> |
~/.gtkrc |
GNOME 工具包(GNOME ToolkitQ?/td> |
~/.kderc |
KDE 配置?/td> |
~/.netrc |
ftp ~省d名和密码?/td> |
~/.rhosts |
?r- 工具Q如 rsh、rlogin {等Q用。因为冒充主机很ҎQ所以安全性非怽?
- 必须qP~/ 的所有者)或超U用h有?/li>
- 列出一些主机,用户可以从这些主问该帐号?/li>
- 如果是符号链接则被忽略?/li>
|
~/.rpmrc |
请参?#8220;man rpm”。如?/etc/rpmrc 不存在则?rpm d?/td> |
~/.signature |
消息文本Q将自动附加在从此帐号发出的邮g末尾?/td> |
~/.twmrc |
twmQ?The Window ManagerQ的配置文g? |
~/.xinitrc |
启动时由 X dQ而不是由 xinit 脚本dQ。通常会启动一些程序? CZQexec /usr/sbin/startkde 如果该文件中存在上面q行内容Q那么在从这个帐号发?startx 命oӞq一行就会启?#8220;KDE 视窗理?#8221;QKDE Window ManagerQ? |
~/.xmodmaprc |
此文件被传送到 xmodmap E序Q而且可以被命名ؓM文gQ例?~/.Xmodmap ?~/.keymap.kmQ?/td> |
~/.xserverrc |
如果 xinit 可以扑ֈ要执行的 XQxinit ׃该文g作ؓ X 服务器运行?/td> |
~/News/Sent-Message-IDs |
gnus 的缺省邮件历史文件?/td> |
~/.Xauthority |
?xdm E序d写,以处理权限。请参阅 X、xdm ?xauth 联机帮助c?/td> |
~/.Xdefaults, ~/.Xdefaults-hostname |
在主?hostname 的启动过E中?X 应用E序d。如果找不到 -hostname 文gQ则查找 .Xdefaults 文g?/td> |
~/.Xmodmap |
指向 .xmodmaprcQRed Hat 有用这个名U的 .xinitrc 文g? |
~/.Xresources |
通常是传送到 xrdb 以加?X 资源数据库的文g的名Uͼ旨在避免应用E序需要读取一个很长的 .Xdefaults 文gq样的情c(有些情况曄使用?~/.Xres。) |
~/mbox |
用户的旧邮g?/td> |
转蝲自:http://www.ibm.com/developerworks/cn/linux/management/configuration/index.html
]]>