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/sdb:106 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)
关于开机,关机的一些小命令
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
这里提到了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的盒数