Linux文件目录结构
1、存放命令相关目录
/bin:普通用户使用的命令
/sbin:管理员使用的命令
2、存放用户相关数据的家目录
/home:普通用户的家目录,默认为/home/username
/root:超级管理员root的家目录,普通用户无权操作
3、系统文件目录
/usr:
/usr/local:软件安装的目录
/usr/bin:普通用户使用的应用程序
/usr/sbin:管理员使用的应用程序
/usr/lib:库文件Glibc 32bit
/usr/lib64:库文件Glibc 64bit
4、启动目录
/boot:存放系统启动相关的文件
5、配置文件目录
/etc:所有服务的配置都在这个目录中
/etc/sysconfig/network-script/ifcif-:网络配置文件
/etc/hostname:系统主机名配置文件
/etc/resolv.conf:dns客户端配置文件
/etc/hosts:本地域名解析配置文件
6、可变的目录与临时目录
/var:存放一些变化文件
/var/tmp:进程产生的临时文件
/tmp:系统临时目录
7、设备目录文件
/dev:存放设备文件
/dev/null:黑洞设备,只进不出,类似于垃圾回收站
/dev/random:生成随机数的设备
/dev/zero:能源源不断的产生数据。
8、虚拟的文件系统
/proc:反映系统当前进程的实时状态
系统文件属性
[root@wcbpg ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1353 Nov 27 22:58 anaconda-ks.cfg
#文件属性:
-rw-------. ①:第一个字符是文件类型,其他则是权限
1 ②:硬链接次数
root ③:文件属于哪个用户
root ④:文件属于哪个组
1353 ⑤:文件大小
Nov 27 22:58 ⑥⑦⑧:最新修改的时间与日期
anaconda-ks.cfg ⑨:文件或目录名称
系统文件类型
[root@wcbpg ~]# ll -d /etc/hosts /tmp /bin/ls /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
-rwxr-xr-x. 1 root root 117608 Aug 20 2019 /bin/ls
srw-rw-rw- 1 root root 0 Nov 28 18:37 /dev/log
brw-rw---- 1 root disk 8, 0 Nov 28 23:24 /dev/sda
crw--w---- 1 root tty 4, 1 Nov 28 23:24 /dev/tty1
lrwxrwxrwx. 1 root root 22 Nov 27 22:55 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
prw------- 1 root root 0 Nov 28 18:37 /run/dmeventd-client
drwxrwxrwt. 10 root root 279 Dec 13 20:25 /tmp
#说明
- #普通文件(文本, 二进制, 压缩, 图片, 日志等)
d #目录文件
b #设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c #设备文件(字符设备),终端 /dev/tty1, /dev/zero
s #套接字文件, 进程间通信(socket)
p #管道文件
l #链接文件
#使用file可以具体查看是什么类型的文件
[root@wcbpg ~]# file /etc/hosts
/etc/hosts: ASCII text
[root@wcbpg ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped
[root@wcbpg ~]# file /dev/sda
/dev/sda: block special
[root@wcbpg ~]# file /dev/tty1
/dev/tty1: character special
[root@wcbpg ~]# file /etc/grub2.cfg
/etc/grub2.cfg: symbolic link to `../boot/grub2/grub.cfg'
[root@wcbpg ~]# file /home
/home: directory
[root@wcbpg ~]# file /run/dmeventd-client
/run/dmeventd-client: fifo (named pipe)
软连接
#1.准备网站1.1版本代码
[root@wcbpg ~]# mkdir -p /data/rainbow-v1.1
[root@wcbpg ~]# echo "123" > /data/rainbow-v1.1/index.html
#2.创建软链接
[root@wcbpg ~]# ln -s /data/rainbow-v1.1/ /data/rainbow
[root@wcbpg ~]# ll /data/
total 0
lrwxrwxrwx 1 root root 19 Dec 13 20:51 rainbow -> /data/rainbow-v1.1/
drwxr-xr-x 2 root root 24 Dec 13 20:51 rainbow-v1.1
#3.检查网站程序
[root@wcbpg ~]# cat /data/rainbow/index.html
123
#4.新更新一个网站的程序代码
[root@wcbpg ~]# mkdir /data/rainbow-v1.2
[root@wcbpg ~]# echo "456" > /data/rainbow-v1.2/index.html
#5.升级
[root@wcbpg ~]# rm -f /data/rainbow && ln -s /data/rainbow-v1.2/ /data/rainbow
[root@wcbpg ~]# cat /data/rainbow/index.html
456
#6.回退
[root@wcbpg ~]# rm -f /data/rainbow && ln -s /data/rainbow-v1.1/ /data/rainbow
[root@wcbpg ~]# cat /data/rainbow/index.html
123
硬链接与软链接区别
1) ln命令创建硬链接,ln -s命令创建软链接。
2)目录不能创建硬链接,并且硬链接不可以跨越分区系统。
3)目录软链接特别常用,并且软链接支持跨越分区系统。
4)硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。
5)删除源文件及其硬链接文件,整个文件会被真正的删除。