Yayi和大家一起学习Fedora系列教程–第四课

第三课我们讲到Linux文本模式下的软件使用,虽然并没有一个个详细的讲,但是依然教了大家怎么去应用他们,一个个的讲功能没有任何的意义,更多的应该是找到妙诀!然自己遇到从来没有应用过的软件时候,知道怎么去找到他的使用方法与帮助,所以这次的课我们依然采取这样的讲法。

这次课我们讲的是配置文件,那么什么是配置文件?

简单的说配置文件是配置一个软件,改变其属性、参数等的一个文本文件。举个例子,我们需要找到网卡接口的配置文件,然后修改里面的内容来达到我们需要的目的,例如修改IP地址、子网掩码、网关等。

学习配置文件的修改之前必须要知道并且一定要记住以下的几点:

1. 参数

2. 选项

3. 附加选项

那么他们是不是所有的格式都一样?

很明显,那是不可能的,每种软件的配置文件都是不一样,这样对于我们刚学习的同学来说是很困恼的,不过只要自己接触多了,慢慢会发现规则,规则是什么?我也解释不了,只能靠大家自己的经验了。

一般我们修改配置文件都会使用什么软件来修改呢?

其实全部归纳来说就是文本编辑器,当然文本编辑器很多,选择自己喜欢的一个就好。

不明白?没关系,我们实际的动手来理解,还记得我们上次课讲的,要查看网络接口属性的软件是哪个不?没错是ifconfig。现在我们用ifconfig先查看下我们主机网络接口的属性。

从图上我们可以看出,Yayi的主机又两个网络接口,一个eth0,另一个lolo是指主机的环回接口)。eth0IP地址为192.168.42.129、子网掩码为255.255.255.0、广播地址为192.168.42.255,现在我们就来通过修改其配置文件来更变IP、子网掩码和广播地址。

要修改其配置文件就必须知道他存放的位置,之前的几课中,我们讲过“/etc”是专门存放配置文件的地方,那么网络接口的配置文件是不是一定就在里面?肯定很肯定的告诉你,如果你那么想,肯定是错!一般的配置文件都放在这里,并不代表全部,Linux是自主的,只要你有能力可以修改他们的配置文件存放处,另外,在编译安装一些软件的时候,你可以自定义的知道配置文件存放的地方。不过为了规范和我们管理起来方便,建议大家都存放在“/etc”下。但是有些时候不规范要比规范好。

Fedora下,网卡接口的配置文件一般默认在:

/etc/sysconfig/network-scripts/

进入这个目录我们可以看到许多的配置文件,但是我们只需要找到一个,名为“ifcfg-eth0”,并不是每个人都一样,根据自己的实际情况来看。使用编辑器来对他进行编辑:

现在我们一起来看看,我是DHCP获取的IP,然而这个配置文件的规则是:

配置文件参数=配置文件选项(注意中间的“=”号)

每一行为一个配置项,每一个配置项修改其一样参数。大家可能会头疼,每一项的作用是什么?这个问题的确很难解释,不过聪明的同学已经发现了!根据选项后面的参数进行猜测,例如DNS1=202.96.128.166,这个配置项的作用肯定是修改第一个DNS地址。但是如果遇到自己不懂参数的内容捏?那就需要靠你自己的E文能力了,一般来说都是E文的缩写,懂E文就不能理解了。

下面我做个示范,发其IP地址改为静态:

这样,我就已经修改好了。然后是保存退出。修改是不是马上就能生效?许多朋友在操作Linux时就犯下这样的错误,修改完就以为马上生效了。其实不然,我们都知道,系统启动后,大部分运行中的软件都会装载到内存中。然后我们修改了配置文件,但是他并没有激活或者说更新到内存里。那么我们需要怎么做?重新启动系统吗?这是一个选择,但是这个是最坏的打算,特别是我们的主机不在身边的时候。那么我们应该怎么在不重新启动系统的情况下来更新内存里的信息呢?Linux在这里为我们提供了很不错的解决方案,服务个体单独重新启动,这样一来我们就可以不重启其他服务的情况下,单更新一个服务的资料了。这个事怎么一回事?或许这么说大家会明白点,当我们重启服务个体时,首先是把一个服务个体给停止了,服务停止了,那么他自然也会从内存里释放掉,释放掉后,服务将再次启动,把新的配置文件内容激活到内存里。值得一提的是,我们千万不要忘记了服务的依赖性质,如果服务1依赖服务2,那么服务2要重启,服务1必须也要重启。

下面我们来看看服务是怎么重启的!

服务重启的方法很多,我们这里教给大家一个最常用的,个别特殊的在以后会慢慢讲到。service这个软件。其用法:

