对于Linux初学者,常常会对众多的目录感到困惑,如home、usr、etc、bin … 这些目录下又会包含许多文件。
一、Linux目录
Linux的目录为树状结构,以/ 为根目录,是Linux文件系统的入口,每一个文件和目录都从这里开始。
由于目录很多,各种操作都可能存在混乱情况,所以产生了FHS(Filesystem Hierarchy Standard)组织。FHS制定了目录规范,什么文件应该放在什么目录。根据FHS标准,Linux目录一般可分为以下四种交互状态:
其中:
- static:不可变的
- variable:可变的
- shareable:可共享的
- unshareable:不可共享的
“可共享”文件是指可以存储在一台主机上并在其他主机上使用的文件。“不可共享”文件是指那些不可共享的文件。例如,用户主目录中的文件是可共享的,而设备锁文件不是。
“静态”文件包括二进制文件、库、文档文件和其他未经系统管理员干预不会更改的文件。不可变“文件是非静态的文件。
更具体的可分为图中所示
在终端中,可使用ls命令查看当前目录结构。主要包括以下几类:
/ - 根目录 Linux文件系统的入口,每一个文件和目录都从这里开始。
/bin - 基本用户命令二进制文件目录
包含系统管理员和用户都可以使用的命令
/etc - 配置文件目录
本目录包含所有程序所需的配置文件。“配置文件”是用于控制程序操作的本地文件;它必须是静态的,不能是可执行的二进制文件。
/boot - 引导文件
目录包含系统启动过程所需的所有内容,但不包括启动时不需要的配置文件和映射安装程序。
/dev - 设备文件
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,包括终端设备、USB或连接到系统的任何设备。在 Linux 中访问设备的方式和访问文件的方式是相同的。
/lib - 库文件
此目录包含引导系统和运行根文件系统中的命令所需的共享库映像,即位于/bin和/sbin中的二进制文件。这些文件可以被很多程序共享。
/sbin - 系统二进制文件
/sbin包含由系统管理员使用的二进制可执行文件。
/proc - 进程信息文件
包含系统进程的相关信息。是系统内存的映射
/opt - 可选择文件
opitional的意思。用于安装附加应用程序软件包。
/lost+found
此目录通常为空,当系统非法关机后,这里就存放了一些文件。
/srv - 服务器数据文件
srv代表服务。包含服务器特定服务相关的数据。
/var - 变量文件
这个目录下可以找到内容可能增长的文件。这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);
/tmp - 临时文件
包含系统和用户创建的临时文件。当系统重新启动时,这个目录下的文件都将被删除。
/home - 用户目录
所有用户都用home来存储个人文件
/usr - 用户程序目录
包含二进制文件、库文件、文档和二级程序的源代码。
/mnt - 挂载目录
此目录主要是作为挂载点使用。通常包括系统引导后被挂载的文件系统的挂载点
/media - 可移动媒体设备
用于挂载可移动设备的临时目录。
二、Linux文件类型
Linux中有六种文件类型,分别是普通文件,目录文件,链接文件,设备文件,套接字文件,管道文件。
普通文件:包括纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data)
目录文件:Linux 中的目录也是文件,
链接文件:符号链接是指向系统上其他文件的引用,类似windows下的快捷方式。
设备文件:Linux 中的硬件设备如硬盘、鼠标等也都被表示为文件,即为设备文件。设备文件一般存放在 /dev/ 目录下
块设备文件:存储数据以供系统存取的接口设备,如硬盘或软盘。
字符设备文件:即串行端口的接口设备,例如键盘、鼠标
管道文件:管道是一种最基本的IPC机制,作用于有血缘关系的进程之间。一般的管道都是单向通信的,无法实现双向通信的功能。
套接字文件:提供进程间通信方法的文件,套接字可以实现两端通信。
占用存储空间的类型:文件、目录、符号链接。套接字、设备文件和管道是伪文件,不占用磁盘空间。
文件权限:
以普通文件为例,使用 ls -l 命令,可以看到文件为test.py的权限形式为-rw-rw-r–,其中第一个字符 “-” 表示这个文件为普通文件,它也可以是其他的字符,不同的字符代表不同类型的文件。其后的一串字符表明了该文件的权限。
1)r 表明该文件具有可读权限,若该位置为 “-” ,则表明文件不可读;
2)w 表明该文件具有写权限,若该位置为 “-” ,则表明文件不可写;
3)x 表明该文件具有可执行权限,若该位置为 “-” ,则表明文件不具有可执行权限;可以看到此处test.py为- 表示文件不具有可执行权限
对于其他的几个目录来说,rwx的意思又不太一样了
r:查看目录下的文件列表
w:删除和创建目录下的文件
x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容
命令集合
ls 选项 地址
cd 相对地址/绝对地址
pwd -p #显示出确实的路径,而非使用连接(link)路径
例如:
mkdir 选项 目录名称
rmdir **-p 目录名 #连同上一级【空的】目录页一起删除
cp 选项 源文件 目标地址/文件
给test.py添加软连接,可以看到,文件夹下多了test1的“快捷方式”。
删除test.py,可以看到,test1链接断开,无法使用
重新见一个test.py文件,然后硬链接为test_hard,可以看到文件夹下多了test_hard,打开后两者内容一致,只不过test_hard没有后缀,不属于py文件!
再把test.py删除
文件夹下还有test_hard,打开后发现内容没有变化。这就是硬链接和软链接的区别。