linux学习心得之目录树开端与/etc(图文)

linux中“一切皆文件”,学习linux一年了,在学习过程中对目录树的一点心得,分享给大家,有不对的地方敬请斧正。

不多说了,先上图:

根目录: /

哪些目录不可与根目录分开:

/etc:配置文件

/dev:所需要的设备文件

/lib:执行文件所需的函数库与内核所需模块

/bin:重要执行文件

/sbin:重要的系统执行文件

*********************************************************************

一:/etc

etc目录存放系统的大部分配置文件和子目录。该目录下的文件由系统管理员来使用,普通用户对大部分文件有只读权限。FHS建议不要放置可执行文件(binary)在这个目录中。

1.1 /etc/inittab  :init 的配置文件.

id:3:initdefault:      // 默认级别3

 # System initialization.

si::sysinit:/etc/rc.d/rc.sysinit    //该值告诉init程序运行/etc/rc.d/rc.sysinit脚本文件来初始化系统,该脚本文件与所有启动的脚本类似,它只是一个包含Linux的 shell命令的可执行文件。

 l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

Init进程是系统启动之后的第一个用户进程,所以它的pid(进程编号)始终为1。init进程上来首先做的事是去读取/etc/目录下inittab文件中initdefault id值,这个值称为运行级别(run-level)。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到6 ,具有不同的功能。不同的运行级定义如下:

  # 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)
  # 1 - 单用户模式
  # 2 - 多用户,没有 NFS
  # 3 - 完全多用户模式(标准的运行级)
  # 4 – 系统保留的
  # 5 - X11 (x window)
  # 6 - 重新启动 (千万不要把initdefault 设置为6,否则将一直在重启 )

1.2 /etc/init.d:Linux 启动时,运行一个叫做init 的程序。下面存放着很多的服务程序(当然都是可执行的)。
/etc/init.d/xinetd start就是启动xinetd的意思,可以有start、stop、status、restart、condrestart和reload这六个参数,它的部分shell script如下图所示,执行vim  /etc/init.d/xinetd可查看完整script 。shell script在之后的博文会写到。

init.d目录下脚本的执行方式为:

/etc/init.d/command OPTION

还可以用service,例如,停止SSH服务: service sshd stop

Chkconfig:管理系统服务默认开机与否。是个很实用的命令。

1.3 /etc/rc   /etc/rc.d    /etc/rc*.d  :启动、或改变运行级时运行的scripts或scripts的目录.

1.4/etc/services

/etc/services文件是记录网络服务名和它们对应使用的端口号及协议。文件中的每一行对应一种服务,它由4个字段组成,中间用TAB或空格分隔,分别表示“服务名称”、“使用端口”、“协议名称”以及“别名”。例如:远程连接机制使用的是ssh这个服务,使用的端口号是22.如下图所示(最前面是序号):

很多的系统程序要使用这个文件。一般情况下,不要修改该文件的内容,因为这些设置都是Internet标准的设置。一旦修改,可能会造成系统冲突,使用户无法正常访问资源。Linux系统的端口号的范围为0–65535,不同范围有不同的意义。

  • 0 不使用
  • 1--1023 系统保留,只能由root用户使用
  • 1024---4999 由客户端程序自由分配
  • 5000---65535 由服务器端程序自由分配

如果你想知道某个端口号对应的服务是什么,可以使用正则表达式搜寻:例如8080端口对应www服务。

可以通过"netstat -anp" 来查看哪些端口被打开。用netstat –anp|grep 23来查询23端口的信息。

1.4/etc/xinetd.d与/etc/xinetd.conf:

xinetd的配置文件是/etc/xinetd.conf,但是它只包括几个默认值及/etc/xinetd.d目录中的配置文件。如果要启用或禁用某项xinetd服务,编辑位于/etc/xinetd.d目录中的配置文件。大部分的网络服务都是由它们启动的

在行首的#代表已注释。

/etc/xinetd.conf可以成为默认值的配置文件,最上面就有defaults的字样

 Defaults // 默认

