Linux的目录结构
万恶的根源
万恶的起源在于根!
任何操作系统都一样,拿到硬盘之后需要分区格式化,这个硬盘才能使用,对于Windows来讲,大家都用,也很熟悉,Windows在分区之后,每个分区被当做一个独立的空间,各不干扰。但Linux不同,我们在装机时就会定义一个特别重要的分区,根分区,当然还有boot、swap分区,这两个分区也很重要。
Linux的所有运行,条件必须建立在跟分区上,统一管理。那么说,Linux上只能有一个分区吗?不能像Windows一样创建自己想要的分区吗?并不然,只是必须在根分区基础上进行二次分区。Linux的分区和Windows不同,Linux在分区之后必须格式化然后挂载在根目录下某一目录上,才可以使用。
Linux有一个组织叫LSB,定义了Linux发行版基础目录名称命名法则及功用规定,这种标准叫做FHS(文件系统层级结构标准)
在Linux上根目录使用 / 反斜线代表,而根下的目录则是使用 /dir_name 斜线和目录的名字组成,上图就罗列了非常有层次型的目录结构,/ 为起始!
目录介绍
目录 | 介绍 |
---|---|
/ | 万恶的起源,第一层结构的根,整个系统结构的根目录。 |
/bin | 系统自身启动和运行时会用到的二进制文件,其目录下都是可执行文件。 |
/sbin | 管理类命令,其目录下都是可执行文件。 |
/boot | 系统启动时的引导文件,一般在装机时统根目录一起创建。 |
/dev | 设备文件,硬件之类的被映射为普通文件展示,还有一些特殊文件。 |
/etc | 配置文件,目录下保存的都是必要的配置文件。 |
/home | 普通用户的家目录,包含用户自己的文件,个人设置等。 |
/root | 超级管理员用户的家目录,每次登陆会自动进到此目录。 |
/lib | /bin和/sbin下可执行文件必要的库文件,仅支持32位系统。 |
/lib64 | /bin和/sbin下可执行文件必要的库文件,支持64位系统,同时包含32位系统。 |
/media | 便捷的移动设备挂载点,如光盘,U盘。 |
/mnt | 常用的临时文件系统挂载点。 |
/opt | 在早期常用于当作第三方软件安装目录。 |
/tmp | 临时文件的存放点,默认定期30天里边的文件会被清理一次。 |
/proc | 虚拟的文件系统,是由内核参数映射而来。 |
/sys | 内核中与硬件设备相关的信息映射 |
/selinux | 安全策略等信息的存放位置。 |
/usr | 系统软件资源存放的位置,包含了绝大多数的用户工具和应用程序。 |
/usr/bin | 都是可执行文件,面向所有用户。 |
/usr/sbin | 同样都是可执行文件。 |
/usr/include | 存放C语言编写的程序的头文件。 |
/usr/lib | /usr/bin和/usr/sbin可执行文件所需要的库。 |
/usr/share | 共享目录。 |
/usr/local | 常用于第三方软件的安装目录,目录下也有bin,sbin,lib,lib64,etc等目录。 |
/var | 系统不断发生变化的文件存放目录。 |
/var/cache | 应用程序缓存的数据存放目录。 |
/var/lib | 应用程序的状态信息。 |
/var/lock | 锁文件。 |
/var/log | 程序日志文件目录。 |
/var/run | 进程相关的数据,一般用于存放进程PID文件。 |
/var/tmp | 在重启过程中产生的临时数据。 |
介绍完目录,简单介绍一些与目录相关的命令~
ls (list):显示目录信息
格式:ls [Option] [file]
常用选项:不加选项时默认打印当前目录下信息
-a:列出所有文件,包括以“.”开头的隐藏文件
-l:长格式显示目录下内容,包括属性等信息。
-h:以单位k显示文件大小,默认是字节。
-d:显示目录本身,而不是显示目录下内容。
-i:查看文件或目录的inode节点号。
-r:逆序排列显示。
-t:按时间进行排序。
-c:按文件的改变时间排序。
-S:按文件大小排序,大文件在前。
-L:列出符号链接指向的文件的信息,而不是符号链接本身。
-R:递归列出全部目录的内容。
通配符:
*:匹配一个路径的任意字符任意次,但是不匹配以 . 开头的文件。
?:匹配一个路径的任意字符一次。
[ ]:匹配指定范围内的字符,例如[abc],匹配abc.
[ ^ ]:匹配指定范围外的字符,例如[^abc],匹配除了abc之外的字符。
**:匹配多个子文件夹。
{a,b}:匹配a或者b。
!:表示除了指定文件之外的其他文件,例如!/etc/file1。
例:匹配/etc下所有以 .d 结尾的文件
ls -d /etc/*.d
例:显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls -d /etc/{m,n,r,p}*.conf
cd :切换目录
cd [dirName]
常用操作
直接敲 cd 命令默认回到当前用户的家目录
cd ~:切换至用户家目录。
cd . . :返回至上一级目录,例如在/etc/sysconfig/中,是用cd … 返回上一级就是到了/etc/目录中。
cd - :切换至上一次所在的目录,与当前目录进行循环切换。
pwd :打印当前所在目录
直接输入 pwd 回车,就可以显示当前所在的目录。
mkdir:创建一个空目录
格式:mkdir [option] dirname …
可以和通配符一起使用
常用选项:
-p:递归创建目录。
例:使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
tree是以树状形式显示目录结构。
cp :复制文件或目录
可以使用cp命令复制一个文件到一个指定的目的地,也可以复制多个文件到一个目的目录。
如果复制的文件目的地已经存在,会提示是否覆盖。
格式:cp [option] 文件路径 目的目录
常用选项:
-a:保留文件原有属性复制。
-r:递归复制整个目录树。
-f:强制覆盖原文件。
-i:提示是否覆盖目标已存在文件。
例:创建/app/rootdir目录,并复制/root下所有文件到该目录内, 要求保留原有权限
努力!奋斗!