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

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 on an m

       issue内各代码说明: 
  d  本地端时间的日期 
  l  显示第几个终端接口 
  m  显示硬件的等级 
     显示主机的网络名称 
  o  显示域名 
     操作系统的版本 
     显示本地端的时间 
  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
原文地址:https://www.cnblogs.com/Leo_wl/p/3260947.html