{

# The next two items are intended to be a quick access place to

# temporarily enable or disable services.

#

#       enabled         =

#       disabled        =

 # Define general logging characteristics.//服务启动成功或失败,以及相关登录行为的日志文件

        log_type        = SYSLOG daemon info  // 日志文件的记录服务类型

        log_on_failure  = HOST   //发生错误时需要记录的信息为主机(HOST)

        log_on_success  = PID HOST DURATION EXIT //成功启动或登录时的记录信息

# Define access restriction defaults //允许或限制连接的默认值

#

#       no_access       =

#       only_from       =

#       max_load        = 0

        cps             = 50 10  //同一秒内的最大连接数为50个,若超过则暂停10秒

        instances       = 50  //同一服务最大同时连接进程数为50个

        per_source      = 10 // 同一来源的客户端的最大连接数

 # Address and networking defaults  //网络

#

#       bind            =

#       mdns            = yes

        v6only          = no   //是否允许Ipv6?暂时不启动

# setup environmental attributes //环境参数

#

#       passenv         =

        groups          = yes

        umask           = 002

# Generally, banners are not used. This sets up their global defaults

#

#       banner          =

#       banner_fail     =

#       banner_success  =

}

includedir /etc/xinetd.d           //表示告诉xinetd更多的设置文件或目录在/etc/xinetd.d

以/etc/xinetd.d下的telnet为例:

service telnet

{
flags = REUSE
socket_type = stream // 表示服务的数据包类型为stream,这是使用了TCP连接之故
wait = no // 表示不需等待,能同时进行大量的连接功能,即服务将以多线程的方式运行
user = root //执行此服务进程的用户是root
server = /usr/sbin/in.telnetd //启动脚本的位置
log_on_failure += USERID // 表示设置失败时,额外将用户ID-UID添加到系统登记表
disable = yes //表示禁用这个服务
}

1.5 /etc/sysconfig:与网络有关的配置文件保存在这

1.6 /etc/X11: 与X Window 有关的各种配置文件都在这,其配置文件为xorg.conf。

1.7 /etc/passwd:用户数据,其中的给出了账号名称、密码、UID、GID、用户信息说明列、主文件夹、shell等7个字段,字段之间用“:”隔开。格式如下:

1.8 /etc/shadow:密码存放的文件,与/etc/passwd分隔开,只有系统管理员才有权利进行查看和修改的文件。

其中有登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志等9个字段。格式如下:

1.9 /etc/group 文件中每个用户组为一条记录。

每条记录分四个字段,格式如下: group_name:passwd:GID:user_list    它们分别为用户组名称、用户组密码、GID和用户列表。

推荐详解可看http://blog.sina.com.cn/s/blog_6561ca8c0101ac69.html

1.10/etc/fdprm

  软盘参数表.说明不同的软盘格式.用setfdprm 设置.

1.11/etc/fstab:自动挂载记录文件  
  启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表.Linux下,也包括用swapon -a启用的swap区的信息。

记录开机要 mount 上来的 filesystem, 这个档案相当重要!我们可以在 /etc/rc.d/rc.S 中找到 /sbin/mount -avt nonfs 这一列, 当执行到这一列时, mount 就依据 /etc/fstab 中的记载, 自动的将档案系统 mount 上来. 下面就是示图. 假如你一开机就想自动 mount 一些 filesystems, 而不要等到开机后再以手动 mount 的话那把 这些 filesystems 及相关资讯写在这个档, 是不错的选择.

1.12 /etc/issue  
  getty在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定.

例如:Kernel \r on an \m

issue内各代码说明: 
  \d  本地端时间的日期 
  \l  显示第几个终端接口 
  \m  显示硬件的等级 
  \n  显示主机的网络名称 
  \o  显示域名 
  \r  操作系统的版本 
  \t  显示本地端的时间 
  \s  操作系统的名称 
  \v  操作系统的版本

1.13 /etc/motd  
  Message Of TheDay,成功登录后自动输出.内容由系统管理员确定.经常用于通告信息,如计划关机时间的警告.

1.14 /etc/magic  
  file 的配置文件.包含不同文件格式的说明,file 基于它猜测文件类型.

file 这个指令的命令格式为: 
 
             file [ -c ] [ -z ] [ -L ] [ -f namefile ] [ -m magicfile ] file

file 这个指令可以告诉你某一个档案的格式, 如它是一个text 档, 或是一个 shell s cript 或 DOS 可执行档等.

1.15 /etc/mtab  :记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等

  当前安装的文件系统列表.由scripts初始化,并由mount 命令自动更新.需要一个当前安装的文件系统的列表时使用,例如df命令.

1.16 /etc/login.defs  :login 命令的配置文件.

login.defs是设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs

 MAIL_DIR        /var/spool/mail   //创建用户时,要在目录/var/spool/mail中创建一个用户mail文件
PASS_MAX_DAYS 99999 //用户的密码不过期最多的天数;
PASS_MIN_DAYS 0 //密码修改之间最小的天数;
PASS_MIN_LEN 5 //密码最小长度;
PASS_WARN_AGE 7 UID_MIN 500 //最小UID为500,也就是说添加用户时,UID是从500开始的;
UID_MAX 60000 //最大UID为60000; GID_MIN 500 //GID是从500开始;
GID_MAX 60000 CREATE_HOME yes
UMASK 077
# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes
# Use MD5 or DES to encrypt password? Red Hat use MD5 by default.
MD5_CRYPT_ENAB yes

