文件

基本概念

linux将文件可读写的身份分为三个类型分别是:用户(owner)、所属群组(group)、其他人(others),且三种身份各有读、写、执行等权限

用户和用户组

linux是一个多人多任务的系统,为了保证个人的隐私权,所以文件属于那个用户很重要,用户组就是多个用户组成一组,组内用户可以查看组内的文件,但是其他组的用户就不能查看

文件的权限

使用 ls -al 命令可以查看文件的详细信息
image.png

从左到右依次代表:权限,链接数,文件拥有者,文件所属用户组,文件大小,修改日期,文件名 注:文件名前面带了一点的文件是隐藏文件

权限详解

权限代码的组成有十个字符,其中第一个字符代表文件的类型(目录,文件,链接文件等)详细如下:

  • 为【d】则是目录
  • 为【-】则是文件
  • 为【|】则是链接文件

    以上三种是最常见的类型,还有c(端口设备),b(周边设备)等

接下来的字符中,以三个字符为一组,且均是 rwx 的三个字母组成,详细如下:

  • r 代表的是可读read
  • w 代表的是可写
  • x 代表的是可执行权限(注:x在类型是目录时,没有x权限是不能进入目录的)

文件权限的组合字母位置是不会变的,若无此权限则对应的字母用 - 代替

注意:第一组代表文件拥有者的权限,第二组代表同一用户组的权限,第三组代表其他人的权限

修改文件属性于权限

  • chgrp 修改文件所属的用户组
  • chown 修改文件拥有者
  • chmod 修改文件的权限

    chgrp

    注意:修改的用户组一定需要在 /etc/group下面存在的用户组才可以
  1. //用法
  2. chgrp groupname filename

chown

修改文件的拥有者和修改用户组的使用差不多

  1. // 用法
  2. chown 账号名称 文件/目录

chmod

修改文件权限的命令是 chmod 但是方式有两种,一种是用数字,另一种是使用符号

数字的方式

每一个权限符号对应的数字如下:

  • r : 4
  • w : 2
  • x : 1

在设置每一类用户的权限的时候需要将它们的权限值进行相加,例如:
-rwxrwx--- 权限,文件的拥有者的权限值的总和是:4+2+1=7,同一用户组下的用户权限值:4+2+1=7
其他用户的权限则是:0+0+0=0,🆗,理解这个之后问题来了,当我们需要将其他用户的权限修改为 rwx 时,我们可以这样做:

  1. chmod 777 文件名

符号的形式

个人看法:相对数字的方式修改用户对文件的权限符号的方式显得不是很方便

因为使用符号的方式需要指定用户类型,所以Linux使用:u,g,o,a代表不同的用户类型

  • u 代表文件拥有者
  • g 代表同一组下的用户
  • o 代表其他用户
  • a 代表所有类型用户

命令的使用方式如下:

  1. chmod u=rwx,g=rw,o=r 文件名
  2. // 这条命令的作用就是设置文件拥有者的权限是 rwx,同一组的用户的权限是 rw,其他用户的权限是 r

也可以使用a,给所有用户的加上相同的权限

+,-的用法

+的作用就是增加一个权限,-的作用就是减少一个权限

Linux的目录

相对路径和绝对路径

绝对路径是指从根目录 / 写起的路径如:/etc/…
相对路径则是指不是从根目录写起的路径

几个特殊目录

  • . 一个点代表此层目录
  • .. 两个点代表上一层目录
    • 代表前一个工作目录
  • ~ 代表目前使用者的家目录
  • ~wen 代表wen这个用户的家目录

常见的几个目录有关的命令

  • cd 切换目录
  • ls 文件与目录的查看
  • pwd 显示当前目录
  • mkdir 建立一个新目录
  • rmdir 删除一个空目录

    rmdir不能删除不为空的目录,若需要则使用 rm -rf

复制、删除与移动文件

  • cp 复制文件
  • rm 删除文件
  • mv 移动文件

    cp的参数

    命令的格式
  1. cp 参数 源文件 要复制到的文件
  • -a
  • -i 若目标文件已存在,在覆盖时会先询问操作的进行
  • -p 连同文件的属性(权限,用户,时间)一起复制过去,而非使用默认属性
  • -r 递归复制,用于目录的复制操作

列出常见的几个(还有几个没列出)

cp命令使用很重要,其实也很复杂,这里只是简单的了解

rm的参数

命令的格式

  1. rm 参数 文件或目录
  • -f 忽略不存在的文件不会出现警告信息
  • -i 交互模式,在删除前询问使用者是否操作
  • -r 递归删除,常用于目录删除(危险选项)

    文件内容的查看

  • cat 直接查看文件内容

  • tac 从最后一行开始直接查看内容
  • nl 显示的时候同时输出行号
  • more 一页一页的显示文件内容,不会一下都显示出来很友好
  • less 和more类似,但是更好的是可以向前翻页
  • head 只看前几行
  • tail 只看后几行
  • od 以二进制的方式读取文件

文件查找和文件内容的查询

文件内容查找

通常使用 grep 命令,可以通过一些正则表达式来检索到需要查找的内容

  • -b
  • -c
  • -i
  • -h
  • -l

文件查找

find 命令,该命令的功能是在指定的目录开始,搜索它的所有子目录,查找满足条件的文件

格式
find [option] filename

文件与目录的默认权限与隐藏权限

Linux中新建一个文件或目录时会有默认权限,这个默认的权限就和 umask 有关了。可以查看,具体默认值在下面
查看默认权限

  1. // 两种方式,一是直接查看,而是加上-S的参数
  2. umask
  3. umask -S

一般(没有除去umask)默认情况如下
如果是新建文件则是: -rw-rw-rw- 最大666
如果是新建文件夹则是: drwxrwxrwx 最大777
最后除去umask的默认值是:
比如 umask = 022
则代表 user 不用减权限, group 被减掉了 w 权限, others 被减去了 w 权限。得到最终的权限是: -rw-r--r--

理解为 -rw-rw-rw- 减去 ——-w—w-

tar包和压缩

tar 命令可以将许多的文件打包成一个归档文件(tar包),和压缩不一样

  • -c 创建新的tar包
  • -f 指定包名
  • -x 还原tar包
  • -t 列出tar包中的内容
  • -v 显示指令执行过程
  • -z 使用gzip压缩
  • -j
  • -C

创建一个tar包

  1. tar -cf etc.tar /etc
  2. # 注意命令后面接的目录是你需要打包的目录

查看包的内容

  1. tar -tf etc.tar

还原tar包

  1. tar -xf etc.tar