• 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服务的主机 (默认情况下是不存在的)

     

  • 相关阅读:
    近期学习情况
    java连接数据库的两种方法总结
    近两个星期学习成果
    云笔记第一阶段总结
    圆面积
    C++计算器项目的初始部分
    C++视频课程
    A+B Format
    大一下学期的自我目标
    Kohana的请求流
  • 原文地址:https://www.cnblogs.com/super-lucky/p/directory_tree.html
Copyright © 2020-2023  润新知