1.17 /etc/printcap

  类似/etc/termcap ,但针对打印机.语法不同.

1.18 /etc/profile , /etc/csh.login ,/etc/csh.cshrc  
  登录或启动时Bourne或Cshells执行的文件.这允许系统管理员为所有用户建立全局缺省环境.

1.19 /etc/securetty  :确认安全终端,即哪个终端允许root登录.一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权.

       “/etc/securetty”文件允许你规定“root”用户可以从那个TTY设备登录。登录程序(通常是“/bin/login”)需要读取“/etc/securetty”文件。它的格式是:列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许root登录的。

  注释掉(在这一行的开头加上#号)所有你想不让root登录的tty设备。

  编辑securetty文件(vi /etc/securetty)象下面一样,注释掉一些行:

  tty1

  #tty2

  #tty3

  #tty4

  #tty5

  #tty6

  #tty7

  #tty8

    把这个文件改名、或注释掉里面的文件,不会影响SSH应用,因为SSH远程登录使用的是PTS,不是tty,这个文件的修改可以阻止telnet 通过root登录。

1.20 /etc/shells  :列出了系统可用的shell 命令行编辑器.
  列出可信任的shell.chsh 命令允许用户在本文件指定范围内改变登录shell.提供一台机器FTP服务的服务进程ftpd检查用户shell是否列在 /etc/shells 文件中,如果不是将不允许该用户登录.

1.21 /etc/termcap

  终端性能数据库.说明不同的终端用什么"转义序列"控制.写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap中查找要做的工作的正确序列.这样,多数的程序可以在多数终端上运行

1.22 /etc/ grup---确定系统中定义组名和组

1.23 /etc/alternatives---包含了替换工具所有的链接,从而允许系统管理员以用户不可见的方式把一个服务替换成另一个(目前只有邮件和打印机使用替换服务)
1.24  /etc/redhat-release
1.25 /etc/cron*---该系列的目录包含的文件定义了crond工具如何在每天(cron,daily),小时(cron.hourly),每月(cron.mouthly),每周(corn.weekly)按计划运行的程序

/etc/crontab---设置cron环境变量和运行自动任务的时间

SHELL=/bin/bash    //可以看到1.20/etc/shells中列出的/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给root
HOME=/
# run-parts
//第一个字段表示分钟,第二个字段表示小时,第三个字段表示天,第四个字段表示月,第五个字段是星期
01 * * * * root run-parts /etc/cron.hourly //每个小时去执行一遍/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天去执行一遍/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期去执行一遍/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每个月去执行一遍/etc/cron.monthly内的脚本

1.26 /etc/protocols---为一系列internet服务是指协议号和名称

1.27 /etc/default---包含的文件为多个不同工具设置了缺省值 例如:为useradd命令定义了在新建用户帐户时所需要的缺省组id,主目录,密码过期日期,shell和框架目录(/etc/skel)
1.28 /etc/rpc---定义了远程调用的名称和端口号

1.29 /etc/ppp---包含用于设备点对点协议(使计算机能够拨号访问internet)的多个配置文件。

1.30 /etc/adjtime---包括了调整硬件时钟的数据

1.31 /etc/aliases---包含了linux邮件服务所有的分发列表
1.32  /etc/ bashre---为shell用户设置系统范围的缺省设置。(缺省情况下,它的设置shell提示符包含当前用户名,主机名,当前目录和其他值)
1.33 /etc/yum*:

[main]
cachedir=/var/cache/yum //yum缓存的目录
keepcache=0 //
debuglevel=2 //除错级别,0──10,默认是2
logfile=/var/log/yum.log //yum的日志文件
distroverpkg=redhat-release //指定一个软件包,yum会根据这个包判断你的发行版本
tolerant=1 //也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误
exactarch=1 //有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级。
obsoletes=1
gpgcheck=1 //有1和0两个选择,分别代表是否是否进行gpg校验
plugins=1
exclude=*.i?86 kernel kernel-xen kernel-debug //排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开
# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h
# Default.
# installonly_limit = 3 # PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

1.34 /etc/DIR_COLORS : 设定在用 ls 时 , 各种不同档案型态所用的颜色 , 但是不能用pipe 再导向输出, 否则就没有各种颜色了

1.35  /etc/ host*:

host.conf---设置TCP/IP网络上搜索域名查看文件的位置
hosts---包含了从你的这计算机上可以到达的ip地址和主机名
hosts.allow---列出允许使用本地计算机上某些TCP/IP服务的主机
hosts,deny---列出不允许使用本地计算机某些TCP/IP服务的主机 (默认情况下是不存在的)

 

 
 
 
标签: /etc目录树linux

linux学习心得之目录树开端与/etc(图文)的更多相关文章

  1. Linux学习心得之 Linux下ant安装与使用

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...

  2. linux学习心得之vim/Cvim篇

    linux学习心得之vim/Cvim篇 在linux 下,vim 时一种最常见的编辑器,很多linux的发行版就自带了.我的是CentOS 6.3. 基本上Vim共分为3种模式,分别是一般模式,编辑模 ...

  3. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  4. Linux学习心得之 双显卡、中文输入法及svn初步使用

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 双显卡.中文输入法及svn初步使用 1.前言 2.Linux双显卡解决 ...

  5. Linux磁盘分区,目录树,文件系统的关系(转)

    研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式.对于基本概念和理论理解不到位,在工作之中会走很多弯路和犯很多错误.今天花一天的时间,终于对三者的区别和联系有了更 ...

  6. linux学习日记之目录配制

    linux目录管理遵循FHS标准,主要目标是希望让使用者可以了解已安装软件通常放置于哪个目录上,所以他们希望独立的软件开发商.操作系统制作者.以及想要维护系统的用户,都遵循FHS的标准.也就是说FHS ...

  7. Linux学习心得之 LVM管理与Linux系统安装

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 LVM管理与Linux系统安装 1.前言 2.LVM 简介与术语 3.LVM 使用 4.Li ...

  8. Linux学习教程 | 全文目录

    本教程最大的特点是通俗易懂,并且非常详细,花费 7 天时间即可快速了解 Linux. 第一章 Linux简介 1.1 操作系统是什么,操作系统概述 1.2 Linux是什么,有哪些特点? 1.3 Li ...

  9. Linux学习-文件和目录管理 

    Linux文件和目录管理  文件系统架构  1.Linux文件系统具有层级性     1)文件或者目录起始于根目录"/"成为树状结构    2)最顶层由/开始   2 ...

