【Linux】Linux系统下的文件

文章目录

  • 1、文件类型
  • 2、文件权限
    • 修改文件权限
      • (1)文字设定法
      • (2)数字设定法
    • 修改文件的属组
    • 修改文件属主
  • 3、文件操作
    • (1)查看文件
    • (2)创建文件
    • (3)删除文件
        • 删除普通文件
        • 删除目录文件
    • (4)文件复制与重命名
  • 4、打包、压缩与解压
    • (1)打包
    • (2)压缩


1、文件类型

Linux上一切皆文件

表示符号 文件类型 说明
d 目录文件
p 管道文件 进程间通讯
l 连接文件 Windows上的快捷方式
  设备文件 块设备( b )、字符设备( c )、套接字( s )
- 普通文件 其他不属于上面四个的文件都属于普通文件

2、文件权限

【Linux】Linux系统下的文件_第1张图片

以上图中文件访问权限为例,前三个为属主权限(u)、中间三个为属组权限(g)、最后三个为其他访问权限(o)。要注意的是,这三个权限的位置不会改变。

其中:

  • r :读权限
  • w:写权限
  • x:
    普通文件为可执行文件
    目录文件为可进入权限
  • -:无权限

修改文件权限

(1)文字设定法

  • 文字设定法:我们可以使用u、g、o来代表三种身份的权限,此外, a 则代表 all,即全部的身份。
    【Linux】Linux系统下的文件_第2张图片
  • 例如:
    如果我们需要将文件权限设置为 -rwxr-xr-- ,
    可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定。

(2)数字设定法

【Linux】Linux系统下的文件_第3张图片
3个n,一个对应一个用户权限。

  • 例如:chmod 777
    就是将所有用户权限都设为rwx。

修改文件的属组

sudo chagrp 属组名 文件名

【Linux】Linux系统下的文件_第4张图片

修改文件属主

sudo chown 属主名 文件名

【Linux】Linux系统下的文件_第5张图片

  • 同时修改属主和属组
sudo chown 属主名:属组名 文件名

【Linux】Linux系统下的文件_第6张图片
如果是目录文件:

sudo chown -R 属主名:属组名 文件名

【Linux】Linux系统下的文件_第7张图片

3、文件操作

(1)查看文件

  • ls [路径]:显示指定路径下的内容(不加路径默认显示当前目录的内容)
    • ls -a:显示所有的文件(包括隐藏文件(文件名是以“.”开头的文件)
    • ls -i:显示文件的inode节点号
    • ls -l:显示文件更多的属性信息
    • ls-a: 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
    • ls-l :除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
    • ls-r: 将文件以相反次序显示(原定依英文字母次序)
    • ls-t :将文件依建立时间之先后次序列出
    • ls-A :同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
    • ls-F :在列出的文件名称后加一符号;例如可执行档则加 " * ", 目录则加 " / "
    • ls-R :若目录下有文件,则以下之文件亦皆依序列出
      【Linux】Linux系统下的文件_第8张图片

(2)创建文件

touch + 文件路径/文件名  创建普通文件    
//文件路径:可以是相对路径也可以是绝对路径
mkdir + 目录路径/目录名  创建目录文件

(3)删除文件

删除普通文件

rm +  文件路径/文件名  删除普通文件

删除目录文件

  • -f, --force 忽略不存在的文件,从不给出提示。
  • -i, --interactive 进行交互式删除
  • -r-R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
  • -v, --verbose 详细显示进行的步骤
  • --help 显示此帮助信息并退出
  • --version 输出版本信息并退出

删除空目录

rmdir + 目录路径/目录名
rm -r  +目录路径/ 目录名      -r 是rm的参数

删除非空目录

rm -r  +目录路径/ 目录名

注意rm -rf * 禁用 rm -rf /*

(4)文件复制与重命名

复制粘贴

cp [路径]+[文件名称] [新路径]//普通文件
cp -r [路径]+[目录名称] [新路径]	//目录文件
  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

移动文件或者重命名使用mv

mv [路径]+[文件名称] [新路径]
  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

 

 

4、打包、压缩与解压

  • Linux系统下的压缩文件:.tar.gz或者.tgz
  • 我们使用tar进行打包或者解包。使用gizp进行文件压缩。

(1)打包

将文件打包或者解包

  • c 创建包文件
  • f 指定目标为文件而不是设备
  • v 显示详细过程
  • t 显示包中的内容而不释放
  • x 释放包中的内容
  • z GNU 版本新加的,使得 tar 有压缩和解压的功能

打包过程:
【Linux】Linux系统下的文件_第9张图片
解包过程:
【Linux】Linux系统下的文件_第10张图片
一步打包压缩与压缩包一步解压的过程:
【Linux】Linux系统下的文件_第11张图片

(2)压缩

下图为 gzip 压缩的过程:
【Linux】Linux系统下的文件_第12张图片
下图为 gzip 解压的过程:
【Linux】Linux系统下的文件_第13张图片

下图为 tar 对 xxx.tgz 或 xxx.tar.gz 压缩包一步解压的过程:
【Linux】Linux系统下的文件_第14张图片

 

 

 

 

 

 

 

 

补充一些常用操作命令

1、find命令

  • -mount, -xdev: 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件。
  • -amin n: 在过去 n 分钟内被读取过。
  • -anewer file: 比文件 file 更晚被读取过的文件。
  • -atime n: 在过去n天内被读取过的文件。
  • -cmin n: 在过去 n 分钟内被修改过。
  • -cnewer file: 比文件 file 更新的文件。
  • -ctime n: 在过去n天内被修改过的文件。
  • -empty: 空的文件
  • -gid n or -group name : gid 是 n 或是 group 名称是 name。
  • -ipath p, -path p: 路径名称符合 p 的文件,ipath 会忽略大小写。
  • -name name, -iname name: 文件名称符合 name 的文件。iname 会忽略大小写。
  • -size n: 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
  • -type c: 文件类型是 c 的文件。
    • d: 目录文件
    • c: 字型装置文件
    • b: 区块装置文件
    • p: 具名贮列
    • f: 一般文件
    • l: 符号连结
    • s: socket

find命令常见用法

  • find . -name test 查找当前路径下文件名为test的所有文件
  • find . -type f -name test 查找当前路径下类型为一般文件,文件名为test的文件

更多请点击:Linux中find命令用法大全

2、grep命令

grep命令就是在文件中过滤出包含指定字符串的行

-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --revert-match : 显示不包含匹配文本的所有行。
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。

例如:

  • 求 c.txt文件中含有字符串“hello”的行 不区分大小写
    grep -i "hello" c.txt

  • 求 c.txt文件中含有字符串“hello”的行数 不区分大小写
    grep -c -i "hello" c.txt

3、管道 |

A进程将执行的结果输出到管道中,B进程再将其从管道中读出来。

将前一个命令的输出结果作为后一个命令的输入。进程间通讯的一种方式。

例如:

  • 展示出该目录下含有“sh"的文件
    ls | grep sh

你可能感兴趣的:(Linux,linux)