service 服务名称 restart(重启)/start(启动)/stop(停止)/status(运行状态)

此软件需要root用户来完成。下面我就重启网络服务给大家看看:

这样我们就已经在不重启系统的情况下,把一个服务内容在内存里更新了,然后我们再用ifconfig来查看下我们修改后的效果。

这时我们的网络接口信息已经变动了,说明了我们已经成功修改了。

方法已经交给大家了,我不会一个个配置文件的讲,下面就列出一些重用的配置文件作用与其位置。

访问文件

/etc/host.conf 告诉网络域名服务器如何查找主机名。(通常是 /etc/hosts,然后就是名称服务器;)
/etc/hosts 包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS NIS 网络名称服务器之前,/etc/hosts.conf 通常会告诉解析程序先查看这里。
/etc/hosts.allow 允许访问主机的名单,可以使主机名、IP地址、网络号和域名。
/etc/hosts.deny 拒绝访问主机的名单,可以使主机名、IP地址、网络号和域名。

引导和登录/注销

/etc/issue & /etc/issue.net 这些文件由 mingetty(和类似的程序)读取,用来向从终端(issue)或通过 telnet 会话(issue.net)连接的用户显示一个“welcome”字符串。它们包括几行声明 fedora 版本号、名称和内核 ID 的信息。它们由 rc.local 使用。
/etc/fedora-release 包括一行声明 fedora版本号和名称的信息。由 rc.local 使用。
/etc/rc.d/rc 通常在所有运行级别运行,级别作为参数传送。例如,要以图形(Graphics)模式(X-Server)引导机器,请在命令行运行下面的命令: init 5 。运行级别 5 表示以图形模式引导系统。
/etc/rc.d/rc.local 非正式的。可以从 rcrc.sysinit /etc/inittab 调用。
/etc/rc.d/rc.sysinit 通常是所有运行级别的第一个脚本。
/etc/rc.d/rc/rcX.d rc 运行的脚本( X 表示 1 5 之间的任意数字)。这些目录是特定运行级别的目录。当系统启动时,它会识别要启动的运行级别,然后调用该运行级别的特定目录中存在的所有启动脚本。例如,系统启动时通常会在引导消息之后显示“entering run-level 3”的消息;这意味着 /etc/rc.d/rc3.d/ 目录中的所有初始化脚本都将被调用。

文件系统

/etc/mtab 这将随着 /proc/mount 文件的改变而不断改变。换句话说,文件系统被安装和卸载时,改变会立即反映到此文件中。
/etc/fstab 列举计算机当前可以安装的文件系统。这非常重要,因为计算机引导时将运行 mount -a 命令,该命令负责安装 fstab 的倒数第二列中带有“1”标记的每一个文件系统。
/etc/mtools.conf DOS 类型的文件系统上所有操作(创建目录、复制、格式化等等)的配置。

系统管理

/etc/group 包含有效的组名称和指定组中包括的用户。单一用户如果执行多个任务,可以存在于多个组中。例如,如果一个用户“project 1”工程组的成员,同时也是管理员,那么在 group 文件中他的条目看起来就会是这样的: user: * : group-id : project1
/etc/nologin 如果有 /etc/nologin 文件存在,login(1) 将只允许 root 用户进行访问。它将对其它用户显示此文件的内容并拒绝其登录。
/etc/passwd 请参阅“man passwd”。它包含一些用户帐号信息,包括密码(如果未被 shadow 程序加密过)。
/etc/rpmrc rpm 命令配置。所有的 rpm 命令行选项都可以在这个文件中一起设置,这样,当任何 rpm 命令在该系统中运行时,所有的选项都会全局适用。
/etc/securetty 包含设备名称,由 tty 行组成(每行一个名称,不包括前面的 /dev/),root 用户在这里被允许登录。
/etc/usertty
/etc/shadow
包含加密后的用户帐号密码信息,还可以包括密码时效信息。包括的字段有:

登录名

加密后的密码

1970 1 1 日到密码最后一次被更改的天数

距密码可以更改之前的天数

距密码必须更改之前的天数

密码到期前用户被警告的天数

密码到期后帐户被禁用的天数

1970 1 1 日到帐号被禁用的天数

/etc/shells 包含系统可用的可能的“shell”的列表。
/etc/motd 每日消息;在管理员希望向 Linux 服务器的所有用户传达某个消息时使用。

联网

