一、Linux 目录结构
、Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的。
以往的 Windows 一直是以存储介质为主,主要通过盘符(C 盘、D 盘……)及分区来实现文件管理,目录在这种情况下就显得不是那么重要,除系统文件之外的用户文件放在任何地方也没有多大关系。所以通常 Windows 在使用一段时间后,磁盘上面的文件目录会显得杂乱无章(少数善于整理的用户除外)。然而,UNIX/Linux 恰好相反,UNIX 是以目录为主,Linux 也继承了这一优良特性。Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说,Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。例如,可以利用网络文件系统(Network File System,NFS)服务器载入某特定目录等。
1. FHS 标准
FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
FHS 定义了两层规范,第一层是, /
下面的各个目录应该要放什么文件数据,例如 /etc
应该放置设置文件,/bin
与 /sbin
则应该放置可执行文件等等。
第二层则是针对 /usr
及 /var
这两个目录的子目录来定义。例如 /var/log
放置系统日志文件,/usr/share
放置共享数据等等。
2. 目录路径
使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录(注意,我们上一节介绍过的,以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件),- 表示上一次所在目录,~ 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
(1)绝对路径
关于绝对路径,简单地说就是以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
(2)相对路径
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 .
为起点,以你所要到的目录为终点,表现形式如: usr/local/bin
(这里假设你当前目录为根目录)。你可能注意到,我们表示相对路径实际并没有加上表示当前目录的那个 .
,而是直接以目录名开头,因为这个 usr
目录为 /
目录下的子目录,是可以省略这个 .
的;如果是当前目录的上一级目录,则需要使用 ..
,比如你当前目录为 /home/shiyanlou
目录下,根目录就应该表示为 ../../
,表示上一级目录( home
目录)的上一级目录( /
目录)。
三、Linux 文件的基本操作
1. 新建
使用 touch 命令创建空白文件
touch test
使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性。
创建名为“ asd”的空目录:
mkdir asd
使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在安装软件、配置安装路径时非常有用):
mkdir -p father/son/grandson
2. 复制
使用 cp 命令(copy)复制一个文件到指定目录。
cp test father/son/grandson
3. 删除
(1)删除文件
使用 rm(remove files or directories)命令删除一个文件:
rm test
有时候你会遇到想要删除一些为只读权限的文件,直接使用 rm 删除会显示一个提示,你如果想忽略这提示,直接删除文件,可以使用 -f 参数强制删除:
rm -f test
(2)删除目录
跟复制目录一样,要删除一个目录,也需要加上 -r 或 -R 参数:
rm -r family
遇到权限不足删除不了的目录也可以和删除文件一样加上 -f 参数:
rm -rf family
4. 移动文件与文件重命名
(1)移动文件
使用 mv(move or rename files)命令移动文件(剪切)。命令格式是 mv 源目录文件 目的目录。
例如将文件“ file1 ”移动到 Documents 目录:
mkdir Documents
touch file1
mv file1 Documents
(2)重命名文件
mv 命令除了能移动文件外,还能给文件重命名。命令格式为 mv 旧的文件名 新的文件名。
例如将文件“ file1 ”重命名为“ myfile ”:
mv file1 myfile
5. 查看文件
使用 cat,tac 和 nl 命令查看文件
前两个命令都是用来打印文件内容到标准输出(终端),其中 cat 为正序显示,tac 为倒序显示。
比如我们要查看之前从 /etc 目录下拷贝来的 passwd 文件:
cd /home/shiyanlou
cp /etc/passwd passwd
cat passwd
可以加上 -n 参数显示行号:
cat -n passwd
6. 查看文件类型
可以使用 file 命令查看文件的类型:
file /bin/ls