Linux 目录结构
Linux 的目录结构类似于树形结构,如下所示:
要认识 Linux 的目录结构,首先要认识目录结构最顶层的“/”,任何目录、文件和设备等都在此目录下。Linux 的文路径与 Windows 不同,Linux 的文件路径类似于“/home/wang”,Linux 没有 Windows中“盘符”的概念。
常见的主要目录:
目录 | 说明 |
---|---|
/ | 根目录。文件的最顶端,/etc、/bin、/dev、/lib、/sbin 应该和根目录放置在一个分区中,而类似/usr/local 可以单独位于另一个分区 |
/bin | 存放系统所需要的重要命令,比如文件或目录操作的命令 ls、cp、mkdir 等。另外 /usr/bin 下也存放了一些系统命令,这些命令对应的文件都是可执行的,普通用户可以使用大部分命令 |
/boot | 存放 Linux 启动时内核及引导系统程序所需要的核心文件,内核文件和 grub 系统引导管理器都位于此目录 |
/dev | 存放 Linux 系统下的设备文件,如光驱、磁盘等。访问该目录下某个文件相当于访问某个硬件设备,常用的是挂载光驱 |
/etc | 一般存放系统的配置文件,作为一些软件启动时默认配置文件读取的目录,如 /etc/fstab 存放系统分区信息 |
/home | 系统默认的用户主目录。如果添加用户时不指定用户的主目录,默认在 /home 下创建与用户名同名的文件夹。代码中可以用 HOME 环境变量表示当前用户的主目录 |
/lib | 64 位系统有 /lib64 文件夹,主要存放动态链接库。类似的目录有 /usr/lib、/usr/local/lib 等 |
/lost+found | 存放一些系统意外崩溃或及其意外关机时产生的文件碎片 |
/mnt | 用于存放挂在储存设备的挂载目录,如光驱等 |
/proc | 存放操作系统运行时的信息,如进程信息、内核信息、网络信息等。此目录的内容存在于内存中,实际不占用磁盘空间,如 /proc/cpuinfo 存放 CPU 的相关信息 |
/root | Linux 超级权限用户 root 的主目录 |
/sbin | 存放一些系统管理的命令,一般只能由超级权限用户 root 执行。大多数命令普通用户一般无权执行,类似 /sbin/ifconfig,普通用户使用绝对路径也可执行,用于查看当前系统的网络配置。类似的目录有 /usr/sbin、/usr/local/sbin |
/tmp | 临时文件目录,任何人都可以访问。系统软件或用户运行程序(如 MySQL)时产生的临时文件存放到这里。此目录数据需要定时清除。重要数据不可放置在此目录下,此目录空间不宜过小 |
/usr | 应用程序存放目录,如命令、帮助文件等。安装 Linux 软件包时默认安装到 /usr/local 目录下。比如 /usr/share/fonts 存放系统字体,/usr/share/bin 存放帮助文档,/usr/include 存放软件的头文件等。/usr/local 目录建议单独分区并设置较大的磁盘空间 |
/var | 此目录的内容经常是变动的,如 /var/log 用于存放系统日志、/var/lib 用于存放系统库文件等 |
/sys | 目录与 /proc 类似,是一个虚拟的文件系统,主要记录与系统核心相关的信息,如当前系统已经载入的模块信息等。此目录实际不占硬盘容量 |
/media | Linux 系统会自动识别一些设备,如 U 盘、光驱等,当识别后,Linux 会把识别的设备挂载到这个目录下 |
/srv | 该目录存放一些服务启动之后需要提取的数据 |
注意:各个发行版由不同的公司开发,所以各个发行版之间的目录可能会有所不同。Linux 各个发行版本之间目录的差距比较小,不同的地方主要是提供的图形界面及操作习惯等。
Linux 中的命令很多,但一般在使用的时候会遵守一定的格式。为了便于使用命令,我们对命令格式进行详细说明。
命令的一般格式:
command [options] [arguments]
-
command
命令:即命令名称。 -
options
命令选项:用于调整命令的功能。命令不同,选项的个数和内容会有所不同;要实现的命令功能不同,选项的个数和内容也会有所不同。 -
arguments
命令参数:是命令处理的对象,通常情况可以是文件名、目录、或用户名。
- 命令、命令选项、命令参数之间用空格隔开。例如:
- 1
- 1
- 当有多个命令选项时,可以进行合并。例如,可以将
ls -a /
和ls -l /
合并为:
- 1
- 1
- 短格式与长格式
也被称作简化选项与完整选项。短格式的命令选项是单个英文字母,选项前用 -
符号,字母可以是大/小写;长格式的命令选项使用英文单词表示,选项前用 --
符号。例如:
(1)pwd 命令
目录是 Linux 的基本组成部分,目录管理包括目录的复制、删除、修改等操操作。
在 linux 层次结构中,想要知道当前所处的目录,可以用 pwd 命令,该命令输出当前工作目录的完整名称。环境变量 OLDPWD 表示前一次的工作目录,环境变量 PWD 表示当前的工作目录。
-
命令名称
pwd -
命令全称
Print Working Directory -
基本语法
pwd [选项]… -
功能描述
打印当前工作目录的完整文件名
pwd 命令比较简单,默认情况下,不需要带任何参数,执行该命令显示当前路径。如果当前路径有软连接,显示链接路径而非实际路径,使用选项 P 可以显示当前路径的实际路径。
选项 | 说明 |
---|---|
-L(--logical 逻辑路径) | 使用环境变量中的 PWD,即使其中包含符号链接 |
-P(--physical 物理路径) | 避免所有符号链接 |
--help | 显示此帮助信息并退出 |
--version | 显示版本信息并退出 |
1.查看默认工作目录的完整路径
- 1
- 2
- 1
- 2
2.查看指定文件夹
- 1
- 2
- 3
- 1
- 2
- 3
3.如果目录是个符号链接,pwd 显示链接(link)路径;pwd -P 显示实际路径。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
4.查看上一次的工作目录与当前的工作目录
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
5.当前目录被删除后,pwd 命令仍可显示该目录
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
6.查看所有含有可执行 pwd 的路径
- 1
- 2
- 3
- 1
- 2
- 3
7.查看帮助信息
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
(2)cd 命令
cd 命令用于切换工作目录为指定的目录,参数可以为相对路径或者绝对路径。如果不带任何参数,则切换至用户的主目录,cd 为最常用的命令,与 DOS 下的 cd 命令类似。
-
命令名称
cd -
命令全称
Change Directory -
基本语法
cd [dir] -
功能描述
切换当前目录至 dir
1.使用绝对路径(以 / 开始),切换至指定目录
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2.使用相对路径,切换至指定目录
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
3.切换至当前目录的上一级目录(用 ..
表示)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
后退至上上一级目录(用 ../../
表示)
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
从 /home/wang/test
目录切换至 /home/wang/title
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
4.切换工作目录到当前工作目录(木有什么意义!!!主要介绍 .
表示当前目录)
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
5.使用 cd
或 cd ~
进入当前用户主目录
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
6.回到上次的目录(用 -
表示)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
7.切换至带有空格的目录
- 1
- 2
- 3
- 1
- 2
- 3
或者(用单引号 '
和双引号 "
均可)
- 1
- 2
- 3
- 1
- 2
- 3
8.从当前目录切换到以 t 开头的目录(忘了目录的名字,但又不想用 TAB 键)
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
注意:如果只有一个目录以 t 开头,将会移动到该目录;如果有很多目录以 t 开头,将会移动到第一个以 t 开头的目录(按照字典里字母的顺序)。
(3)tree 命令
使用 tree 命令以树状图递归的形式显示各级目录,可以方便地看到目录结构。
大部分 Linux 中默认没有安装 tree 命令,
- 1
- 2
- 1
- 2
切换至 root,进行安装:
- 1
- 1
-
命令名称
tree -
基本语法
tree [-acdfghilnpqrstuvxACDFQNSUX] [-H baseHREF] [-T title ] [-L level [-R]]
[-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes]
[--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset]
[--filelimit[=]#] [--si] [--timefmt[=]<f>] [<directory list>] -
功能描述
以树状图递归的形式显示各级目录
选项 | 说明 |
---|---|
-a | 显示所有文件和目录 |
-C | 为文件和目录清单加上色彩,便于区分各种类型 |
-d | 显示目录名称而非内容 |
-D | 列出文件或目录的更改时间 |
-f | 在每个文件或目录之前,显示完整的相对路径名称 |
-F | 在执行文件、目录、Socket、符号连接、管道名称前,分别加上“*”、“/”、“=”、“@”、“|”符号 |
-g | 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码 |
-i | 不以阶梯状列出文件或目录名称 |
-I | 不显示符合范本样式的文件或目录名称 |
-l | 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录 |
-n | 不为文件和目录清单加上色彩 |
-s | 列出文件或目录大小 |
-u | 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码 |
-x | 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外 |
1.不带选项运行 tree
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
2.查看不同级别子目录
使用 tree -L n
命令,n 为数字,表示查看当前第 n 级的目录和文件。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
3.显示完整的相对路径名称
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
4.只显示目录
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
5.为文件和目录清单加上色彩,便于区分各种类型。