/etc/networks 列举从机器所连接的网络可以访问的网络名和网络地址。通过路由命令使用。允许使用网络名称。
/etc/protocols 列举当前可用的协议。请参阅 NAG(网络管理员指南,Network Administrators Guide)和联机帮助页。 C 接口是 getprotoent。绝不能更改
/etc/resolv.conf 在程序请求解析一个 IP 地址时告诉内核应该查询哪个名称服务器。或者说是DNS设置。
/etc/rpc 包含 RPC 指令/规则,这些指令/规则可以在 NFS 调用、远程文件系统安装等中使用。
/etc/exports 要导出的文件系统(NFS)和对它的权限。
/etc/services 将网络服务名转换为端口号/协议。由 inetdtelnettcpdump 和一些其它程序读取。有一些 C 访问例程。
/etc/inetd.conf inetd 的配置文件。请参阅 inetd 联机帮助页。包含每个网络服务的条目,inetd 必须为这些网络服务控制守护进程或其它服务。注意,服务将会运行,但在 /etc/services 中将它们注释掉了,这样即使这些服务在运行也将不可用。格式为:<service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
/etc/sysconfig/network 指出 NETWORKING=yes no。至少由 rc.sysinit 读取。
/etc/sysconfig/network-scripts/if* fedora 网络配置脚本。

系统命令

/etc/grub.conf grub配置文件,包含系统的缺省引导命令行参数,还有启动时使用的不同映象。
/etc/logrotate.conf 维护 /var/log 目录中的日志文件。
/etc/identd.conf identd 是一个服务器,它按照 RFC 1413 文档中指定的方式实现 TCP/IP 提议的标准 IDENT 用户身份识别协议。identd 的操作原理是查找特定 TCP/IP 连接并返回拥有此连接的进程的用户名。作为选择,它也可以返回其它信息,而不是用户名。请参阅 identd 联机帮助页。
/etc/ld.so.conf 动态链接程序Dynamic Linker)的配置。
/etc/inittab 按年代来讲,这是 UNIX 中第一个配置文件。在一台 UNIX 机器打开之后启动的第一个程序是 init,它知道该启动什么,这是由于 inittab 的存在。在运行级别改变时,init 读取 inittab,然后控制主进程的启动。
/etc/termcap 一个数据库,包含所有可能的终端类型以及这些终端的性能。

内核

更改内核中的配置文件会立即影响到系统。例如,更改 passwd 文件以增加用户将立即使该用户变为可用。而且任何 Linux 系统的 /proc/sys 目录中都有一些内核可调参数。只有超级用户可以得到对所有这些文件的写访问权力;其它用户只有只读访问权力。此目录中文件的分类的方式和 Linux 内核源代码的分类方式一样。此目录中的每个文件都代表一个内核数据结构,这些数据结构可以被动态地修改,从而改变系统性能。

注意:在更改其中任何文件的任何值之前,您应该确保自己全面了解该文件,以避免对系统造成不可修复的损害。
/proc/sys/kernel/ 目录中的文件

文件名 描述
threads-max 内核可运行的最大任务数。
ctrl-alt-del 如果值为 1,那么顺序按下这几个键将彻底地重新引导系统。
sysrq 如果值为 1Alt-SysRq 则为激活状态。
osrelease 显示操作系统的发行版版本号
ostype 显示操作系统的类型。
hostname 系统的主机名。
domainname 网络域,系统是该网络域的一部分。
modprobe 指定 modprobe 是否应该在启动时自动运行并加载必需的模块。

用户配置文件:.(点)文件和 rc 文件

我们已经看到怎样容易地配置程序。但是如果有的人不喜欢在 /etc/ 中配置程序的方式该怎么办呢?普通用户不能简单地进入 /etc 然后更改配置文件;从文件系统的角度来看,配置文件的所有者是 root 用户!这就是大多数用户程序都定义两个配置文件的原因:第一个是系统级别的,位于 /etc/;另一个属于用户专用,可以在他或她的主目录中找到。

例如,我在我的系统中安装了非常有用的 wget 实用程序。/etc/ 中有一个 /etc/wgetrc 文件。在我的主目录中,有一个名为 .wgetrc 的文件,它描述了我定制的配置(只有在我,也就是用户运行 wget 命令时,才会加载这个配置文件)。其它用户在他们自己的主目录(/home/other)中也可以有 .wgetrc 文件;当然,只有这些用户运行 wget 命令时,才会读取这个文件。换句话说,/etc/wgetrc 文件为 wget 提供了缺省值,而 /home/xxx/.wgetrc 文件列举了某个用户的定制项。重要的是这只是一般规则,并非所有情况都如此。例如,一个象 pine 一样的程序,在 /etc/ 中并没有任何文件,它只在用户主目录中有一个定制配置文件,名为 .pinerc。其它程序可能只有 /etc/ 中的缺省配置文件,而且可能不允许用户定制这些配置文件(/etc 目录中只有少数 config. 文件是这种情况)。

通常使用的 rc 和 .(点)文件

