Linux运维学习笔记之五:Linux目录结构

第九章 Linux目录结构

一、Linux一级目录结构
1、/bin常用二进制可执行命令for allusers
2、/dev设备特殊文件

/dev/null 是系统的空设备(也就是黑洞)

3、/etc系统管理和配置文件

/etc/init.d 启动命令

/etc/rc.d 启动的配置文件和脚本

/etc/motd 客户连接时显示的内容

echo "ABC's Linux, ip is 192.168.58.85" > /etc/motd

cat /etc/motd

ssh登录

Last login: Fri Jan  612:44:45 2017 from 192.168.18.239

ABC's Linux, ip is 192.168.58.85

4、/home普通用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
5、/lib标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
6、/sbin系统管理命令,这里存放的是系统管理员使用的管理程序
7、/tmp公用的临时文件存储点
8、/root系统管理员的主目录
9、/mnt系统提供这个目录是让用户临时挂载其他的文件系统。
10、/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
11、/proc虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

cat /proc/meminfo     查看内存信息

cat /proc/cpuinfo     查看CPU信息

cat /proc/loadavg     查看系统负载

cat /proc/filesystems 查看文件系统信息

cat /proc/devices     查看运行内核所配置的所有设备清单

cat /proc/dma     查看正在使用的DMA通道

cat /proc/interrupts  查看正在使用的中断和曾经有多少个中断

cat /proc/ioports     查看正在使用的I/O端口  

12、/var某些大文件的溢出区,比方说各种服务的日志文件

/var/log/messages 系统日志文件

/var/log/secure 系统安全日志文件

13、/usr最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:

/usr/X11R6 存放Xwindow的目录

/usr/bin 众多的应用程序

/usr/sbin 超级用户的一些管理程序

/usr/doc linux文档

/usr/include linux下开发和编译应用程序所需要的头文件

/usr/lib 常用的动态链接库和软件包的配置文件

/usr/man 帮助文档

/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里

/usr/local/bin 本地增加的命令

/usr/local/lib 本地增加的库

二、Linux重要子目录
1、/etc/sysconfig/network-scripts/: 网卡目录

    cat/etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE=eth0#网卡设备名称

    ONBOOT=yes#启动时是否激活 yes | no

    BOOTPROTO=static#协议类型 dhcp bootp none

    IPADDR=192.168.1.90#网络IP地址

    NETMASK=255.255.255.0#网络子网地址

    GATEWAY=192.168.1.1#网关地址

    BROADCAST=192.168.1.255#广播地址

    HWADDR=00:0C:29:FE:1A:09#网卡MAC地址

    TYPE=Ethernet#网卡类型为以太网

   

    /etc/init.d/networkrestart : 重启所有网卡 (stop |reload)

    ifdowneth0 && ifup eth0    : 重启eth0网卡

    ifdowneth0                  :关闭eth0网卡

    ifupeth0                    : 打开eth0网卡

2、/etc/resolv.conf: 本地客户端DNS文件

    cat/etc/resolv.conf

    #Generated by NetworkManager

    domainopenstacklocal

    searchopenstacklocal

    nameserver192.168.90.161

    nameserver192.168.58.2

3、/etc/hosts: 设定用户IP与名字(或域名)的对应解析表,相当于本地局域网的DNS文件

   cat /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4localhost4.localdomain4

    ::1     localhost localhost.localdomain localhost6localhost6.localdomain6

    192.168.8.198   study.linux.rhel

    192.1468.8.198  localhost 

4、/etc/fstab: 记录启动时自动mount文件系统的文件
(1)查看/etc/fstab内容

cat /etc/fstab

    /dev/mapper/vg_study-lv_root/               ext4   defaults    1 1

    UUID=a05b6248-af32-49aa-bdf9-26b239b76e42/boot      ext4    defaults   1 2

    /dev/mapper/vg_study-lv_swapswap            swap   defaults    0 0

    tmpfs           /dev/shm             tmpfs  defaults    0 0

    devpts          /dev/pts             devpts gid=5,mode=620  0 0

    sysfs           /sys             sysfs  defaults    0 0

