天天看点

linux下的系统和软件配置方法简介

简介:使用Vim时,我们需要对~/.vimrc进行配置;对网络连接进行配置的时候,我们需要修改/etc下面的相应文件;gedit出现乱码的时候我们需要修改相应的键值,让它支持中文字符显示;在libreoffice出现乱码的时候,我们又需要直接在菜单--工具中进行设置?linux下出现了相应的乱码该如何解决?相应的配置文件在哪个地方?通过哪个接口来修改相应的程序配置?本文,主要解决的就是上述疑问,给出了比较一般性的答案。

1.系统配置文件:

       为什么又有系统配置文件?想一想:每次登录系统,我们首先进入哪种登录界面?每次连接网络我们采用动态连接还是指定ip?等等,这些东西都必须记录在某个地方,在启动相应的程序的时候,会自动读取这些配置信息,这些配置信息就是系统配置文件。而内核到哪里读取相应的信息?为了便于管理,这些往往都有一个统一的约定,在/etc目录下面,包括了访问文件/登录和注销信息/文件系统/系统管理/联网/系统命令/守护进程,还有一部分集成在系统之中的应用程序。

2.系统级用户配置文件

     另外,如果有的人不喜欢在/etc/中配置程序的方式该怎么办呢?统一放在一个目录下,如何对权限进行有效管理?如果一个程序对应一个配置文件,如何对不同用户满足不同的配置需求(例如,我们需要不同的Vim配置环境)?所以,还有一类用户配置文件.(点)文件和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 不引用任何文件。
.bashrc是配置文件,在你的账号登录系统的时候,系统就会自动读取的,不是用来执行的
如果你修改过,要想使它及时生效,可以登出账号再登入,或者用source .bashrc      
~/.emacs 启动时由 emac 读取。
~/.forward 如果这里包含一个电子邮件地址,那么所有发往 ~ 的所有者的邮件都会被转发到这个电子邮件地址。
~/.fvwmrc ~/.fvwm2rc fvwm 和 fvwm2(基本的 X Window 管理器)的配置文件。
~/.hushlogin 请参考“man login”。引起“无提示”登录(没有邮件通知、上次登录信息或者 MOD 信息)。
~/.mail.rc 邮件程序的用户初始化文件。
~/.ncftp/ ncftp 程序的目录;包含书签、日志、宏、首选项和跟踪信息。请参阅 man ncftp。ncftp 的目的是为因特网标准文件传输协议(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- 工具(如 rsh、rlogin 等等)使用。因为冒充主机很容易,所以安全性非常低。 
  1. 必须由用户(~/ 的所有者)或超级用户拥有。
  2. 列出一些主机,用户可以从这些主机访问该帐号。
  3. 如果是符号链接则被忽略。
~/.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 可以找到要执行的 X,xinit 就会将该文件作为 X 服务器运行。
~/News/Sent-Message-IDs gnus 的缺省邮件历史文件。
~/.Xauthority 由 xdm 程序读和写,以处理权限。请参阅 X、xdm 和 xauth 联机帮助页。
~/.Xdefaults, ~/.Xdefaults-hostname 在主机 hostname 的启动过程中由 X 应用程序读取。如果找不到 -hostname 文件,则查找 .Xdefaults 文件。
~/.Xmodmap 指向 .xmodmaprc;Red Hat 有使用这个名称的 .xinitrc 文件。
~/.Xresources 通常是传送到 xrdb 以加载 X 资源数据库的文件的名称,旨在避免应用程序需要读取一个很长的 .Xdefaults 文件这样的情况。(有些情况曾经使用了 ~/.Xres。)
~/mbox 用户的旧邮件。

3.普通程序配置文件

        对于像gedit/libreoffice等等应用程序,他们的配置文件又放在何处,如何有效配置它们呢?这里,我们介绍两种方法:基于命令行的工具gsettings和基于图形界面的配置工具gconfig-editor。

3.1gsettings

3.1.1gsettings简介

        man文档中的说明:gsetting是GSettings的命令行接口。通过这个接口,你能够观察/得到/设置不同的键值。通常情况下,这个命令需要包含两个参数:模式(schemas)和键值(key)。如果模式没有一个固定的路径,你也可以为它指定一个路径。GSettings提供了访问(属性/值)的API使得你无须直接访问存储这些数据的后端文件(例如configfiles,gconf,dconf)。

3.1.2 gsettings用法

Usage:

gsettings[--schemadir SCHEMADIR] COMMAND [ARGS...]

Commands:

help Show this information

list-schemas List installed schemas

list-relocatable-schemas List relocatable schemas

list-keys List keys in a schema

list-children List children of a schema

list-recursively List keys and values, recursively

range Queries the range of a key

get Get the value of a key

set Set the value of a key

reset Reset the value of a key

reset-recursively Reset all values in a given schema

writable Check if a key is writable

monitor Watch for changes

Use'gsettings help COMMAND' to get detailed help.

3.1.3实例:设置gedit的编码字符解决中文乱码问题

        首先,找到gedit编码对应的属性

[email protected]:~$gsettings list-schemas | grep gedit

org.gnome.gedit.state

org.gnome.gedit.preferences.ui

org.gnome.gedit.plugins

org.gnome.gedit.state.history-entry

org.gnome.gedit.preferences

org.gnome.gedit.preferences.print

org.gnome.gedit

org.gnome.gedit.preferences.encodings

org.gnome.gedit.state.window

org.gnome.gedit.plugins.time

org.gnome.gedit.plugins.filebrowser.nautilus

org.gnome.gedit.plugins.filebrowser

org.gnome.gedit.preferences.editor

org.gnome.gedit.state.file-filter

org.gnome.gedit.plugins.pythonconsole

org.gnome.gedit.plugins.externaltools

(代码中黑体部分就是需要找的schema)

        然后,找到schema下面对应的属性值

[email protected]:~$gsettings list-recursively org.gnome.gedit.preferences.encodings

org.gnome.gedit.preferences.encodingsauto-detected ['UTF-8', 'GB18030', 'GB2312', 'GBK', 'BIG5','CURRENT', 'UTF-16']

org.gnome.gedit.preferences.encodingsshown-in-menu ['ISO-8859-15']

(黑体部分就是需要编辑的)

        对属性值进行设置:

[email protected]:~$gsettings set org.gnome.gedit.preferences.encodings auto-detected"['UTF-8', 'GB18030', 'GB2312','BIG5', 'CURRENT', 'UTF-16']"

        验证:

[email protected]:~$gsettings list-recursively org.gnome.gedit.preferences.encodings

org.gnome.gedit.preferences.encodingsauto-detected ['UTF-8', 'GB18030', 'GB2312', 'BIG5', 'CURRENT','UTF-16']

org.gnome.gedit.preferences.encodingsshown-in-menu ['ISO-8859-15']

可以发现GBK编码果真被去掉了,同理也可以加上各类字符编码。

3.2gconf-editor

        用过window的用户都知道它下面的注册表,同样,为了对用户友好,linux下也有对应的注册表gconfig,它是基于GNOME2桌面的Linux操作系统中用于配置应用程序属性的管理工具,它的gui接口就是gconf-editor或者dconf-editor。这个和win下面的注册表相似,具体不再介绍。

4总结:修改一个应用程序的配置往往会处理三个地方可能的一个或者几个:系统/etc目录下面;home下面的.rc文件等;gconf之中。前两者直接编辑配置文件,后者可以通过gsettings命令接口/gconf图形界面/直接在应用软件提供的界面中修改。

参考文献:

【1】理解linux配置文件:http://www.ibm.com/developerworks/cn/linux/management/configuration/index.html