1.3 Linux文件系统

一、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      :显示处理过程。

本文作者:烟儿公主

本文链接:https://www.cnblogs.com/toutiegongzhu/p/17550408.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   烟儿公主  阅读(181)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 夏日大冒险 暴躁的兔子
夏日大冒险 - 暴躁的兔子
00:00 / 00:00
An audio error has occurred.

作词 : 暴躁的兔子

作曲 : 暴躁的兔子

编曲 : IOF

混音:Gfanfan

出品:网易飓风

夏天 不要再浪费时间

实现 你承诺过的改变

别再 找一堆借口拖延

现在就和我一起飞向海边

人生苦短 你应该学会如何作乐

低着头还怎么应对挫折

人应该为自己活着

不用去迎合

要去寻欢作乐

撮合我的浪漫和悲欢

把这荒诞人生都塞满

生活难免磕磕绊绊

对抗生活的平庸就是浪漫

学会取悦自己逆风翻盘

去反抗变态的三观

把条条框框都砸烂

建立新的规则推翻谈判

无可救药的人呐

和我一起去海边

看那日出和晚霞 海天一线

看阳光穿越地平线

现实交织的明天

就在这个夏天

为自己改变

别怕山高路远

去冒险

我真的不care你是否会喜欢我

不跟风被定义的美 全都是灾祸

我才不讨好大多数绝不与示弱

过好你的生活

你管我应该怎么快活

没有人能有资格审判

别人的生活和牵绊

快闭上你的高谈阔论

乘风破浪吧 理想的风帆

我就是肆意张扬又如何

我就是锋芒毕露又如何

我就是离经叛道又如何

我就是要出格 你管我要如何

我就是与众不同又如何

我就是特立独行又如何

我就是不知好歹又如何

你管我怎样出格 你管我如何

无可救药的人呐

和我一起去海边

看那日出和晚霞 海天一线

看阳光穿越地平线

现实交织的明天

就在这个夏天

为自己改变

别怕山高路远

不知进退的人呐

和我一起去海边

聊聊曾经的理想 一起想当年

那曾想改变世界的人

是否还满腔热忱

不羁的我们放肆着

反抗那命运的指针

解放灵魂

推广:网易飓风

企划:贾焱祺

监制:徐思灵

出品人:谢奇笛