2014-10-16 13:10:12 luoyhang003 阅读数 979
  • Linux系统管理

    Linux零基础学习,包含Linux用户管理,ACL权限设置,LVM磁盘管理,文件系统管理,进程和服务的管理及基于Linux系统各种编程环境的搭建。 本课程内容以基础性、操作性为主,属于云计算与大数据相关专业的专业基础课程,通过前期”Linux应用基础的学习”开始进一步深入Linux 系统的管理, 为下一阶段课程“网络服务器配置”做好准备,并为日后云计算与大数据应用学习打下扎实的基础。

    1131 人正在学习 去看看 李杰

由于笔者是一名大学生,对Linux内核开发方向很感兴趣,但是实在是能(ji)力(shu)有(cha)限(jin),只能从Linux应用开发开始,由浅入深,逐步进步,登上人生高峰,因此,昨天搭建了开发环境,安装了一些开发工具。(本来是所有工具都采取由编码编译来进行配置的,不料其中于上的问题实在太多,当时也没有做问题记录和解决方案的记录,于是就发了此文,采用一种比较便捷的方式,希望对和我一样的新手有些帮助)


下面进入正题:


一、安装

  1、安装gcc/g++/gdb/make 等基本编程工具

$sudo apt-get install build-essential

  2、安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件

$sudo apt-get install gnome-core-devel 

  3、用于在编译GTK程序时自动找出头文件及库文件位置  

$sudo apt-get install pkg-config

  4、安装 devhelp GTK文档查看程序

$sudo apt-get install devhelp

  5、安装 gtk/glib 的API参考手册及其它帮助文档

$sudo apt-get install libglib2.0-doc libgtk2.0-doc

  6、安装基于GTK的界面GTK是开发Gnome窗口的c/c++语言图形库 

$sudo apt-get install glade libglade2-dev
或者
$sudo apt-get install glade-gnome glade-common glade-doc

  7、安装gtk2.0 或者 将gtk+2.0所需的所有文件统通下载安装完毕

$sudo apt-get install libgtk2.0-dev
或者
$sudo apt-get install libgtk2.0*


二、查看GTK库版本

  1、查看1.2.x版本

$pkg-config --modversion gtk+

  2、查看 2.x 版本

$pkg-config --modversion gtk+-2.0

  3、查看pkg-config的版本

$pkg-config --version

  4、查看是否安装了gtk

$pkg-config --list-all grep gtk



至此就可以使用gtk来编译源程序了:

gcc base.c -o base `pkg-config --cflags --libs gtk+-3.0`


2017-05-16 17:19:33 wofeile880_jian 阅读数 2227
  • Linux系统管理

    Linux零基础学习,包含Linux用户管理,ACL权限设置,LVM磁盘管理,文件系统管理,进程和服务的管理及基于Linux系统各种编程环境的搭建。 本课程内容以基础性、操作性为主,属于云计算与大数据相关专业的专业基础课程,通过前期”Linux应用基础的学习”开始进一步深入Linux 系统的管理, 为下一阶段课程“网络服务器配置”做好准备,并为日后云计算与大数据应用学习打下扎实的基础。

    1131 人正在学习 去看看 李杰

接触过Linux的朋友们都知道,linux内部的时间分为系统时间和硬件时间。系统时间一般是在系统启动时读一下RTC,然后就依靠定时器维护的时间,这个时间的是掉电不保存的。而 硬件时间通常指的就是RTC,只要RTC有电池供电,这个时间是可以掉电保存的。

系统时间在应用程序中,可以用gettimeofday() / setttimeofday() 读取和设置。
硬件时间在终端中可以通过如下命令设置:
date -s 2017.05.16-17:07:13
hwclock -w

但是,在应用程序中改如何设置硬件时间呢?这里可以有两种方法:

1.通过子线程调用设置时间脚本,在脚本中执行上述的命令。这里不具体分析。
2.通过/dev/rtc 设置,打开/dev/rtc,我们可以对齐进行 读时间-RTC_RD_TIME,设置时间-RTC_SET_TIME等操作。