文件名 描述
~/.bash_login 请参考“man bash”。如果 ~/.bash_profile 不存在,bash 则将 ~/.bash_login 作为 ~/.bash_profile 处理。
~/.bash_logout 请参考“man bash”。在退出时由 bash 登录 shell 引用。
~/.bash_profile bash 登录 shell 引用 /etc/profile 之后引用。
~/.bash_history 先前执行的命令的列表。
~/.bashrc 请参考“man bash”。由 bash 非登录交互式 shell 引用(没有其它文件)。除非设置了 BASH_ENV ENV,非交互式 shell 不引用任何文件。
~/.emacs 启动时由 emac 读取。
~/.forward 如果这里包含一个电子邮件地址,那么所有发往 ~ 的所有者的邮件都会被转发到这个电子邮件地址。
~/.fvwmrc ~/.fvwm2rc fvwm fvwm2(基本的 X Window 管理器)的配置文件。
~/.hushlogin 请参考“man login”。引起无提示登录(没有邮件通知、上次登录信息或者 MOD 信息)。
~/.mail.rc 邮件程序的用户初始化文件。
~/.ncftp/ ncftp 程序的目录;包含书签、日志、宏、首选项和跟踪信息。请参阅 man ncftpncftp 的目的是为因特网标准文件传输协议(Internet standard File Transfer Protocol)提供一个强大而灵活的接口。它旨在替换系统所使用的标准的 ftp 程序。
~/.profile 请参考“man bash”。如果 ~/.bash_profile ~/.bash_login 文件不存在,bash 则将 ~/.profile 作为 ~/.bash_profile 处理,并被其它继承 Bourn shell 使用。
~/.pinerc Pine 配置
~/.muttrc Mutt 配置
~/.exrc 这个文件可以控制 vi 的配置。
示例:set ai sm ruler
在此文件中写入上面一行会让 vi 设置自动缩进、匹配括号、显示行号和行列这几个选项。
~/.vimrc 缺省的“Vim”配置文件。和 .exrc 一样。
~/.gtkrc GNOME 工具包(GNOME Toolkit)。
~/.kderc KDE 配置。
~/.netrc ftp 缺省登录名和密码。
~/.rhosts r- 工具(如 rshrlogin 等等)使用。因为冒充主机很容易,所以安全性非常低。

1. 必须由用户(~/ 的所有者)或超级用户拥有。

2. 列出一些主机,用户可以从这些主机访问该帐号。

如果是符号链接则被忽略。

~/.rpmrc 请参阅“man rpm”。如果 /etc/rpmrc 不存在则由 rpm 读取。
~/.signature 消息文本,将自动附加在从此帐号发出的邮件末尾。
~/.twmrc twm The Window Manager)的配置文件。
~/.xinitrc 启动时由 X 读取(而不是由 xinit 脚本读取)。通常会启动一些程序。
示例:exec /usr/sbin/startkde
如果该文件中存在上面这行内容,那么在从这个帐号发出 startx 命令时,这一行就会启动“KDE 视窗管理器KDE Window Manager)。
~/.xmodmaprc 此文件被传送到 xmodmap 程序,而且可以被命名为任何文件(例如 ~/.Xmodmap ~/.keymap.km)。
~/.xserverrc 如果 xinit 可以找到要执行的 Xxinit 就会将该文件作为 X 服务器运行。
~/News/Sent-Message-IDs gnus 的缺省邮件历史文件。
~/.Xauthority xdm 程序读和写,以处理权限。请参阅 Xxdm xauth 联机帮助页。
~/.Xdefaults, ~/.Xdefaults-hostname 在主机 hostname 的启动过程中由 X 应用程序读取。如果找不到 -hostname 文件,则查找 .Xdefaults 文件。
~/.Xmodmap 指向 .xmodmaprcRed Hat 有使用这个名称的 .xinitrc 文件。
~/.Xresources 通常是传送到 xrdb 以加载 X 资源数据库的文件的名称,旨在避免应用程序需要读取一个很长的 .Xdefaults 文件这样的情况。(有些情况曾经使用了 ~/.Xres。)
~/mbox 用户的旧邮件。

(部分选自IBM)

这样一来,我们这节课就结束了。难?不算,只要多练。简单?那你肯定是天才。配置文件这个东西需要自己多点去应用,如果不能好好的找到窍门与经验、方法,那么你还不能说你会用Linux,接下来的课就更让你头疼的了。这样我们就讲完了。下一次课开始我们将会开始讲一些服务器的架设。


《Yayi和大家一起学习Fedora系列教程–第四课》上有1条评论

  1. 楼主的功劳是不可磨灭的啊

    党和人民群众将永远记住!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注