1.文件系统
(1)文件和目录被组织成一个单根倒置树结构
(2)文件系统从根录下开始,用“/”表示
(3)根文件系统(rootfs):root filesystem
(4)文件名称区分大小写
(5)以.开头的文件为隐藏文件
(6)路径分隔的 /
(7)文件有两类数据:
元数据:metadata
数据:data
(8)文件系统分层结构:LSB Linux Standard Base
(9)FHS: (Filesystem Hierarchy Standard)
2.文件名规则
文件名最长255个字节
包括路径在内文件名称最长4095个字节
蓝色-->目录 绿色-->可执行文件 红色-->压缩文
件 浅蓝色-->链接文件 灰色-->其他文件
除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和
文件不推荐使用,有些字符需要用引号来引用它们。
标准Linux文件系统(如ext4),文件名称大小写敏感。例如
:MAIL, Mail, mail, mAiL
3.文件系统结构
- /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器
(bootloader, grub)都存放于此目录 - /bin:供所有用户使用的基本命令;不能关联至独立分区,
OS启动即会用到的程序 - /sbin:管理类的基本命令;不能关联至独立分区,OS启动即
会用到的程序 - /lib:启动时程序依赖的基本共享库文件以及内核模块文件
(/lib/modules) - /lib64:专用于x86_64系统上的辅助共享库文件存放位置
- /etc:配置文件目录
- /home/USERNAME:普通用户家目录
- /root:管理员的家目录
- /media:便携式移动设备挂载点
- /mnt:临时文件系统挂载点
- /dev:设备文件及特殊文件存储位置
b: block device,随机访问
c: character device,线性访问 - /opt:第三方应用程序的安装位置
- /srv:系统上运行的服务用到的数据
- /tmp:临时文件存储位置
- /proc: 用于输出内核与进程信息相关的虚拟文件系统
- /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
- /selinux: security enhanced Linux,selinux相关的安全策
略等信息的存储位置
4.Linux上的应用程序的组成部分
(1) 二进制程序:
/bin, /sbin, /usr/bin, /usr/sbin,
/usr/local/bin, /usr/local/sbin
(2) 库文件:
/lib, /lib64, /usr/lib, /usr/lib64,
/usr/local/lib, /usr/local/lib64
(3) 配置文件:
/etc, /etc/DIRECTORY, /usr/local/etc
(4)帮助文件:
/usr/share/man, /usr/share/doc,
/usr/local/share/man, /usr/local/share/doc
(5)CtenOs7变化
- /bin 和 /usr/bin
- /sbin 和 /usr/sbin
- /lib 和/usr/lib
- /lib64 和 /usr/lib64
6.pwd:显示当前工作目录
每个shell和系统进程都有一个当前的工作目录
CWD:current work directory
显示当前shell CWD的绝对路径
pwd: printing working directory
-P 显示真实物理路径
-L 显示链接路径(默认)
7.绝对和相对路径
(1)绝对路径
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
(2)相对路径名
不以斜线开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
基名:basename
目录名:dirname
8.更改目录
(1)cd 改变目录
使用绝对或相对路径:
cd /home/wang/
cd home/wang
(2)切换至父目录: cd ..
(3)切换至当前用户主目录: cd
(4)切换至以前的工作目录: cd-
选项:-P
相关的环境变量:
PWD:当前目录路径
OLDPWD:上一次目录路径
9.文件通配符
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~mage 用户mage家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z]:字母
[A-Z]:字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
预定义的字符类:#man 7 glob
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
10.硬链接
(本质是给一个文件多个文件名,目录不支持硬链接,删除任何一个,其他名称不受影响)
(1)创建硬链接会增加额外的记录项以引用文件
(2)对应于同一文件系统上一个物理文件
(3)每个目录引用相同的inode号
(4)创建时链接数递增
(5)删除文件时:
- rm命令递减计数的链接
- 文件要存在,至少有一个链接数
- 当链接数为零时,该文件被删除
(6)不能跨越驱动器或分区
(7) 语法:
ln filename [linkname ]
11.符号(或软)链接(相就可以当于快捷方式,只要路径)
(1)一个符号链接指向另一个文件
(2)ls - l的 显示链接的名称和引用的文件
(3)一个符号链接的内容是它引用文件的名称
(4)可以对目录进行
(5)可以跨分区
(6)指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;
(7)语法:
ln -s filename [linkname]