void setlocaltime(_local_time *tim)
{
    int fd_t;
    struct rtc_time dt;
    struct timeval tv;
    struct timezone tz;
    struct tm tm;

    /***set hardware RTC time 此处打开/dev/rtc***/

    fd_t=open("/dev/rtc",O_RDWR);
    if(fd_t<0)
        perror("open rtc");

    /*** 将本地时间格式转换为rtc_time ***/
    dt.tm_sec = tim->sec;
    dt.tm_min = tim->min;
    dt.tm_hour = tim->hour;
    dt.tm_mday = tim->day;
    dt.tm_mon = tim->month-1;
    dt.tm_year = tim->year+100;

    /*** 执行RTC_SET_TIME的操作,时间写入RTC,可以掉电保存***/
    if(ioctl(fd_t,RTC_SET_TIME,&dt)<0)
        perror("ioctl set time");

    /***set system time 同步更新系统时间***/
    gettimeofday(&tv,&tz);

    tm.tm_sec = dt.tm_sec;
    tm.tm_min = dt.tm_min;
    tm.tm_hour = dt.tm_hour;
    tm.tm_mday = dt.tm_mday;
    tm.tm_mon = dt.tm_mon;
    tm.tm_year = dt.tm_year;

    tv.tv_sec = mktime(&tm);

    settimeofday(&tv,&tz);

    close(fd_t);

}

通过上面的函数,可以实现RTC硬件时间的设置,并同时更新系统时间。

2017-03-10 15:22:53 Youyou_0826 阅读数 1129
  • Linux系统管理

    Linux零基础学习,包含Linux用户管理,ACL权限设置,LVM磁盘管理,文件系统管理,进程和服务的管理及基于Linux系统各种编程环境的搭建。 本课程内容以基础性、操作性为主,属于云计算与大数据相关专业的专业基础课程,通过前期”Linux应用基础的学习”开始进一步深入Linux 系统的管理, 为下一阶段课程“网络服务器配置”做好准备,并为日后云计算与大数据应用学习打下扎实的基础。

    1131 人正在学习 去看看 李杰
Linux应用程序的组成
1.普通的可执行程序文件,一般保存在/usr/bin目录中,普通用户即可执行。
2.服务器程序、管理程序文件,一般保存在/usr/sbin目录中,需要管理员才能执行。
3.配置文件,一般保存在/etc目录中,配置文件较多时会建立相应的子目录。
4.日志文件,一般保存在/var/log目录中。
5.关于应用程序的参考文档等数据,一般保存在/usr/share/doc/目录中。
6.执行文件及配置文件的man手册页,一般保存在/usr/share/man目录中。


软件包的封装类型
1.RPM软件包:这种软件包文件的扩展名为".rpm",只能在使用RPM机制的Linux操作系统中安装。RPM软件包一般针对特定版本的系统定制,因此依赖性较强。安装RPM包需要使用rpm命令。


2.DEB软件包:这种软件包文件的扩展名为".deb",只能在使用DPKG机制的Linux操作系统中安装。安装DEB软件包需要使用Linux系统中的dkpg命令。


3.源代码包:这种软件包是程序员开发完成的原始代码,一般被制作成".tar.gz"、".tar.bz2"等格式的压缩包文件,因多数使用tar命令打包而成,所以经常被称为"TarBall"。安装源代码软件包需要使用相应的编译工具,由于大部分Linux系统中都安装有基本的编译环境,因此使用源码软件包要更加灵活。


4.提供安装程序的软件包:这种软件包的扩展名不一,但仍以TarBall格式的居多。软件包中会提供用于安装的可执行程序或脚本文件,如install.sh、setup等,只需运行安装文件就可以根据向导完成安装。


5.绿色免安装的软件包:这种软件包直接包含有编译好的执行程序文件,因此不需要特别安装。


