zoukankan      html  css  js  c++  java
  • Centos 05 系统目录讲解

    本节内容

      1、linux目录结构

      2、主目录功能简介

      3、重要子目录 

    linux目录结构

    在linux里面,逻辑上所有目录只有一个顶点,根是所有目录的起点

    根下面是类似一个倒挂的树一样的层次结构

    可以通过tree命令查看

    [root@centos7 ~]# tree / -L 1
    /
    ├── bin -> usr/bin
    ├── boot
    ├── dandy
    ├── dev
    ├── etc
    ├── home
    ├── lib -> usr/lib
    ├── lib64 -> usr/lib64
    ├── media
    ├── mnt
    ├── opt
    ├── proc
    ├── root
    ├── run
    ├── sbin -> usr/sbin
    ├── srv
    ├── sys
    ├── tmp
    ├── usr
    └── var
    
    20 directories, 0 files

    关于分区

    linux分区不可以直接写入数据,需要有分区入口(挂载点)(/var/)才能往里面写数据,不同目录可以对应不同的分区。甚至/var下面的目录还可以挂载其他分区。

    挂载

    mount /dev/sdb1 /usr 挂载     

    系统的挂载文件

    [root@centos7 ~]# cat /etc/fstab 
    
    #
    # /etc/fstab
    # Created by anaconda on Wed Aug 22 21:00:24 2018
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/centos-root /                       xfs     defaults        0 0
    UUID=174e96cf-3f83-4624-89e7-ca8a0d202e40 /boot                   xfs     defaults        0 0
    /dev/mapper/centos-swap swap                    swap    defaults        0 0

    linux的目录是有规律的,按照类别组织的,比如

    应用程序             /usr/bin
    数据文件跟帮助       /usr/share
    配置文件             /etc
    启动命令             /etc/init.d

    小结

        1、linux的所有目录结构是一个层次的倒挂着的树形目录结构
        2、根/是所有目录的顶点
        3、目录结构和分区设备是没有关系的,也就是不同的目录可以跨越不同的磁盘设备或分区
        4、所有的目录都是按照一定的类别有规律的组织和命名的

    主目录功能简介

    /bin

    常用二进制命令所在目录cp mkdir cat 

    /boot 

    linux内核及引导系统程序所需的文件目录

    /dev

    设备文件目录
    比如声卡,磁盘,光驱  /dev/null(黑洞)
    /dev/null的用法 cat /dev/null > /dandy/dandy.txt     读取黑洞,清空文件 也可以省略前面的直接>/dandy/dandy.txt

    /etc

    1、二进制安装包(yum,rpm)的配置文件默认路径  
    2、服务启动命令存放的目录/etc/init.d/
    /etc/init.d/(sshd/network/iptables...) restart 

    这里单独说一下/etc/motd文件,作用是用来在登陆的时候的显示信息
    [root@centos7 ~]# cat /etc/motd  #这个文件可能不存在,需要自己创建
    centos7 for dandy test

    修改显示信息

    echo 'centos7 for dandy test'>/etc/motd 

    /home

    普通用户家目录

    /lib

    库文件存放目录;linux正常工作需要很多库文件,在内核和应用程序之间做一个承上启下的作用

    /lost+found

    在ext3文件系统中,当系统意外崩溃或机器意外关机,会产生文件碎片在这里。系统开机启动的过程fsck工具会检查这里,修复损坏文件系统。
    系统发生问题,可能会有问题被一道这个目录,可能需要手工方式修复,或移动到文件原来位置。

    /mnt

    一般是用于临时挂载存储设备的挂载目录,比如有cdrom,u盘。挂载点 --> 文件系统的(设备)入口
    fdisk -l 查看磁盘
    df -h 查看磁盘及使用情况
    mkfs.ext4 /dev/sdb 格式化新盘
    mount /dev/sdb /mnt 挂载 
    umount /mnt 取消挂载
    mount -t ext4 /dev/sdb /mnt 带类型的挂载

    给个示例,这个示例需要先关闭虚拟机并给当前虚拟机添加一块新的磁盘。

    [root@centos7 ~]# fdisk -l
    
    磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000b142c
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     2099199     1048576   83  Linux
    /dev/sda2         2099200    41943039    19921920   8e  Linux LVM
    
    磁盘 /dev/sdb106 MB, 106954752 字节,208896 个扇区  # 这里已经添加进新的磁盘
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    
    
    磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    [root@centos7 ~]# mkfs.ext4 /dev/sdb  # 格式化磁盘
    mke2fs 1.42.9 (28-Dec-2013)
    /dev/sdb is entire device, not just one partition!
    无论如何也要继续? (y,n) y
    文件系统标签=
    OS type: Linux
    块大小=1024 (log=0)
    分块大小=1024 (log=0)
    Stride=0 blocks, Stripe width=0 blocks
    26208 inodes, 104448 blocks
    5222 blocks (5.00%) reserved for the super user
    第一个数据块=1
    Maximum filesystem blocks=33685504
    13 block groups
    8192 blocks per group, 8192 fragments per group
    2016 inodes per group
    Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729
    
    Allocating group tables: 完成                            
    正在写入inode表: 完成                            
    Creating journal (4096 blocks): 完成
    Writing superblocks and filesystem accounting information: 完成 
    [root@centos7 ~]# mount /dev/sdb /mnt  # 挂载磁盘
    [root@centos7 ~]# df -h  # 查看磁盘信息
    文件系统                 容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root   17G  1.3G   16G    8% /
    devtmpfs                 476M     0  476M    0% /dev
    tmpfs                    488M     0  488M    0% /dev/shm
    tmpfs                    488M  7.7M  480M    2% /run
    tmpfs                    488M     0  488M    0% /sys/fs/cgroup
    /dev/sda1               1014M  159M  856M   16% /boot
    tmpfs                     98M     0   98M    0% /run/user/0
    /dev/sdb                  95M  1.6M   87M    2% /mnt
    [root@centos7 ~]# touch /mnt/test.txt
    [root@centos7 ~]# ls /mnt/
    lost+found  test.txt

    /opt

    表示可选的意思,自定义软件包会被安装在这个目录

    /proc

    内核和进程信息的虚拟文件系统;
    /proc目录伪装的文件系统,并不是真正的文件系统
    cat /proc/meminfo    查看内存信息
    cat /proc/cpuinfo     查看cpu信息
    cat /proc/loadavg     查看负载信息

    /sbin

    大多是设计系统管理的命令的存放,是超级权限用户root的可执行命令存放处跟/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目录相似    

    /tmp

    临时文件存放

    /usr

    系统存放程序的目录,比如命令,帮助文件,安装Linux发行版官方提供的软件包,大多安装在这里
    是文件系统的第二个主要部分;
    存放可执行文件的目录;自己写的命令可以放在 /usr/local/sbin下面 
    [root@centos7 ~]# echo 'echo "test usr local sbin"'>/usr/local/sbin/test111  # 写入命令文件
    [root@centos7 ~]# chmod +x /usr/local/sbin/test111  # 命令文件开通权限
    [root@centos7 ~]# test111  # 测试命令
    test usr local sbin

    /var

    目录内容经常变动;/var/log存放系统日志的目录;
    系统日志路径 /var/log/messages
    系统安全信息的日志 /var/log/secure  
     1 [root@centos7 ~]# tail /var/log/messages
     2 Sep 25 14:08:05 centos7 kernel: EXT4-fs (sdb): mounted filesystem with ordered data mode. Opts: (null)
     3 Sep 25 14:08:08 centos7 kernel: sdb: WRITE SAME failed. Manually zeroing.
     4 Sep 25 14:10:01 centos7 systemd: Started Session 3 of user root.
     5 Sep 25 14:10:01 centos7 systemd: Starting Session 3 of user root.
     6 Sep 25 14:20:01 centos7 systemd: Starting Cleanup of Temporary Directories...
     7 Sep 25 14:20:01 centos7 systemd: Started Session 4 of user root.
     8 Sep 25 14:20:01 centos7 systemd: Starting Session 4 of user root.
     9 Sep 25 14:20:01 centos7 systemd: Started Cleanup of Temporary Directories.
    10 Sep 25 14:30:01 centos7 systemd: Started Session 5 of user root.
    11 Sep 25 14:30:01 centos7 systemd: Starting Session 5 of user root.
    12 
    13 [root@centos7 ~]# tail /var/log/secure
    14 Sep 25 14:04:31 centos7 polkitd[652]: Loading rules from directory /etc/polkit-1/rules.d
    15 Sep 25 14:04:31 centos7 polkitd[652]: Loading rules from directory /usr/share/polkit-1/rules.d
    16 Sep 25 14:04:31 centos7 polkitd[652]: Finished loading, compiling and executing 2 rules
    17 Sep 25 14:04:31 centos7 polkitd[652]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
    18 Sep 25 14:04:35 centos7 sshd[1040]: Server listening on 0.0.0.0 port 22.
    19 Sep 25 14:04:35 centos7 sshd[1040]: Server listening on :: port 22.
    20 Sep 25 14:04:41 centos7 login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
    21 Sep 25 14:04:41 centos7 login: ROOT LOGIN ON tty1
    22 Sep 25 14:05:03 centos7 sshd[1244]: Accepted password for root from 10.0.2.14 port 51490 ssh2
    23 Sep 25 14:05:03 centos7 sshd[1244]: pam_unix(sshd:session): session opened for user root by (uid=0)
    View Code

    关于开机,关机的一些小命令

    halt 关机
    init 0 关机
    reboot 重启
    init 6 重启
    shutdown -r now(重启) -h now(关机)

    重要的子目录

    1、/etc目录下

    /etc/sysconfig/network-scripts/ifcfg-ens33 网卡配置文件
        重启所有网卡/etc/init.d/network restart
        关闭网卡ifdown ens33 && 打开网卡ifup ens33
    /etc/resolv.conf linux本地客户端的DNS配置文件
    /etc/sysconfig/network 修改机器名及网卡启动,网关等配置
    /etc/hosts 设定用户ip与名字的对应解析表,相当于本地的DNS或局域网的DNS
    /etc/fstab 记录开机自动挂载的文件
    /etc/rc.local 存放开机自启动程序命令的文件 (chkconfig只能管理yum跟rpm包)
    /etc/inittab 设定系统启动时,init进程将系统设置成什么样的runlevel及加载相关的启动文件设置
    /etc/exports 设定NFS网络文件系统用的配置文件
    /etc/profile 系统全局环境变量配置路径 可以放置alias跟PATH
    /etc/profile.d 加在系统登录程序的一个目录,命令或文件,独立存在  
    /etc/issue 记录用户登录前显示的信息,本地终端登录时显示
    /etc/motd 每次用户登录时,/etc/motd文件的内容会显示在用户的终端,比如系统更新版本,何时更新等
    /etc/redhat-release 查看系统版本
    uname -r 内核版本
    /etc/group 设定用户的组名与相关信息  chattr+i锁文件
    /etc/passwd 账号信息文件
    /etc/shadow 密码信息文件
        useradd msn 会修改/etc/passwd /etc/shadow /etc/group /etc/gshadow
    /etc/sudoers 可以执行使用sudo命令的配置文件
    /etc/securetty 设定哪些终端可以让root登陆
    /etc/login.defs 所有用户登陆时的缺省配置
    /etc/rsyslog.conf 版本日志设置文件;centos5的syslog.conf

    2、/usr目录下

    /usr/local 一般用来存放用户自编译安装软件的存放目录,一般是通过源码包安装的软件,相当于c:Program files
    /usr/src 内核源码存放目录

    3、/var目录下

    /var 日志文件
    /var/log 各种系统日志存放地
    /var/log/messages 系统信息默认日志文件,按周轮询
    /var/log/secure 记录登入系统存取信息的文件
    /var/log/wtmp 记录登陆者信息的文件,是二进制文件,需要借助last -f /var/log/wtmp来查看
    查看系统登陆信息 last
    查看所有系统用户的最后一次登陆 lastlog
    /var/spool
    /var/spool/cron/root 定时任务crontab默认路径,按用户名命名的文件
    /var/spool/clientmqueue sendmail临时邮件文件目录。偶尔会因为这个目录文件太多,/var分区的inode数量被消耗尽,无法写入文件的情况。
                            centos6默认不安装sendmail,所以不会有这个问题
                            df -i 查看剩余inode
                            df -h 查看磁盘空间
     1 [root@centos7 ~]# ls /var/log/messages*
     2 /var/log/messages  /var/log/messages-20180826  /var/log/messages-20180903  /var/log/messages-20180923
     3 [root@centos7 ~]# tail /var/log/messages-20180923 
     4 Sep 23 09:01:01 centos7 systemd: Started Session 9 of user root.
     5 Sep 23 09:01:01 centos7 systemd: Starting Session 9 of user root.
     6 Sep 23 09:10:01 centos7 systemd: Started Session 10 of user root.
     7 Sep 23 09:10:01 centos7 systemd: Starting Session 10 of user root.
     8 Sep 23 09:20:01 centos7 systemd: Started Session 11 of user root.
     9 Sep 23 09:20:01 centos7 systemd: Starting Session 11 of user root.
    10 Sep 23 09:30:01 centos7 systemd: Started Session 12 of user root.
    11 Sep 23 09:30:01 centos7 systemd: Starting Session 12 of user root.
    12 Sep 23 09:40:01 centos7 systemd: Started Session 13 of user root.
    13 Sep 23 09:40:01 centos7 systemd: Starting Session 13 of user root.
    14 [root@centos7 ~]# tail /var/log/secure
    15 Sep 25 14:04:31 centos7 polkitd[652]: Loading rules from directory /etc/polkit-1/rules.d
    16 Sep 25 14:04:31 centos7 polkitd[652]: Loading rules from directory /usr/share/polkit-1/rules.d
    17 Sep 25 14:04:31 centos7 polkitd[652]: Finished loading, compiling and executing 2 rules
    18 Sep 25 14:04:31 centos7 polkitd[652]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
    19 Sep 25 14:04:35 centos7 sshd[1040]: Server listening on 0.0.0.0 port 22.
    20 Sep 25 14:04:35 centos7 sshd[1040]: Server listening on :: port 22.
    21 Sep 25 14:04:41 centos7 login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
    22 Sep 25 14:04:41 centos7 login: ROOT LOGIN ON tty1
    23 Sep 25 14:05:03 centos7 sshd[1244]: Accepted password for root from 10.0.2.14 port 51490 ssh2
    24 Sep 25 14:05:03 centos7 sshd[1244]: pam_unix(sshd:session): session opened for user root by (uid=0)
    25 
    26 [root@centos7 ~]# last -f /var/log/wtmp
    27 root     pts/0        shuais-mbp       Tue Sep 25 14:05   still logged in   
    28 root     tty1                          Tue Sep 25 14:04   still logged in   
    29 reboot   system boot  3.10.0-862.11.6. Tue Sep 25 14:04 - 15:02  (00:57)    
    30 root     tty1                          Tue Sep 25 14:02 - 14:03  (00:01)    
    31 reboot   system boot  3.10.0-862.11.6. Tue Sep 25 14:02 - 14:03  (00:01)    
    32 root     pts/0        10.0.2.14        Tue Sep 25 11:46 - 13:38  (01:52)    
    33 root     pts/1        shuais-mbp       Tue Sep 25 10:23 - 11:46  (01:22)    
    34 root     pts/0        192.168.1.5      Mon Sep 24 22:11 - 10:28  (12:17)    
    35 root     pts/1        192.168.1.5      Mon Sep 24 17:13 - 18:02  (00:48)    
    36 root     pts/0        192.168.1.5      Mon Sep 24 14:27 - 17:14  (02:46)    
    37 root     pts/1        192.168.1.5      Mon Sep 24 10:05 - 14:27  (04:21)    
    38 root     tty1                          Sun Sep 23 23:46 - 13:39 (1+13:53)   
    39 root     pts/0        192.168.1.5      Sun Sep 23 23:03 - 10:06  (11:02)    
    40 reboot   system boot  3.10.0-862.11.6. Sun Sep 23 22:46 - 13:40 (1+14:53)   
    41 root     pts/0        192.168.1.5      Sun Sep 23 22:30 - down   (00:16)    
    42 root     pts/0        192.168.1.5      Sun Sep 23 22:09 - 22:30  (00:20)    
    43 root     pts/1        192.168.1.5      Sun Sep 23 21:55 - 22:09  (00:13)    
    44 root     pts/0        192.168.1.5      Sun Sep 23 16:54 - 21:55  (05:00)    
    45 root     pts/0        192.168.1.5      Sun Sep 23 16:43 - 16:54  (00:10)    
    46 root     pts/1        192.168.1.5      Sun Sep 23 15:04 - 16:43  (01:39)    
    47 root     pts/0        192.168.1.5      Sun Sep 23 14:24 - 15:05  (00:40)    
    48 root     tty1                          Sun Sep 23 14:23 - 22:46  (08:22)    
    49 reboot   system boot  3.10.0-862.11.6. Sun Sep 23 14:23 - 22:46  (08:22)    
    50 root     pts/0        192.168.1.5      Sun Sep 23 13:45 - down   (00:38)    
    51 root     pts/0        192.168.1.5      Sun Sep 23 10:08 - 13:45  (03:36)    
    52 root     pts/0        192.168.1.5      Sun Sep 23 09:00 - 10:08  (01:07)    
    53 root     pts/0        192.168.1.5      Sat Sep 22 22:48 - 23:07  (00:18)    
    54 root     tty1                          Sat Sep 22 22:34 - 14:23  (15:48)    
    55 reboot   system boot  3.10.0-862.11.6. Sat Sep 22 22:34 - 14:23  (15:49)    
    56 root     tty1                          Sat Sep 22 22:16 - 22:34  (00:17)    
    57 reboot   system boot  3.10.0-862.11.6. Sat Sep 22 22:16 - 22:34  (00:18)    
    58 root     tty1                          Sat Sep 22 22:10 - 22:15  (00:05)    
    59 reboot   system boot  3.10.0-862.11.6. Sat Sep 22 22:10 - 22:34  (00:24)    
    60 root     pts/0        shuais-mbp       Tue Sep  4 10:35 - 13:14  (02:38)    
    61 root     tty1                          Tue Sep  4 10:34 - 22:09 (18+11:35)  
    62 reboot   system boot  3.10.0-862.11.6. Tue Sep  4 10:34 - 22:09 (18+11:35)  
    63 dandy    pts/1        172.16.54.1      Tue Sep  4 09:48 - 10:32  (00:43)    
    64 root     pts/0        172.16.54.1      Mon Sep  3 21:06 - 09:48  (12:41)    
    65 root     pts/1        172.16.54.1      Sat Sep  1 14:45 - 21:06 (2+06:21)   
    66 root     pts/0        172.16.54.1      Wed Aug 29 22:58 - 15:09 (2+16:11)   
    67 root     tty1                          Tue Aug 28 23:40 - 10:34 (6+10:53)   
    68 reboot   system boot  3.10.0-862.11.6. Tue Aug 28 23:40 - 10:34 (6+10:53)   
    69 root     tty1                          Tue Aug 28 23:17 - 23:40  (00:22)    
    70 reboot   system boot  3.10.0-862.11.6. Tue Aug 28 23:16 - 10:34 (6+11:17)   
    71 root     tty1                          Tue Aug 28 22:44 - 23:16  (00:31)    
    72 reboot   system boot  3.10.0-862.11.6. Tue Aug 28 22:44 - 10:34 (6+11:50)   
    73 dandy    pts/0        172.16.54.1      Tue Aug 28 20:50 - 22:43  (01:52)    
    74 dandy    pts/1        172.16.54.1      Tue Aug 28 11:35 - 13:29  (01:54)    
    75 dandy    pts/1        172.16.54.1      Tue Aug 28 11:33 - 11:34  (00:00)    
    76 dandy    pts/2        172.16.54.1      Tue Aug 28 10:27 - 11:05  (00:38)    
    77 dandy    pts/0        172.16.54.1      Tue Aug 28 10:16 - 13:29  (03:13)    
    78 dandy    pts/1        172.16.54.1      Sun Aug 26 17:43 - 10:35 (1+16:51)   
    79 dandy    pts/0        172.16.54.1      Sun Aug 26 14:18 - 19:45  (05:26)    
    80 dandy    pts/1        172.16.54.1      Sun Aug 26 09:33 - 15:36  (06:03)    
    81 dandy    pts/1        172.16.54.1      Sat Aug 25 22:30 - 23:42  (01:12)    
    82 dandy    pts/0        172.16.54.1      Thu Aug 23 20:40 - 10:00 (2+13:20)   
    83 dandy    pts/0        172.16.54.1      Wed Aug 22 23:05 - 23:28  (00:22)    
    84 dandy    pts/0        172.16.54.1      Wed Aug 22 21:11 - 23:05  (01:54)    
    85 root     tty1                          Wed Aug 22 21:08 - 22:43 (6+01:35)   
    86 reboot   system boot  3.10.0-862.el7.x Wed Aug 22 21:07 - 22:43 (6+01:35)   
    87 
    88 wtmp begins Wed Aug 22 21:07:51 2018
    View Code

    这里提到了clientqueue跟inode,关于小文件过多,inode数量被消耗,无法写入文件的问题,请查看文章

    4、/proc目录下

    /proc 虚拟目录,是内存的映射,内核和进程的虚拟文件系统目录
    /proc/version 内核版本
    /proc/sys/kernel 
    /proc/sys/net/ipv4
        cat /proc/sys/net/ipv4/tcp_tw_reuse ==> 1
        cat /proc/sys/net/ipv4/tcp_max_tw_buckets ==> 36000
        1、可以通过/etc/sysctl.conf进行修改,并用sysctl -p让它生效,效果是一样的
        2、也可以echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse追加到/etc/rc.local结尾,这样每次开机都会生效
        3、修改文件本身也可以echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse
    /proc/cpuinfo 处理器信息
    /proc/meminfo 系统内存信息
    /proc/devices 当前运行内核所配置的所有设备清单 
    /proc/dma 当前正在使用的DMA通道
    /proc/filesystems 当前运行内核所配置的文件系统
    /proc/interrupts 正在使用的中断,和曾经有多少个中断
    /proc/ioports 当前正在使用的I/O端口
    /prov/loadavg 系统负载平均值信息,uptime的结果,值不要超过CPU的盒数
  • 相关阅读:
    以用户名注册来分析三种Action获取数据的方式
    Struts2中的OGNL详解 《转》
    Module 'null' not found异常解决办法
    struts标签<logic:iterate>的用法
    struts2的核心和工作原理 <转>
    jstl标签怎么实现分页中下一页
    forward 和redirect
    forward 和redirect的区别
    今天早上起来就想着要问问龙虎有圆通没
    昨天晚上回来弄了两个皮蛋吃
  • 原文地址:https://www.cnblogs.com/wuzdandz/p/9698453.html
Copyright © 2011-2022 走看看