proc            /proc            proc    defaults   0 0

(2)/etc/fstab的格式

fs_spec fs_file fs_type fs_options fs_dump fs_pass

fs_spec :该字段定义希望加载的文件系统所在的设备或远程文件系统。

fs_file :该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。描述文件系统的载入点,对于交换分区(swap),这个字段定义为none,如果在载入点的路径中包含空格符,可以用“\040”来替代空格符。

fs_type :定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等.

fs_options :指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。

参数:

ro:以只读模式加载该文件系统

sync:不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但降低速度

user:允许普通用户加载该文件系统

quota:强制在该文件系统上进行磁盘定额限制

noauto:不再使用mount -a命令(例如系统启动时)加载该文件系统

fs_dump - 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,0表示不备份,1表示备份。若不需要转储就设置该字段为0.文件系统频率(fs_freq),被dump程序使用来确定哪个文件系统需要dump,如果最后一个字段没有设置,系统将认为其值为0,而dump程序则认为此文件系统无需dump。

fs_pass- 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0.被fsck程序所使用来确定进行在系统重启进行文件系统检查时的顺序,对于根系统/这个值应设为1,其它文件系统可以设为2,在同一个物理硬盘内的文件系统应该被顺序检测,而不同硬盘中的文件系统则应该同时检测以充分利用系统的并行性。如果最后一个字段值为0或没有设置,fsck程序装跳过此文件系统的检测。在linux编程中可以用getmntent过程来访问这个文件的内容。

 

5、/etc/rc.local: 存放开机自启动程序命令的文件

   rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方

    类似chkconfig,是在系统开机之后登录之前要运行的程序,chkconfig只能管理yum/rpm安装的程序的启动服务

   Linux开机流程:

    第一步:加载BIOS

        BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等

    第二步:读取MBR

        硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,存放预启动信息、分区表信息。

        系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。复制的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。

    第三步:Boot Loader

        Boot Loader 就是在操作系统内核运行之前运行的一段小程序。初始化硬件设备、建立内存空间的映射图,为最终调用操作系统内核做好一切准备。

        Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。

    第四步:加载内核

        根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。系统将解压后的内核放置在内存之中,

        并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。

    第五步:用户层init依据inittab文件来设定运行等级

        内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。

    第六步:init进程执行rc.sysinit

        Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,

        包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等

    第七步:启动内核模块

        依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。

    第八步:执行不同运行级别的脚本程序

        根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。

    第九步:执行/etc/rc.d/rc.local

    第十步:执行/bin/login程序,进入登录状态

   cat /etc/rc.local

    #!/bin/sh

    #

    #This script will be executed *after* all the other init scripts.

    #You can put your own initialization stuff in here if you don't

    #want to do the full Sys V style init stuff.

   

    touch/var/lock/subsys/local

    serviceiptables stop

 

/etc/inittab : 设定系统启动时init进程将把系统设置成相应的runlevel及加载相关启动文件设置   

   cat /etc/inittab

    #inittab is only used by upstart for the default runlevel.

    #

    #ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

    #

    #System initialization is started by /etc/init/rcS.conf

    #

    #Individual runlevels are started by /etc/init/rc.conf

    #

    #Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

    #

    #Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

    #with configuration in /etc/sysconfig/init.

    #

    #For information on how to write upstart event handlers, or how

    #upstart works, see init(5), init(8), and initctl(8).

    #

    #Default runlevel. The runlevels used are:

    #   0 - halt (Do NOT set initdefault to this)

    #   1 - Single user mode

    #   2 - Multiuser, without NFS (The same as 3,if you do not have networking)

    #   3 - Full multiuser mode

    #   4 - unused

    #   5 - X11

    #   6 - reboot (Do NOT set initdefault to this)

    #

    id:3:initdefault:

6、/etc/exports: 设定NFS网络文件系统的配置文件

   cat /etc/exports   

7、/etc/init.d: 存放系统以System v模式启动的脚本

   ll /etc/init.d

   cd /etc/init.d