RHEL6系统的光盘中携带大部分软件包都组织在Server目录中,通过该目录中的文件可以熟悉RPM软件包的一般命名格式。挂载光盘的命令如下(假设sss.rpm为应用软件包):
#mount /dev/cdrom  /media/
 #ls -ls /media/Server/sss.rpm


使用RPM包管理工具及命令


RPM软件包管理机制最早由Red Hat公司提出,后来随着版本的升级逐渐融入了更多的优秀特性,成为众多Linux发行版中工人的软件包管理标准。


使用RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用“软件名-软件版本-发布次数.硬件平台类型.rpm”的文件名形式。


使用rpm命令能够实现几乎所有对RPM软件包的管理功能,执行"man rpm"命令可以查看关于rpm命令的帮助信息。


1.查询RPM软件包信息


rpm -qa


 


rpm  -qa |grep httpd


rpm  -qa |grep gcc


 


常用参数说明


-qa:显示当前系统中以RPM方式安装的所有软件列表


-qf:查看指定文件或目录是由哪个软件包所安装的。


-qd:显示指定软件包在当前系统中安装的文档文件(--docfiles)列表。


 


2.安装、升级、卸载RPM软件包


-i:在当前系统中安装(Install)一个新的RPM软件包。


-e:卸载指定名称的软件包。


-U:检查并升级系统中某个软件包,若该软件包并未安装,则等同于"-i"选项。


-F:检查并更新系统中某个软件包,若该软件包并未安装,则放弃安装。


-h:在安装或升级软件包过程中以"#"号显示安装过程。


-v:显示软件安装过程中的详细信息。


更多选项参考man信息。


 


在安装包时,千万要注意U选项,这会升级Linux内核,有可能致linux启动不起来。




安装rpm命令:


rpm  -ivh  sss.rpm


rpm  -ivh  --force  sss.rpm      --强制安装软件包,但是70%的可能是装好后不好使用;


rpm  -ivh  --nodeps  sss.rpm      安装时忽略软件依赖性;


 


删除RPM软件包:


rpm -e  sss                      ---删除时不要带扩展名


rpm  -ivh  sss.rpm


rpm  -ivh  --force  sss.rpm      强制安装软件包,但是70%的可能是装好后不好使用;


怎么解决软件包安装循环依赖?


将所有的软件包放到一个目录下后,进入目录后执行如下:


rpm -ivh  *.rpm


rpm  -ivh  sss.rpm


rpm  -ivh  --force  sss.rpm      强制安装软件包,但是70%的可能是装好后不好使用;


rpm  -ivh  --nodeps  sss.rpm      安装时忽略软件依赖性;
 
3.维护RPM数据库
 当RPM数据库损坏时,使用rpm命令的"--rebuilddb"或"--initdb"功能进行重建。


从源代码编译安装程序
现代的Linux发行版本通常使用包管理机制对软件进行打包安装,这样就省去了软件的编译安装过程,大大简化了Linux系统的安装和使用难度。但是在有些情况下,仍然需要使用源代码编译的方式为系统安装新的应用程序,例如:
1.安装较新版本的应用程序时
2.当前安装的程序无法满足应用需求:对于RPM格式封装的应用程序,一般只包含了该软件所能实现的一小部分功能,而难以由用户自行修改、定制。通过对程序的源码进行重新配置并编译安装后,可以定制更灵活、更丰富的功能。
3.为应用程序添加新功能时:当需要利用现有的应用程序源代码进行适当的修改,以便增强新的功能时,也必须释放出该软件的源代码,进行适当修改后重新编译安装。
编译源代码需要相应的开发环境,对于自由软件来说,gcc编译器是最佳选择。确认系统中编译环境:


源码编译安装的基本过程


1.解包:源代码吧一般为TallBall形式,使用tar命令进行解压释放。在Linux系统中,可以将各种软件的源代码文件保存到/usr/src/目录中,便于集中管理,如:


#tar xzf  sss.tar.gz  -C  /usr/src


2、预编译,makefile


