第六章 文件管理

第六章 文件管理

  1. 文件:文件系统中储存数据的一个命名对象,它是用户眼中储存文件的最小单元。
    目录:包含许多文件控制块项目的一类特殊文件,文件系统中每个文件都登记在一个或多个目录中
    子目录:背包含在另一目录中的目录,除根目录外所有目录都是子目录,有父目录存在,目录的主要作用是和文件名构成路径。

  2. Linux系统中所有文件都被组织成以根目录开始的倒置树状结构,文件系统按名访问

  3. 绝对路径:从根目录写起的文件或目录名
    相对路径:相对于当前路径的文件或目录名

  4. 文件命名:

    • 除了字符“/”之外,所有字符都可以使用
    • 目录或文件名长度不能超过255个字符
    • 文件或目录名区分大小写
    • 文件拓展名对Linux系统没有含义
    • 文件或目录名以“.”开始说隐藏文件
  5. Linux硬件设备文件名称

    硬件设备文件名称
    IDE设备/dev/hd[a-d]
    SCIS/SATA/U盘/dev/sd[a-p],a-p表示十六块不同的硬盘
    软驱/dev/fd[0-1]
    打印机/dev/lp[0-15]
    光驱/dev/cdrom
    鼠标/dev/mouse
    磁带机/sev/st0或/dev/ht0
  6. 文件是Linux处理信息的基本单位,所有文件都有两部分组成,数据项和文件控制块(引索节点)
    引索节点(I节点):在文件系统结构中引索节点负责记录相应文件的控制信息,包括文件权限、大小等
    数据:文件的实际内容,有自己的结构

  7. 文件分类:(无结构文件、有结构文件)

    • 普通文件:最常见的文件,不包含文件系统的结构信息,按其内部结构可分为文本文件和二进制文件
    • 目录文件:用于存放文件名及其相关信息的文件,它是内核组织文件系统的基本节点
    • 链接文件:实际是指向真实文件的链接,类似于Windows的快捷方式,可细分为软链接和硬链接
    • 设备文件:为外部设备提供一种标准接口的文件,可以帮助Linux适应不断发展的硬件,可分为块设备和字符设备
  8. 文件操作命令

    • cat命令
      用来显示文本文件的内容,也可以把几个文件内容附加到另一个文件中,即连接、合并文件,全称是concatenate

      基本格式:cat [选项] 文件名cat 文件1 文件2 > 文件3

      -n:对输出的所有行进行编号

      -b:对输出的所有非空行行进行编号

      -s:当遇到连续两个2行以上的空白行时,就替换为一行的空白行

      cat不论文件有多少内容都直接一次性显示

    • more命令
      分页显示文本文件中的内容

      基本格式:more [选项] 文件名

      -c或-p:不滚屏,先清屏后再显示内容

      -s:当遇到连续两个2行以上的空白行时,就替换为一行的空白行

      +n:从第n行开始显示文本内容,n代表数字

      -n:一次显示的行数,n代表数字

    • head命令
      显示指定文件前若干行的内容

      基本格式:head [选项] 文件名

      -n k:这里的k表示行数,该选项用来显示文件前k行的内容,不设置默认十行

      -c k:这里的k表示字节数,该选项用来显示文件前k个字节的内容

      -v:显示文件名

    • tail命令
      查看文末的数据

      -n k:这里的k表示行数,该选项用来显示文件最后k行的内容,不设置默认十行,可省略n

      -c k:这里的k表示字节数,该选项用来显示文件最后k个字节的内容

      -f:输出文件变化后新增加的数据,终止使用Ctrl+C

    • touch命令
      创建文件修改文件时间参数

      Linux中每个文件拥有三个时间参数,可用stat命令查看

      • 访问时间时间(atime):只要文件内容被读取,访问时间就会更新
      • 数据修改时间(mtime):当文件内容发生变化,时间就会相应改变
      • 状态修改时间(ctime):当文件状态发生改变,时间就会相应改变

      基本格式:touch [选项] 文件名

      -a:只修改文件的访问时间

      -c:修改文件时间参数(三个),如果文件不存在,则不建立新文件

      -m:只修改文件的数据修改时间

      -t:按欲修改时间,而不用当前时间,时间格式为YYYMMDDhhmm

      touch可用只修改文件的访问时间和文件的数据修改时间,但是不能修改状态时间,因为状态时间会随之变化

    • grep命令
      在一个或多个文件中,搜索某一特定的正则表达式,含有该表达式的行会被打印
      正则表达式特殊字符含义:

      特殊字符含义
      c *将匹配0(空白)个或多个字符c
      .将匹配任何一个字符,且只能是一个字符
      [xyz]匹配方括号中的任意一个字符
      [^xyz]匹配除方括号以外的所有字符
      ^行首定位符
      $行尾定位符

      基本格式:grep [选项] 模式 文件名

      -F:将查找模式解释为单独字符串

      -E:将查找模式解释为正则表达式

      -c:仅列出文件包含模式的行数

      -i:忽略模式中的大小写

      -n:在每一行最前面列出行号

      -v:列出没有匹配模式的行

    • sed命令
      自动编辑一个或多个文件,化简文件反复操作

      基本格式:sed [选项] sed命令 文件名

      -n:只显示匹配处理的行(否则会输出所有)

      -e:执行多个编辑命令时使用(一般用;代替)

      -i:直接在文件中进行修改而不是输出到显示器

      -r:支持拓展正则表达式

      sed常用编辑命令

      p:打印匹配行'2,3p'

      d:删除指定行

      a:在匹配行后追加

      i:在匹配行前插入

      c:整行替换

      r:读取文件内容

      w:将文本写入文件

      s:字符串替换's /字符串1/字符串2'

    • awk命令
      格式化文本,对文本进行较复杂的格式处理

      它会自动给一行中的每个数据元素分配一个变量,在默认情况下:

      $0:代表整行文本

      $1:代表文本行中的第1个数据字段

      $n:代表文本行中的第n个数据字段

      awk的默认分隔符时空格,可以用-F自定义分隔符

      基本格式:awk [选项] '匹配规则{执行命令}'

      执行多条命令时使用;分开

      下面是两个使用过程中的例子BEGIN和END:

      #BEGIN命令
      cat file
      Line1
      Line2
      Line3
      awk 'BEGIN {print"the file contents:"}>{print $0}' file
      the file content
      Line1
      Line2
      Line3
      #END命令
      awk 'BEGIN {print"the file contents:"}>{print $0}END{end of file}' file
      the file content
      Line1
      Line2
      Line3
      end of file
      
    • cp命令
      用来复制文件和目录

      基本格式:cp [选项] 源文件 目标文件

      -a:相当于-d、-p、-r选项的集合

      -d:如果文件为软连接,则复制出的目标文件也为软连接,正常情况复制的是链接文件

      -i:询问,如果目标文件已存在,则询问是否覆盖

      -l:把目标文件建立为源文件的硬链接而不是复制文件

      -s:把目标文件建立为源文件的软链接而不是复制文件

      -p:复制后文件保留源文件的属性(所有者,组,权限,时间)

      -r:递归复制,用于复制目录

      -u:若目标文件与源文件有差异,则使用该选项可更新目标文件

    • rm命令
      删除文件和目录

      基本格式:rm [选项] 文件级或目录

      -f:强制删除,系统将不在询问直接删除

      -i:在删除前询问,给出提示信息

      -r:递归删除,主要用于删除目录

    • mv命令
      移动或重命名文件

      基本格式:mv [选项] 源文件 目标文件

      -f:强制覆盖,如果目标文件已存在,则不询问,直接强制覆盖

      -i:交互移动,如果目标文件已存在,则询问是否覆盖

      -n:如果目标文件已存在,则不会覆盖,也不会问用户

      -v:显示文件或目录的移动过程

      -u:若文件已存在,源文件更新,对目标文件进行升级

    • sort命令
      排序命令,从首字符向后依次按照ASCII码值进行比较,最后将他们升序输出

      基本格式:sort [选项] 文件名

      -f:忽略大小写

      -b:忽略每行的空白部分

      -n:以数值型进行排序,默认使用字符串进行排序

      -r:反向排序

      -u:删除重复行,就是uniq

      -t:指定分隔符,默认分隔符是制表符

      -k [n,m]:按照指定的字段范围排序,从第n个字段开始到第m个字段结束

    • wc命令
      统计命令

      基本格式:wc [选项] 文件名

      -l:只统计行数

      -w:只统计单词数

      -m:只统计字符数

  9. 目录操作命令

    • mkdir命令
      用于创建新目录的命令

      基本格式:mkdir [选项] 文件名

      -m:用于手动配置所用权限,而不再使用默认权限

      -p:递归创建所有目录

    • rmdir命令
      用于删除空目录

      基本格式:rmdir [选项] 文件名

      -p:递归删除空目录

    • cd命令
      切换工作目录,内部命令

      基本格式:rmdir 相对路径或绝对路径

      cd的特殊符号

      特殊符号作用
      ~当前所登陆用户的主目录
      -代表上次所在目录
      .代表当前目录
      代表上级目录
    • pwd命令
      显示当前目录完整路径

      基本格式:pwd

    • ls命令
      显示当前目录下的内容

      基本格式:ls [选项] 目录名称

      -a:显示全部文件,包括隐藏文件

      -A:显示全部文件,连同隐藏文件,但不包括".“和”…"这两个目录

      -d:仅列出目录本身,而不列出目录内的文件数据

      -f:直接列出文件,不进行排序

      -F:在文件或目录后加上文件类型的指示符号"*“表示可运行文件,”/“表示目录,”=“表示socket文件,”|"表示FIFO文件

      -h:以易读的方式显示文件目录或大小

      -i:显示inod信息

      -l:使用长格式列出文件和目录信息

      -n:以UID和GID分别代替文件用户名和群组名显示出来

      -r:将排序结果反向输出

      -R:连同子目录一起列出来,即列出该目录下所有文件

      -S:以文件容量大小排序

      -t:以时间排序

      -color=never:表示不依据文件特性基于颜色

      -color=always:表示显示颜色,ls默认这种方式

      -color=auto:表示让系统自行依据配置判断是否给予颜色

      –full-time:以完整时间模式输出(包含年月日时分)

      –time={atime,ctime}:输出访问时间或状态修改时间

    • ln命令
      链接命令

      ext文件系统分为两大部分:索引信息(inode)和数据块信息(block)
      索引信息(inode):默认大小128字节,用来记录文件的权限、所有者、属组、文件大小、状态修改时间、访问时间、数据修改时间、文件block编号,每个文件都有一个inode,不记录文件名
      数据块信息(block):默认为4KB,储存满可占用多个block,可以分散也可以连续

      每个文件都独自占有一个inode文件内容有inode的记录来指向;如果向要读取文件内容,就必须借助目录中记录的文件找到该文件的inode,才能呢成功找到文件所在的block

      硬链接:给一个inode分配多个文件名,通过任何一个文件名,都可以找到此文件的inode从而读取文件信息

      软链接:类似于Windows的快捷方式,产生一个特殊文件来指向另一个文件

      基本格式:ln [选项] 源文件 目标文件

      -s:创建软链接文件

      不加-s:创建硬链接文件

      硬链接的特点:

      • 不论修改源文件还是链接文件,另一个的数据都会发生改变
      • 不论删除源文件和链接文件,另一个都还可以被访问
      • 硬链接不会新建新的inode信息,也不更改inode总数
      • 硬链接不能跨文件系统建立,不同文件系统的inode是重新计算的
      • 硬链接不能链接目录

      软链接的特点:

      • 修改源文件,链接文件数据都会发生改变
      • 删除软链接,原文件不受影响,删除源文件,软链接显示文件不存在
      • 软链接会创建自己的inode和block,但是block不储存实际数据,存储源文件的文件名和inode号
      • 软链接可以链接目录
      • 软链接可以跨分区
  10. 权限位

    drwxr-x--- 4 root root 4096 Sep 24 00:07
    -rw------- 1 root root  955 Sep 24 00:08 .bash_history
    

    第一列:文件类型和不同用户的权限

    第1个字符:
    -:普通文件

    d:目录

    l:链接文件

    b:块设备文件

    c:字符设备文件

    第2、3、4个字符:所有者权限

    第5、6、7个字符:所属组权限

    第8、9、10个字符:其他人权限

    (r:读,w:写,x:执行)

    第二列:链接数该文件的硬链接个数

    第三列:文件所有者

    第四列:文件组

    第五列:文件大小

    第六列:文件修改时间

    第七列:文件名或用户名

    rwx权限对文件的作用

    权限对文件作用
    r可读取文件中的实际内容
    w可编辑、新增、修改文件内容;写权限不赋予用户删除的权力,除非用户对上级目录有写选项
    x文件被系统执行的权限

    rwx权限对目录的作用

    权限对文件作用
    r可读取目录结构列表的权限
    w可删除、改名、移动等;
    x用户可以进入目录
  11. 修改权限位的命令

    • chmod命令

      基本格式1:chmod 权限值 文件名

      r=9,w=2,x=1,权限值为三者相加

      -R:连同子目录权限一同修改

      基本格式2:chmod u/g/o/a +/-/= r/w/x 文件名

      u所有者,g所属组,o其他用户

      +添加权限,-删除权限,=设定权限

    • umask命令

      umask默认值0022,第一个0代表文件特殊权限

      文件初始权限=文件最大默认权限-umask权限

      基本格式:umask 遮掩权限值

    • chown命令

      修改所有者命令

      基本格式1:chown 所有者 文件或目录

      基本格式2:chown 所有者:所属组 文件或目录

      -R:连同子目录权限一同修改

    • chgrp命令

      修改所属组命令

      基本格式1:chown 所属组 文件或目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值