1.3 Linux文件系统

2023-10-27

一、Linux文件系统结构

Linux下都是文件,所以没有Windows一样的盘,有的只有文件夹。

cd /    // 进入根目录

ls     // 查看根目录"/"下的文件及文件夹

/bin     :存储了很多系统命令, /usr/sbin 也存储了许多系统命令。

/sbin   :超级用户 root 的根目录文件。

/root   :普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹。

/home     :存放 Ubuntu 系统内核和系统启动文件。

/boot       :通常包括系统引导后被挂载的文件系统的挂载点。

/mnt   :存放设备文件,我们后面学习 Linux 驱动主要是跟这个文件夹打交道的。

/dev    :保存系统管理所需的配置文件和目录。

/etc     :保存系统程序运行所需的库文件, /usr/lib 下存放了一些用于普通用户的库文件。

/lib      :存储一些二进制可执行命令文件, /usr/bin 也存放了一些基于用户的命令文件。

/lost+found :一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件。

/var     :包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件。

/usr     :存放 Ubuntu 系统自动挂载的设备文件。

/media     :虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息。

/proc      : 存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限。

/tmp       :可选文件和程序的存放目录。

/opt     :系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。

/sys      :存储一些不断变化的文件,比如日志文件

 

二、文件操作基础知识

1.创建新文件(touch)

命令格式:  touch 不仅仅可以用用来创建文本文档,其它类型的文档也可以创建。

touch  [参数]  [文件名]

参数如下:

-a       :只更改存取时间。

-c       :不建立任何文件。

-d<日期>    : 使用指定的日期,而并非现在日期。

-t<时间>     :使用指定的时间,而并非现在时间。

 



 

2.创建文件夹(mkdir)

命令格式:  mkdir  [参数]   [文件夹名目录名]

主要参数:

-p  :如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录。

3.删除文件及目录(rm)

命令格式:  rm  [参数]  [目的文件或文件夹目录名]  

主要参数:

-d   :直接把要删除的目录的硬连接数据删成 0,删除该目录。

-f    :强制删除文件和文件夹(目录)。

-i    :删除文件或者文件夹(目录)之前先询问用户。

-r    : 递归删除,指定文件夹(目录)下的所有文件和子文件夹全部删除掉。

-v    :显示删除过程。
 

4.删除文件夹(rmdir)

命令格式:  rmdir  [参数]  [文件夹(目录)]

5.复制文件(cp)

命令格式:  cp  [参数]  [源地址]  [目的地址]

主要参数:
-a   :此参数和同时指定“-dpR”参数相同

-d   :在复制有符号连接的文件时,保留原始的连接。

-f    :强行复制文件,不管要复制的文件是否已经存在于目标目录。

-I    :覆盖现有文件之前询问用户。

-p   :保留源文件或者目录的属性。

-r 或-R :递归处理,将指定目录下的文件及子目录一并处理 
 


 

“*”,“*.c”就表示 test1 下的所有以“.c”结尾的文件,也就是a.c 和 b.c。

“../test2”中的“../”表示上级目录,因此“../test2”就是上级目录下的 test2 文件夹。 

6.文件移动(mv)

命令格式:  mv  [参数]  [源地址]  [目的地址]

主要参数:

-b   :如果要覆盖文件的话覆盖前先进行备份。

-f    :若目标文件或目录与现在的文件重复,直接覆盖目的文件或目录。

-I    :在覆盖之前询问用户。
 

7.目录查询文件(find)

命令格式:  find  [路径]  [参数]  [关键字]

主要参数:

-name<filename>   : 按照文件名称查找,查找与 filename匹配的文件,可使用通配符。

-depth          :从指定目录下的最深层的子目录开始查找。

-gid<群组识别码>    :查找符合指定的群组识别码的文件或目录。

-group<群组名称>   :查找符合指定的群组名称的文件或目录。

-size<文件大小>     :查找符合指定文件大小的文件。

-type<文件类型>    :查找符合指定文件类型的文件。