配置工作通常由源代码目录中的"configure"脚本文件来完成,具体参数可以在源码目录中执行"./configure --help"进行查看。不同的程序其配置参数会存在区别,但是"--prefix"形式的参数却是大多数开源软件通用的,该配置参数用于指定软件包安装的目标文件夹,未指定参数时,"configure"配置脚本将采用默认值。若将应用程序的相关文件安装到同一个目录中,需要卸载时就非常方便,一般只要将程序文件夹删除即可


以MySql为例, tar.gz/gz    tar.bz2


./configure --help


            --prefix=/usr/local/soft


这步骤可能出现一些出现一些缺少库文件。当出现错误时,一定要把预编译失败生成的makefile删除掉。


怎么删除,就用rm命令删除


3.Make编译


编译:编译的过程主要是根据Makefile文件中的配置信息,将源代码文件编译、连接成二进制的模块文件、执行程序等。第二步的配置完成后执行"make"命令可以完成编译工作,一般比需配置步骤更长的时间,  make  10  并行编译,加开编译速度,在这一步出现错误,要进行make clean  ,将中间状态的二进制文件都要删除掉。


4.安装:编译完成后,就可以执行"make install"命令将软件的执行程序、配置文件、帮助文档等相关文件复制到Linux系统中了,即应用程序的最后安装过程。


上述过程中,有时候为了简单起见,也可以将编译、安装的步骤写成一行命令执行,中间使用"&&"符合分隔即可(make && make install)


.make install


第三部很少有问题


如果源码安装调试的合理,性能将会提升10倍甚至几十倍的提升。尤其是数据库和apache类此的服务软件。


本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-04/116418.htm


转自linux公社

2017-02-02 20:25:36 lmb55 阅读数 11420
  • Linux系统管理

    Linux零基础学习,包含Linux用户管理,ACL权限设置,LVM磁盘管理,文件系统管理,进程和服务的管理及基于Linux系统各种编程环境的搭建。 本课程内容以基础性、操作性为主,属于云计算与大数据相关专业的专业基础课程,通过前期”Linux应用基础的学习”开始进一步深入Linux 系统的管理, 为下一阶段课程“网络服务器配置”做好准备,并为日后云计算与大数据应用学习打下扎实的基础。

    1131 人正在学习 去看看 李杰
上篇文章写到了在工作中遇到的一个因为磁盘空间占满导致的问题,因应用每天都要写日志,所以如果不定时对部署应用的服务器进行清理的话会经常遇到这样的问题。为避免相似的问题发生,今天总结一个Linux日志定时清理的脚本,简单的配置一下,一劳永逸,何乐而不为。
1、Linux删除文件命令:
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
eg:
find /home/apache-tomcat-7.0.55-13-990*/webapps/ProxyServer2.0/WEB-INF/logs/ -mtime +10  -name "*.log.*" -exec rm -rf {} \;
说明:
find:Linux查找命令,用户查找指定条件的文件
/home/apache-tomcat-7.0.55-13-990*/webapps/HollyProxyServer2.0/WEB-INF/logs/:需要进行清理的目标目录
-mtime:标准语句写法
+10 :数字代表天数
-name "*.log.*":目标文件的类型,带有log的所有文件
-exec:固定写法
rm -rf:强制删除包括目录在内的文件
{} \;:固定写法,一对大括号+空格+\+;
2、设置定时任务
每次都去手动执行任务太麻烦,我们可以新建一个shell脚本文件,再设置cron调度执行,让系统自动去清理相关的文件。
(1)创建shell脚本(新建一个可执行文件auto-del-log.sh,并分配可运行权限)
touch  /home/apache-tomcat-7.0.55-13-990*/webapps/ProxyServer2.0/WEB-INF/bin/auto-del-log.sh