随机推荐

  1. REDGATE SQL TEST的使用

    原文:REDGATE SQL TEST的使用 REDGATE SQL TEST的使用 SQL TEST下载和破解可以参考这篇文章:http://www.cnblogs.com/VAllen/archi ...

  2. XML的序列化与反序列化

    开发时会把数据持久化成xml格式,当然可以用xmlwriter来实现,不过感觉不方便,而且很繁琐.推荐使用直接序列化.反序列化对象的方法来处理. 直接上代码: public static class ...

  3. Hack 语言学习/参考---1.1 What is Hack?

    What is Hack?¶ Hack is a language for HHVM that interopates seamlessly with PHP. The barrier to entr ...

  4. struts2 通配符简化配置

    在struts映射中反复出现的模式 动作方法 描写叙述 下一个动作方法 add 为save准备网页 save save 提交INSERT list edit 为update准备网页 update up ...

  5. 高性能双端js模板---simplite

    simplite是一款js实现的模板引擎,它能够完成浏览器端js模版和node服务器端js模板的数据渲染,渲染性能达到引擎的极限. 渲染性能十分突出. 支持浏览器端和node服务器端模板渲染. 它简单 ...

  6. three.js 源代码凝视(七)Math/Euler.js

    商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发 ...

  7. HBuilder js 自定义代码块

    =begin 本文档是HBuilder预置的js代码块的文件.注意不要把其他语言的设置放到js里来. 如果用户修改此文档,HBuilder升级后会覆盖用户的修改,建议进入菜单 工具→扩展代码块 扩展相 ...

  8. webBrowser 参数设置

    //禁用脚本错误等类似的窗口信息 this.webBrowser1.ScriptErrorsSuppressed = true; //禁用右键菜单 this.webBrowser1.IsWebBrow ...

  9. 整理 W3CSchool 常用的CSS属性列表

    近期教学给学员总结常用的CSS属性,方便学习查询,正好发上来也给大家分享一下,O(∩_∩)O. 摘选自:http://www.w3cschool.com.cn/ 表格最右列的数字标识支持的CSS最低版 ...

  10. [置顶] 博客停止更新 && 我的大学数年

    博客停止更新 前言: 这些天,一直还没有时间发表这篇博文,近期,做了一个决定:博客更新停止. 我有话说: 这些天来,还真是感谢大家的关注了.从2011年的07至今,2013年的07月,两个年头,写下了 ...