-user<拥有者名称>   :查找符合指定的拥有者名称的文件或目录。 

8.关键字查询(grep)

命令格式:  grep  [参数]  关键字  文件列表

-b         :在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号。

-c          :计算符合关键字的列数。

-d<进行动作>     : 当指定要查找的是目录而非文件时,必须使用此参数!否则 grep 指令将回报信息并停止搜索。

-i          :忽略字符大小写。

-v         :反转查找,只显示不匹配的行。

-r          :在指定目录中递归查找。


 

9.文件压缩(zip)

命令格式:  zip  [参数]  [压缩文件名.zip]  [被压缩文件]

主要参数:

-b<工作目录>    : 指定暂时存放文件的目录。

-d           :从 zip 文件中删除一个文件。

-F         :尝试修复已经损毁的压缩文件。

-g         :将文件压缩入现有的压缩文件中,不需要新建压缩文件。

-h         :帮助。

-j          :只保存文件的名,不保存目录。

-m          :压缩完成以后删除源文件。

-n<字尾符号>     :不压缩特定扩展名的文件。

-q          :不显示压缩命令执行过程。

-r           :递归压缩,将指定目录下的所有文件和子目录一起压缩。

-v          :显示指令执行过程。

-num         :压缩率,为 1~9 的数值。

常用参数:  -rv

10.文件解压(unzip)

命令格式:  unzip  [参数]  [压缩文件名.zip]

主要参数:

-l        :显示压缩文件内所包含的文件。

-t        :检查压缩文件是否损坏,但不解压。

-v       :显示命令显示的执行过程。

-Z       :只显示压缩文件的注解。

-C       :压缩文件中的文件名称区分大小写。

-j        :不处理压缩文件中的原有目录路径。

-L       :将压缩文件中的全部文件名改为小写。

-n       :解压缩时不要覆盖原有文件。

-P<密码>     :解压密码。

-q       :静默执行,不显示任何信息。

-x<文件列表>   : 指定不要处理.zip 中的哪些文件。

-d<目录>     : 把压缩文件解到指定目录下。

11.文件压缩和解压(tar)

tar是用于Linux最常用的.bz2和.gz两种压缩格式。

命令格式:  tar  [参数]  [压缩文件名]  [被压缩文件]

主要参数:

-c         :创建新的压缩文件。

-C<目的目录>    :切换到指定的目录。

-f<备份文件>   :指定压缩文件。

-j          :用 tar 生成压缩文件,然后用 bzip2 进行压缩。

-k         :解开备份文件时,不覆盖已有的文件。

-m          :还原文件时,不变更文件的更改时间。

-r          :新增文件到已存在的备份文件的结尾部分。

-t          :列出备份文件内容。

-v          :显示指令执行过程。

-w         :遭遇问题时先询问用户。

-x          :从备份文件中释放文件,也就是解压缩文件。

-z          :用 tar 生成压缩文件,用 gzip 压缩。

-Z          :用 tar 生成压缩文件,用 compress 压缩
  

常用指令:  -vcjf(压缩为.bz2文件)  -vczf(压缩为.gz文件)  -vxjf(解压.bz2文件)  -vxzf(解压.gz文件)

三、文件基础知识

1.文件类型

每个文件的详细信息占一行,每行最前面都是一个符号就标记了当前文件类型。例如testdir1是d开头,那么它就是目录文件。

-        :普通文件,一些应用程序创建的,比如文档、图片、音乐等等。

d     :目录文件。

c      :字符设备文件, Linux 驱动里面的字符设备驱动,比如串口设备,音频设备等。

b     :块设备文件,存储设备驱动,比如硬盘, U 盘等。

l       :符号连接文件,相当于 Windwos 下的快捷方式。

s      :套接字文件。

p     :管道文件,主要指 FIFO 文件。

我们后面学习 Linux 驱动开发的时候基本是在和字符设备文件和块设备文件打交道。 

