首页 > 系统相关 >Linux学习笔记(第零篇)Linux文件系统及Shell

Linux学习笔记(第零篇)Linux文件系统及Shell

时间:2022-11-01 21:03:18浏览次数:67  
标签:文件 Shell 零篇 文件系统 笔记 Linux 目录


​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及Shell
Linux学习笔记(第一篇)零散命令
Linux学习笔记(第二篇)目录操作命令
Linux学习笔记(第三篇)文件操作命令
Linux学习笔记(第四篇)文件内容操作命令+正则表达式+重定向和管道
Linux学习笔记(第五篇)归档及压缩命令
Linux学习笔记(第六篇)Vi编辑器
Linux学习笔记(第七篇)用户和组管理
Linux学习笔记(第八篇)磁盘与文件系统管理
Linux学习笔记(第九篇)逻辑卷管理(LVM)
Linux学习笔记(第十篇)进程管理
Linux学习笔记(第十一篇)服务管理
Linux学习笔记(第十二篇)网络基础
Linux学习笔记(第十三篇)通信管理
Linux学习笔记(第十四篇)管理常用网络服务
Linux学习笔记(第十五篇)常用网络服务器配置

Part0–Linux文件系统


一.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系统把可以作为一个存储介质(如硬盘、软盘和光盘等)上的存储空间划分成一个至多个区域。
  • 每个区域都可以像独立的物理设备一样单独进行管理和数据存取,这样的存储区域,称作逻辑区域。
  • 在逻辑设备上按照一定的格式进行划分,就构成了文件系统。
  • 【文件系统的磁盘被分成四个部分】
    (此部分的图片及部分内容参考自
    ​​​ http://blog.chinaunix.net/uid-15243833-id-122099.html​​​ https://docs.oracle.com/cd/E19253-01/819-7062/auto151/index.html)

    (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命令和系统工具统称为命令。


标签:文件,Shell,零篇,文件系统,笔记,Linux,目录
From: https://blog.51cto.com/u_15856491/5815004

相关文章

  • Linux学习笔记(第一篇)零散命令
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第二篇)目录操作命令
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第四篇)文件内容操作命令+正则表达式+重定向和管道
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Linux学习笔记(第三篇)文件操作命令
    ​​Linux学习笔记(第零篇)计算机基础​​Linux学习笔记(第零篇)Linux文件系统及ShellLinux学习笔记(第一篇)零散命令Linux学习笔记(第二篇)目录操作命令Linux学习笔记(第三篇)文件操......
  • Unix/Linux系统编程(块设备I/O和缓冲区管理)
    块设备I/O缓冲区I/O缓冲的基本原理非常简单,文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk)标识的磁盘块时,它首先在缓冲区缓存中搜索分配给......
  • Linux系统安装jenkins
    搭建Jenkins,准备搞一个定时任务来自动部署服务。做个记录。jdk版本:jdk-11.0.17Jenkins版本:2.3751.应用下载jdk下载:https://www.oracle.com/java/technologies/do......
  • JMETER与BeanShell
    变量Beanshell应用自定义变量有两种方法:#第一种方法,使用${key}格式,但是需要注意这是用应用的变量是没有定义数据类型的#log.info(StringKey)只能打印字符串,所以按下述......
  • Linux fixfiles 命令
    Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与......
  • 25Jmeter之服务器性能资源监测-Jconsole &Linux命令
    一.通过Jconsole进行监控服务器资源情况Jconsole是一个内置Java性能分析器,可以轻松地使用JConsole来监控Java应用程序性能和跟踪Java中的代码。(1)开始—运行—输......
  • shell脚本里的sed和awk
    一、sed1.1、sed的原理sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令要么......