chmod +x auto-del-log.sh
(2)编辑shell脚本
vi auto-del-log.sh
编辑auto-del-log.sh文件如下:
#!/bin/sh
find /home/apache-tomcat-7.0.55-13-990*/webapps/ProxyServer2.0/WEB-INF/logs/ -mtime +10  -name "*.log.*" -exec rm -rf {} \;
保存退出(:wq)。
(3)执行定时任务
#crontab -e进入定时任务编辑页面,按i底部出现INSERT,开始进行任务脚本编辑,将auto-del-log.sh执行脚本加入到系统计划任务,到点自动执行:
30 0 * * * /home/apache-tomcat-7.0.55-13-990*/webapps/ProxyServer2.0/WEB-INF/logs/ auto-del-log.sh
设置每天凌晨0:30执行auto-del-log.sh文件进行数据清理任务。
编辑完成按Ctrl+c,输入:quit,之后再输入:w!完成保存,ctrl+c,:quit退出。
2009-10-11 13:49:25 Fangrn 阅读数 15
  • Linux系统管理

    Linux零基础学习,包含Linux用户管理,ACL权限设置,LVM磁盘管理,文件系统管理,进程和服务的管理及基于Linux系统各种编程环境的搭建。 本课程内容以基础性、操作性为主,属于云计算与大数据相关专业的专业基础课程,通过前期”Linux应用基础的学习”开始进一步深入Linux 系统的管理, 为下一阶段课程“网络服务器配置”做好准备,并为日后云计算与大数据应用学习打下扎实的基础。

    1131 人正在学习 去看看 李杰

本文说明了 Linux 系统的配置文件,在多用户、多任务环境中,配置文件控制用户权限、系统应用程序、守护进程、服务和其它管理任务。这些任务包括管理用户帐号、分配磁盘配 额、管理电子邮件和新闻组,以及配置内核参数。本文还根据配置文件的使用和其所影响的服务的情况对目前 Red Hat Linux 系统中的配置文件进行了分类。

每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作。例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中文件的列表时需要使用这些机器指令。 几乎每个程序的行为都可以通过修改其配置文件来按照您的偏好或需要去定制。

Linux 中有没有一个标准的配置文件格式?
一句话,没有。不熟悉 Linux 的用户(一定)会感到沮丧,因为每个配置文件看起来都象是一个要迎接的新挑战。在 Linux 中,每个程序员都可以自由选择他或她喜欢的配置文件格式。可以选择的格式很多,从 /etc/shells 文件(它包含被一个换行符分开的 shell 的列表),到 Apache 的复杂的 /etc/httpd.conf 文件。

内核本身也可以看成是一个“程序”。为什么内核需要配置文件?内核需要了解系统中用户和组的列表,进而管理文件权限(即根据权限判定特定用户 (UNIX_USERS)是否可以打开某个文件)。注意,这些文件不是明确地由程序读取的,而是由系统库所提供的一个函数读取,并被内核使用。例如,程序 需要某个用户的(加密过的)密码时不应该打开 /etc/passwd 文件。相反,程序应该调用系统库的 getpw() 函数。这种函数也被称为系统调用。打开 /etc/passwd 文件和之后查找那个被请求的用户的密码都是由内核(通过系统库)决定的。

除非另行指定,Red Hat Linux 系统中大多数配置文件都在 /etc 目录中。配置文件可以大致分为下面几类:

<!-- [if gte vml 1]> <![endif]--><!-- [if !vml]-->
<!-- [endif]-->

/etc/host.conf  告诉网络域名服务器如何查找主机名。(通常是 /etc/hosts,然后就是名称服务器;可通过 netconf 对其进行更改)
/etc/hosts  包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS 或 NIS 网络名称服务器之前,/etc/hosts.conf 通常会告诉解析程序先查看这里。
/etc/hosts.allow  请参阅 hosts_access 的联机帮助页。至少由 tcpd 读取。
/etc/hosts.deny  请参阅 hosts_access 的联机帮助页。至少由 tcpd 读取。
 
 
/etc/issue & /etc/issue.net  这 些文件由 mingetty(和类似的程序)读取,用来向从终端(issue)或通过 telnet 会话(issue.net)连接的用户显示一个“welcome”字符串。 它们包括几行声明 Red Hat 版本号、名称和内核 ID 的信息。它们由 rc.local 使用。
/etc/redhat-release  包括一行声明 Red Hat 版本号和名称的信息。由 rc.local 使用。

