Linux学习笔记—— Linux文件系统及Shell

deanyuancn
发布于 2021-2-2 09:26
浏览
0收藏

Part0–Linux文件系统

Linux学习笔记——  Linux文件系统及Shell-鸿蒙开发者社区

一.Linux中常见的文件类型


1.普通文件

 

一个字符序列,如代码程序、数据、文本、图像等。
在Linux中,这些文件没有不同,被同等对待。
只有当需要时,才由相应的使用或处理文件的应用程序将文件含有添加到该文件上。
例如,对Linux而言,一个C程序和一个HTML文件没有差异,文件分别由C编译器、Web浏览器进行处理。


2.设备文件

 

指一些可以访问的硬件设备。
Linux将I/O设备视同文件对待,对每个设备对应一个文件。
设备文件并不是信息的存储体。它们只不过时为了I/O设备的读写提供了方便的渠道,并提供用户与文件系统相同的存取页面。
设备文件分为两类:字符设备文件(如键盘)和块设备文件(如硬盘)。
一般放在/dev目录下,如/dev/tty是终端的特别文件。
/dev目录位每种设备准备了至少一个文件,例如hda(硬盘驱动器a),lp0(行式打印机0)。
由于Linux操作系统是I/O硬件接口与普通文件的接口一致,用户就不必知道任何有关I/O设备的细节。


3.目录文件

 

Linux中,目录本身也是一种文件,可以按照文件进行管理。
目录文件包含其它目录和文件。
目录文件由许多特殊格式的记录组成。
每条记录由索引节点号和文件名组成。
索引节点包含文件的基本信息,例如大小、属性等。
 
二、Linux文件的表示和存储


1.文件的表示

 

Linux系统将每个文件名与一个数字(文件的索引节点号,或者称作i节点号)联系起来。
每个文件对应一个唯一的索引节点。
列表中每个i节点,存储文件属性。
所有索引节点在磁盘上组成索引节点列表。


2.文件系统的存储结构

 

