一、Linux的文件目录结构

文件系统结构的对比
Linux是一个单根倒数状结构。所有的文件子目录都是从‘/’出发,/ 既是Linux中的根目录(根分区),也是Linux中路径的分隔符
Linux中的命令和文件均区分大小写
Windows是一个多跟多树状结构,每一个盘就是一个根
Windows中的命令和文件均不区分大小写
一切皆文件
在 Linux 世界里,“一切皆文件”(Everything is a File)是其最核心的设计哲学。不论是真正的文档(如 .txt、.jpg),还是硬件设备(如硬盘、键盘、鼠标),或者是网络通信、进程信息,系统都给它们指定了文件路径。
所有东西都抽象成了一个可以“打开、读取、写入、关闭”的文件描述符 (File Descriptor)。统一接口之后,程序员不需要为显卡写一套代码,再为键盘写一套完全不同的代码。只要学会了“读写文件”,就能操控整个系统。
而 Windows 把功能封装成专业化的 API(应用程序接口)。
二、Linux中的主要目录和作用
/afs 专门用来挂载分布式文件系统 (Andrew File System)
/boot 存放系统的内核和启动引导文件
/dev 存放系统中所有的设备接口文件,删除会导致不可逆故障
/etc 存放系统、软件相关的配置文件
/home/username 表示普通用户的家目录,以用户名命名,例如/home/zhangsan 表示张三的家目录
/lost+found 当系统非正常关机,会将文件碎片文件保存到此目录下
/media和/mnt 默认为空,作为光盘、U盘、硬盘等设备临时挂载的目录
在安装了图形化界面的情况下,U盘等会自动挂载到/media
/opt 存放额外安装的、独立的大型软件包,一般都为空
/proc 进程信息和系统运行时内核状态,重启时清空
/root 表示超级管理员root用户的家目录;存放用户相关的数据,例如用户的桌面文件、下载的文件、以及自定义的软件配置文件
/run 存放系统自启动以来运行时的信息,重启时清空
/srv 默认为空,存储特定服务的一些文件,比如网站文件、ftp文件等等
/sys 存放硬件信息、可以直接修改的硬件参数等,重启时清空
/tmp 系统的临时目录,所有的用户都可以将自己的临时文件存放到该目录下,重启后清空所有内容
/usr 共享的库,依赖的文件,自定义安装的软件都存放在该目录下,删除会导致不可逆故障
/usr/bin 存放用户的指令、安装的软件
/usr/sbin 存放管理员的指令
/bin和/sbin是软链接(快捷方式),指向/usr/bin和/usr/sbin
/usr/local 手动安装的软件的根目录
/usr/local/bin 源码编译安装的软件
/usr/local/lib 用户自建库,包含手动编译的.so文件
/usr/lib和/usr/lib64 主要存放的是系统运行所必需的共享库
文件名通常以 .so(Shared Object)结尾,它们就像是 Windows 里的 .dll 文件,包含了很多程序通用的代码。
/lib和/lib64 软链接(快捷方式),指向/usr/lib和/usr/lib64。现代发行版本的趋势是系统基础文件和用户数据彻底分开,通过软链接,无论脚本写哪个路径,系统都能找到对应的程序。
/var 存放服务的数据和系统的日志
三、文件和目录命名规则
当创建的文件名中带有特殊符号且这个符号属于Shell元字符(具有特殊含义),应该使用单引号转义。
touch 'fchao*file^'

特殊符号TAB时会补齐转译符号\,在ls时会被单引号标注
file