/etc/rc.d/rc  通常在所有运行级别运行,级别作为参数传送。 例如,要以图形(Graphics)模式(X-Server)引导机器,请在命令行运行下面的命令: init 5 。运行级别 5 表示以图形模式引导系统。

/etc/rc.d/rc.local  非正式的。可以从 rc、rc.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/ 目录中的所有初始化脚本都将被调用。

 
 

内核提供了一个接口,用来显示一些它的数据结构,这些数据结构对于决定诸如使用的中断、初始化的设备和内存统计信息之类 的系统参数可能很有用。这个接口是作为一个独立但虚拟的文件系统提供的,称为 /proc 文件系统。很多系统实用程序都使用这个文件系统中存在的值来显示系统统计信息。例如,/proc/modules 文件列举系统中当前加载的模块。lsmod 命令读取此信息,然后将其以人们可以看懂的格式显示出来。 下面表格中指定的 mtab 文件以同样的方式读取包含当前安装的文件系统的 /proc/mount 文件。

/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/gated.conf  gated 的配置。只能被 gated 守护进程所使用。
/etc/gated.version  包含 gated 守护进程的版本号。

/etc/gateway  由 routed 守护进程可选地使用。

/etc/networks  列举从机器所连接的网络可以访问的网络名和网络地址。通过路由命令使用。允许使用网络名称。
/etc/protocols  列举当前可用的协议。请参阅 NAG(网络管理员指南,Network Administrators Guide)和联机帮助页。 C 接口是 getprotoent。绝不能更改。
/etc/resolv.conf  在程序请求“解析”一个 IP 地址时告诉内核应该查询哪个名称服务器。
/etc/rpc  包含 RPC 指令/规则,这些指令/规则可以在 NFS 调用、远程文件系统安装等中使用。
/etc/exports  要导出的文件系统(NFS)和对它的权限。

/etc/services  将网络服务名转换为端口号/协议。由 inetd、telnet、tcpdump 和一些其它程序读取。有一些 C 访问例程。

/etc/inetd.conf  inetd 的配置文件。请参阅 inetd 联机帮助页。 包含每个网络服务的条目,inetd 必须为这些网络服务控制守护进程或其它服务。注意,服务将会运行,但在 /etc/services 中将它们注释掉了,这样即使这些服务在运行也将不可用。 格式为:<service_name> <sock_type> <proto> <flags> <user> <server_path> <args>

/etc/sendmail.cf  邮件程序 sendmail 的配置文件。比较隐晦,很难理解。
/etc/sysconfig/network  指出 NETWORKING=yes 或 no。至少由 rc.sysinit 读取。
/etc/sysconfig/network-scripts/if*  Red Hat 网络配置脚本。
 
 
 
系统命令要独占地控制系统,并让一切正常工作。所有如 login(完成控制台用户身份验证阶段)或 bash(提供用户和计算机之间交互)之类的程序都是系统命令。因此,和它们有关的文件也特别重要。这一类别中有下列令用户和管理员感兴趣的文件。
/etc/lilo.conf  包含系统的缺省引导命令行参数,还有启动时使用的不同映象。您在 LILO 引导提示的时候按 Tab 键就可以看到这个列表。
/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  一个数据库,包含所有可能的终端类型以及这些终端的性能。
 
 

守护进程是一种运行在非交互模式下的程序。一般来说,守护进程任务是和联网区域有关的:它们等待连接,以便通过连接提供服务。Linux 可以使用从 Web 服务器到 ftp 服务器的很多守护进程。

