【文件系统】目录结构及文件基本操作
Linux目录结构和Windows目录结构从实现机制来看是完全不同的:一种不同体现在目录与存储介质(磁盘,内存,DVD等)的关系上, Windows一直是以存储介质为主的 ,主要以盘符(C盘,D盘...)及分区来实现文件管理,然后下一层才是目录,所以目录就显得不是那么重要了,除系统文件意外的用户文件放在任何地方任何目录都是没有多大关系的。 UNIX/Linux恰好相反,UNIX是以目录为主的,Linux也继承了这一优良特性 。Linux是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统的骨架。无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说Linux的磁盘是“挂在”目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统,比如利用网络文件系统(NFS)载入某个特定目录等。
Linux的目录结构虽然复杂,但是它其中大部分目录结构是规定好了的,是符合FHS标准的,当你掌握好后,你的一切操作都会变得尽然有序。
FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数Linux版本采用这种文件组织形式。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
FHS定义了两层规范:
FHS详细规范可参考: FHS_2.3 标准文档
最直观的查看系统目录机构的方法是通过 tree 命令:
FHS是根据以往无数Linux用户和开发者的经验总结出来的,并且会持续更新,FHS依据文件系统使用的平凡与否以及是否允许用户随意改动(注意,不是不能,是能否随意),将目录定义为四种交互作用的形态,如下表所示:
使用 cd 命令可以切换目录,在Linux里面使用 . 表示当前目录, .. 表示上一级目录(以 . 开头的文件都是隐藏文件,所以这两个目录都是隐藏的,可以通过 ls -a 命令查看隐藏文件), - 表示上一次所在目录, ~ 通常表示当前用户的“home”目录,使用 pwd 可以获取当前所在绝对路径。
相对路径实际山并没有加上当前目录的那个“.”,而是直接以目录名开头,因为usr目录是当前目录的子目录,;如果是当前目录的上一级目录,则需要使用“..”。
提示:在进行目录切换过程中,请多次使用 Tab 键自动补全,可避免输入错误,连续按两次 Tab 可以显示出全部候选结果
rename 是先使用第二个参数的通配符匹配所有后缀为 .txt 的文件,然后使用第一个参数提供的正则表达式将匹配的这些文件的 .txt 后缀替换成 .c ,这一点可以参考 sed 命令。
标准输入输出:当我们执行一个shell命令行时通常会自动打开三个标准文件:标准输入文件(stdin),默认对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应被重定向到终端的屏幕。进程从标准输入文件中得到的输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
在Linux下编辑文件通常会直接使用专门的命令行编辑器(比如:emacs,vim,nano)。
2024-11-15 广告