Linux系统把可以作为一个存储介质(如硬盘、软盘和光盘等)上的存储空间划分成一个至多个区域。
每个区域都可以像独立的物理设备一样单独进行管理和数据存取,这样的存储区域,称作逻辑区域。
在逻辑设备上按照一定的格式进行划分,就构成了文件系统。
【文件系统的磁盘被分成四个部分】
(此部分的图片及部分内容参考自:https://www.cnblogs.com/ghl666/p/12033434.html
http://blog.chinaunix.net/uid-15243833-id-122099.html
https://docs.oracle.com/cd/E19253-01/819-7062/auto151/index.html)
Linux学习笔记——  Linux文件系统及Shell-鸿蒙开发者社区
(1)引导块:引导块保存引导程序,系统启动时激活这段特殊程序。引导块占用第0号物理块,不属于文件系统管辖,如果系统中有多个文件系统,只有根文件系统才有引导程序放在引导块中,其余文件系统都不使用引导块。如果文件系统不用于引导,则将引导块保留为空。
(2)超级块:包含磁盘自身的有关信息。像磁盘的总块数、空闲块数、块的大小、已使用的块数等。
(3)i-节点列表块:保存i节点的列表。每个文件都有一个属性,文件的大小,文件所有者,和创建时间等,这些性质被纪录在一个称为i-节点的结构中。所有i-节点都有着相同的大小,并且i-节点表是这些结构的一个列表,文件系统中的每个文件在该表中都有一个i-节点。
(4)文件和目录块:即数据存储区,存放数据,以块为单位存取。文件的内容保存在这个区域,磁盘上所有的块的大小都一样,如果文件包含了超过一个块的内容,则文件内容会存放在多个磁盘块中,一个较大的文件很容易分布上千个独立的磁盘块中。
 
三、Linux的目录结构


1.Linux文件系统是按照层次结构组织的。

 

2.主要目录介绍:

 

根目录(/):最高层目录为根目录,其它所有目录直接或间接从它分支。
主目录(~ ):系统管理员在系统上创建所有用户的账号,并为每个用户账号分配一个特定的目录,称为主目录,又称起始 / 登录目录。
工作目录(.):某个时刻正在使用的目录。
父目录(..):表示当前工作目录的父目录。


3.路径:

 

在文件系统中路径名用来定位文件。
从根目录开始,经过所有中间目录,直到文件,就形成了该文件的路径名。
绝对路径:从根目录到该文件的路径,路径名的开头有斜杠(/)。(例子:当前工作目录为usr,那么david目录下的myfirst文件的绝对路径名为/usr/david/myfirst)
相对路径:从当前目录到该文件的路径,路径名开头没有斜杠。(例子:当前工作目录为usr,那么david目录下的myfirst文件的相对路径名为david/myfirst)
 

四、Linux的文件名和目录名


1.文件名相关注意事项:

 

文件名由字符和数字组成,唯一的例外是根目录(/),其它文件不能使用这个名字。
建议不要使用不可打印的字符、空白以及Shell字符。
Linux中区分大小写字母。
Linux的扩展名可以使用一个及以上的点。


2.文件名后缀相关注意事项:

 

文件扩展名可以帮助用户进一步描述和分类文件的内容。大多数情况下可选,但某些编程语言的编译器依赖扩展名(如C语言)。
Windows操作系统根据文件的扩展名来区分文件类型,Windows下能被执行的文件扩展名通常为.com .exe .bat等,而Linux通过查看文件内的头部信息来确定文件的类型,与文件的名字无关,只要权限中有x(可执行)的话,就代表这个文件能被执行。
对于Linux操作系统而言,test文件和test.c文件都是text文件,类型上无区别,对于编译程序gcc来说就不同了,gcc编译器程序是根据文件的扩展名来判断文件类型的,所以使用gcc编译test文件就会提示错误信息。


3.重要的目录:

 

/:根目录,最高层的目录,其它所有目录都是它的分支。
/bin:bin:代表binaries,该目录存放许多基本的Linux程序文件,这些文件都是可执行文件。如ls,mkdir等。
/usr/bin:存放面向用户的Linux程序。
/usr/sbin:存放系统管理文件。
/sbin:存放系统文件。如管理工具,应用软件和通用的根用户权限命令等内容。包括系统管理工具,如fdisk,mkfs等,以及网络命令,如ifconfig,route等。
/dev:存放设备文件。如sda,ip0。
/etc:该目录以及其下的子目录存放许多Linux配置文件,这些文件通常都是文本文件,可以进行编辑,从而修改系统配置。例如/etc/passwd,该文件为系统每个用户记录了一行信息,描述了用户的情况。
/lib、/usr/lib:存放所有程序需要的程式库。
/lost+found:包含所有与其它目录没有连接的文件。这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。
/home:有些系统是/users,用来组织用户起始目录。
/var/spool/mail:接收并且保存从外面发来的电子邮件。
/tmp:存放不同程序执行时产生的临时文件,默认所有用户都可以读取,写入和执行文件。系统启动时清除。

 

 
五、Shell相关知识:


1.Shell的作用:

 

Shell仅仅是个程序,负责用户与Linux系统之间的交互。由外到内,自顶向下的关系为:用户->Shell->内核->硬件。
用户登录后,系统自动启动Shell程序。
用户每次输入完一个命令并按回车后,命令行被传到Shell,Shell先对命令进行分析,然后执行。


2.Shell环境的切换:

 

大多数Linux系统采用/bin/bash作为默认登录Shell,/etc/shells文件记录了系统支持的有效登录Shell,可用cat命令进行查看。


3.Linux命令的分类:

 

Shell命令:有些Linux命令是Shell程序的一部分,称为内部命令或Shell命令,内部命令由Shell程序识别并在Shell内部执行。
系统工具程序:大部分Linux命令是可执行程序(命令名和程序名一样),这些可执行程序由Shell查找、加载并执行。Shell从系统变量PATH设置的路径中查找可执行程序,这些可执行程序通常被称为系统工具。
通常,把Shell命令和系统工具统称为命令。

分类
已于2021-2-2 09:26:15修改
收藏
回复
举报
回复
    相关推荐