/etc/syslogd.conf  syslogd 守护进程的配置文件。syslogd 是一种守护进程,它负责记录(写到磁盘)从其它程序发送到系统的消息。这个服务尤其常被某些守护进程所使用,这些守护进程不会有另外的方法来发出可能有问题存在的信号或向用户发送消息。
/etc/httpd.conf  Web 服务器 Apache 的配置文件。这个文件一般不在 /etc 中。它可能在 /usr/local/httpd/conf/ 或 /etc/httpd/conf/ 中,但是要确定它的位置,您还需要检查特定的 Apache 安装信息。
/etc/conf.modules or /etc/modules.conf  kerneld 的配置文件。有意思的是,kerneld 并不是“作为守护进程的”内核。它其实是一种在需要时负责“快速”加载附加内核模块的守护进程。
 
 
 

在 Linux(和一般的 UNIX)中,有无数的“用户”程序。最常见的一种用户程序配置文件是 /etc/lynx.cfg。这是著名的文本浏览器 lynx 的配置文件。通过这个文件,您可以定义代理服务器、要使用的字符集等等。 下面的代码样本展示了 lynx.cfg 文件的一部分,修改这部分代码可以改变 Linux 系统的代理服务器设置。缺省情况下,这些设置适用于在各自的 shell 中运行 lynx 的所有用户,除非某个用户通过指定 --cfg = "mylynx.cfg" 重设了缺省的配置文件。


/etc/lynx.cfg 中的代理服务器设置

.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

 
 
在更改配置文件时,如果程序不是由系统管理员或内核控制的,就要确保重新启动过使用该配置的程序。普通用户通常没有启动或停止系统程序和/或守护进程的权限。
更改内核中的配置文件会立即影响到系统。例如,更改 passwd 文件以增加用户将立即使该用户变为可用。而且任何 Linux 系统的 /proc/sys 目录中都有一些内核可调参数。只有超级用户可以得到对所有这些文件的写访问权力;其它用户只有只读访问权力。此目录中文件的分类的方式和 Linux 内核源代码的分类方式一样。此目录中的每个文件都代表一个内核数据结构,这些数据结构可以被动态地修改,从而改变系统性能。

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

文件名 描述
threads-max 内核可运行的最大任务数。
ctrl-alt-del 如果值为 1,那么顺序按下这几个键将“彻底地”重新引导系统。
sysrq 如果值为 1,Alt-SysRq 则为激活状态。
osrelease 显示操作系统的发行版版本号
ostype 显示操作系统的类型。
hostname 系统的主机名。
domainname 网络域,系统是该网络域的一部分。
modprobe 指定 modprobe 是否应该在启动时自动运行并加载必需的模块。
守护进程是永远运行在后台的程序,它默默地执行自己的任务。常见的守护进程有 in.ftpd(ftp 服务器守护进程)、in.telnetd(telnet 服务器守护进程)和 syslogd(系统日志记录守护进程)。 有些守护进程在运行时会严密监视配置文件,在配置文件改变时就会自动重新加载它。但是大多数守护进程并不会自动重新加载配置文件。我们需要以某种方式“告 诉”这些守护进程配置文件已经被发生了改变并应该重新加载。可以通过使用服务命令重新启动服务来达到这个目的(在 Red Hat Linux 系统上)。

例如,如果我们更改了网络配置,就需要发出:
service network restart 。

注意:这些服务最常见的是 /etc/rc.d/init.d/* 目录中存在的脚本,在系统被引导时由 init 启动。所以,您也可以执行如下操作来重新启动服务:
/etc/rc.d/init.d/<script-for-the-service> start | stop | status
start、stop 和 status 是这些脚本接受的输入值,用来执行操作。

用户或系统程序在每次启动时都会读取其配置文件。尽管如此,请记住,有些系统程序在计算机打开时情况不一样,它们的 行为依赖于在 /etc/ 中的配置文件中读到的内容。所以,用户程序第一次启动时将从 /etc/ 目录中存在的文件读取缺省配置。然后,用户可以通过使用 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. 文件是这种情况)。

文件名 描述
~/.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 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( T he W indow M anager)的配置文件。

~/.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 用户的旧邮件。

Linux服务器配置

阅读数 118

没有更多推荐了,返回首页