2.权限管理

  其中“-rw-rw-r--”表示文件权限与用户和用户组之间的关系,第一位表示文件类型。剩下的 9 位以 3 位为一组,分别表示文件拥有者的权限,文件拥有者所在用户组的权限以及其它用户权限。后面的“luoxuesong luoxuesong ”分别代表文件拥有者(用户)和该用户所在的用户组,因此文件 test.c 的权限情况如下:
①文件 test.c 的拥有者是用户 luoxuesong ,其对文件 test.c 的权限是“rw-”,也就是对该文件拥有读和写两种权限。
②用户 luoxuesong 所在的用户组也叫做 luoxuesong ,其组内用户对于文件 test.c 的权限是“rw-”,也是拥有读和写这两种权限。
③其它用户对于文件 test.c 的权限是“r--”,也就是只读权限。 

2.1权限修改(chmod)

chmod用于修改文件或文件夹权限。

chmod  [参数]  [文件名/目录名]

主要参数:

-c     :效果类似“-v”参数,但仅回显更改的部分。

-f     :不显示错误信息。

-R     :递归处理,指定目录下的所有文件及其子文件目录一起处理。

-v     :显示指令的执行过程。

这个766是根据以上表格来算出来的,766=rwx rw- rw-

u+x=归属用户+可执行权限

2.1 文件归属者修改 (chown)

命令 chown 用来修改某个文件或者目录的归属者用户或者用户组。

chown  [参数]  [用户名.<组名>]  [文件名/目录]

其中[用户名.<组名>]表示要将文件或者目录改为哪一个用户或者用户组,用户名和组名用“.”隔开,其中用户名和组名中的任何一个都可以省略,命令主要参数如下:

-c     :效果同-v 类似,但仅回报更改的部分。

-f      :不显示错误信息。

-h     :只对符号连接的文件做修改,不改动其它任何相关的文件。

-R     :递归处理,将指定的目录下的所有文件和子目录一起处理

-v      :显示处理过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1.3 Linux文件系统 的相关文章