8、/etc/profile: 系统全局环境变量配置文件

   cat /etc/profile   

9、/etc/profile.d: 加载系统登录程序的目录,可以存放命令和文件
10、/etc/issue: 记录用户登录前显示的信息
11、/etc/motd客户连接时显示的内容

    echo"ABC's Linux, ip is 192.168.58.85" > /etc/motd

    cat/etc/motd

    ssh登录

    Lastlogin: Fri Jan  6 12:44:45 2017 from 192.168.18.239

    ABC'sLinux, ip is 192.168.58.85

12、/etc/redhat-release: 显示系统版本(lsb_release-a)

    cat/etc/redhat-release

     CentOS release 6.5 (Final)

13、/etc/group: 用户的组名信息文件

    cat/etc/group

14、/etc/gshadow: 组密码文件

    cat/etc/gshadow

15、/etc/passwd: 用户名信息文件

    cat/etc/passwd

16、/etc/shadow: 用户密码文件

cat /etc/shadow

useradd username这个命令会在/etc下的group、gshadow、passwd、shadow4个文件中加入相关内容 

17、/etc/sudoers: sudo的配置文件

一般用visudo来设置/etc/sudoers,因为visudo检查语法,vi /etc/sudoers不检查语法

18、/etc/securetty: 设定哪些终端可以让root登录
19、/etc/login.defs: 所有用户登录时的缺省配置
20、/etc/modprobe.conf: 内核模块额外参数配置
21、/etc/rsyslog.conf: 日志设置文件(CentOS5.X版本为syslog.conf)
22、/usr/local: 用户自编译安装软件的存放目录,一般是通过源码安装。相当于c:\program files
23、/usr/src: 内核源码的存放目录
24、/var/log: 各种系统日志存放目录
25、/var/log/messages: 系统日志,按周循环
26、/var/log/secure: 存放系统登录信息(系统安全的日志文件)
27、/var/log/wtmp: 记录系统登陆者的信息文件。

    last: 查看wtmp的内容(still logged in表示正在登录)

    root     pts/0   192.168.158.1    Sat Jan  7 12:06  still logged in  

    root     pts/0   192.168.158.1    Sat Jan  7 11:10 - 12:06  (00:56)   

    reboot   system boot 2.6.32-431.el6.i Sat Jan  7 11:09- 12:07  (00:57) 

   

    lastlog: 查看用户是否登录过

    Username     Port    From         Latest

    root         pts/0   192.168.158.1    Sat Jan  7 12:06:40 +0800 2017

    bin                    **Never logged in**

    daemon                     **Never logged in**

    ftp                    **Never logged in**

28、/var/spool/cron/[Username] : 定时任务crontab默认路径。按用户名命名文件

   /var/spool/cron/root

   /var/spool/cron/oracle

   crontab -l 

29、/var/spool/clientmqueue: sendmail临时邮件文件目录,有时候该目录下有许多小文件,将磁盘空间或文件inode的占满

    定时清理:

        echo"/var/spool/clientmqueue/sendmail/ -type f | xargs rm -f" > 30、/server/scripts/del_sys_file.sh

        echo "00 00 * * * /bin/sh/server/scripts/del_sys_file.sh > /del/null 2>&1" >>/var/spool/cron/root   

30、/proc/version: 系统版本

   cat /proc/version 

31、/proc/sys/kernel: 系统内核所在的目录

   cd  /proc/sys/kernel

   ll  /proc/sys/kernel

   

    修改文件/etc/sysctl.conf中的内容后,sysctl -p生效,实际上就是修改/proc目录下的相关文件

    也可以直接修改/proc下的文件内容达到系统调优的目的,只是重启后失效。

    可以将命令放在/etc/rc.local中达到长期有效的目的。

    vi/etc/sysctl

        net.ipv4.tcp_tw_reuse = 1

    sysctl-p

    等同于

    echo1 > /proc/sys/net/ipv4/tcp_tw_reuse

    virc.local

        echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值