随机推荐

  • 安装mariadb启动报错

    报错如下 从这里并看不出什么端倪 7月 07 07 08 16 localhost localdomain mariadb prepare db dir 3287 Please check all of the above before s
  • MySQL添加字段和修改字段的方法

    原文地址 http database 51cto com art 201011 234549 htm MySQL添加字段的方法并不复杂 下面将为您详细介绍MySQL添加字段和修改字段等操作的实现方法 希望对您学习MySQL添加字段方面会有所
  • HBase建表函数createTable的几点说明

    HBase建表函数提供了四个重载函数 分别是 void createTable HTableDescriptor desc void createTable HTableDescriptor desc byte startKey byte
  • ctf.show web3

    打开题目 出现提示 php文件 考虑文件包含漏洞 输入参数 url etc passwd 这个报错界面出来了 说明存在文件包含漏洞 构造url值 php input 使用php协议 使用burp抓包 使用ls命令查看php下的文件 得到文件
  • 认认真真推荐几个高质量人工智能方向的优质原创公众号

    人工智能与计算机编程和数学相关性比较大 网络上的资料比较繁杂 想系统的学习人工智能谈何容易 今天给大家推荐9个原创公众号 这些公众号定期会发些高质量原创 希望可以让你更高效的学习 AI有道 一个值得关注的 AI 技术的公众号 作者红色石头是
  • 分布式session的4种解决方案

    分布式session的4种解决方案 1 cookie和session cookie和session都是用来跟踪用户身份信息的会话方式 cookie存储的数据保存在本地客户端 用户获取容易 但安全性不高 存储数据小 session存储的数据保
  • matlab plot三维图形

    偶尔 我们会用到三维图形 目前我所了解的matlab中有三种方式可以实现 分别是scatter plot3和meshgrid 具体用法如下 1 scatter x y z 其中x y z为同纬度的向量 生成的三维图是点的形式 2 x 1 0
  • Simulink单元测试

    本文使用Matlab2018a版本 一 主要使用Simulink中的Analysis下的Test Harness和Test Manager 1 创建Test Harness 前提 有测试模型 1 在测试模型里 直接右击 gt Test Ha
  • Ubuntu 18.04安装CUDA 11.4.0 cuDNN 8.2.2

    CUDA和cuDNN为NVIDIA支持GPU运算以及深度神经网络计算加速的算法库 通常需要安装以支持利用GPU加速神经网络的训练和推理 安装前需要确定主机显卡为NVIDIA显卡 且驱动安装无误 通过nvidia smi查看显卡信息和适合的C
  • 使用pyLDAvis可视化LDA结果,与解决FileNotFoundError: [Errno 2] No such file or directory: ‘https://cdn.jsdel....

    建议安装 pip install pyLDAvis 2 1 2 否则会报错 FileNotFoundError Errno 2 No such file or directory https cdn jsdelivr net gh bmab
  • java math类 平方_Java Math类

    首页 gt 基础教程 gt 常用类 gt 常用 Number Math类 Java Math类 Java 的 Math 包含了用于执行基本数学运算的属性和方法 如初等指数 对数 平方根和三角函数 这些方法基本可以分为三类 三角函数方法 指数
  • 深入理解Java虚拟机jvm-对象如何进入老年代

    HotSpot虚拟机中多数收集器都采用了分代收集来管理堆内存 那内存回收时就必须能决策哪些存 活对象应当放在新生代 哪些存活对象放在老年代中 为做到这点 虚拟机给每个对象定义了一个对象年龄 Age 计数器 存储在对象头中 对象通常在Eden
  • 视频插帧—学习笔记(算法+配置+云服务+Google-Colab)

    恰好碰到同学项目需要 了解了一下关于利用深度学习视频插帧的相关知识 在这里做一个简单的记录 目录 一 方法 论文 1 DAIN Depth Aware Video Frame Interpolation 2 FLAVR Flow Agnos
  • 自己动手实现简易STL

    自己动手实现简易STL STL六个组件 迭代器 算法 容器 迭代器部分 适配器 仿函数 额外的工作 小结 之前学习C 看侯老师的书的时候实现了一下STL的基本组件 包括了6个组件 allocator iterator container t
  • buuctf/re/近日总结/rome,pyre等(详细解释)

    rome 检测到无壳 32位 直接用IDA打开 转到main函数 int func int result eax int v1 4 esp 14h ebp 44h unsigned int8 v2 esp 24h ebp 34h BYREF
  • Pandas方法(未完待续....)

    DataFrame方法参数解释 dropna axis 0 how any thresh None subset None inplace False axis 默认0 0代表行 1代表列 how 有all 或者 any all全部为NA则
  • 体验vSphere 6之1-安装VMware ESXi 6 RC版

    体验vSphere 6之1 安装VMware ESXi 6 RC版 在2015年 各个公司都会发布一系列新的产品 例如Microsoft会发布Windows 10 VMware会发布vSphere 6系列 现在这些产品都已经有了测试版 今天
  • LLVM系列第十六章:写一个简单的编译器

    系列文章目录 LLVM系列第一章 编译LLVM源码 LLVM系列第二章 模块Module LLVM系列第三章 函数Function LLVM系列第四章 逻辑代码块Block LLVM系列第五章 全局变量Global Variable LLV
  • 用 flex 和 瀑布流 解决高度不同的元素浮动导致页面混乱问题

    当元素的高度各不相同并且设置了浮动 页面展示如下 flex布局 瀑布流布局 瀑布流动态加载图片 flex布局 红框所画图片在第一行放不下 属于第二行的元素 但是由于浮动的特性 导致它出现在了这个位置 如果想让它另起一行顶头展示 可以使用fl
  • 1.3 Linux文件系统

    一 Linux文件系统结构 Linux下都是文件 所以没有Windows一样的盘 有的只有文件夹 cd 进入根目录 ls 查看根目录 下的文件及文件夹 bin 存储了很多系统命令 usr sbin 也存储了许多系统命令 sbin 超级用户