Linux文件与权限

路径

绝对路径:绝对路径肯定是从根目录开始写起的,比如/etc/yum
相对路径:相对路径不一定从根目录开始写起,而是相对于当前工作目录而言的相对位置。比如当前位于/etc/yum目录下,那么可以通过cd …/切换到上一层目录

  • 一般情况下,绝对路径的正确性要高于相对路经

目录相关操作

  • cd - 最常用的目录切换命令
    基本用法 cd 目录
特殊的目录:
.           //代表当前目录
..          //代表上层目录
-           //代表之前的目录
~           //代表当前用户的家目录
~account    //account对应的用户家目录
  • pwd - 查看当前所在的目录
    在这里插入图片描述
    pwd有一个可选参数 [-P],它的作用是列出文件真正的目录,以centos7.x中/var/mail为例,如下图:
    首先执行ls -l /var
    在这里插入图片描述
    可以看到mail目录是一个连接目录,最终连接至spool/mail目录,那么在/var/mail目录下执行pwd -P命令可以看到下面的结果:
    在这里插入图片描述
    说明加上[-p]参数之后,会显示真正的目录,而不是连接目录

  • mkdir - 创建目录

可选参数:
m   //直接设置目录的权限
p   //递归创建多级目录
  • rmdir - 删除目录
可选参数:
p - 删除多级目录,值得注意的是,该命令只能删除空目录

文件与目录

文件与目录展示

  • ls - 列出当前文件夹下所有的文件和目录
    该命令默认显示文件或目录名称以及对应的颜色
常用参数(其他参数请自行‘找男人’):
a           //列出所有的文件和目录,包括隐藏文件和目录
l(小写L)     //列出文件属性
  • cp - 复制文件或目录
    命令方式:cp [option] 文件源目录 目标目录
常用参数:
a   //功能相当于-dr,即如果需要复制的目录是连接文件属性,则会复制文件连接属性,而非文件本身
i   //当目标目录中已经存在改文件时,使用该参数,会发起询问是否继续执行操作
r   //递归复制,多用于多级目录的复制
p   //将文件属性一并复制,多用于文件备份
  • rm - 删除文件或目录命令
常用参数:
f   //强制删除,当文件不存在时也不会出现警告信息
r   //递归删除,慎用慎用
i   //交互模式删除,删除时会进一步给出确认信息,询问是否确认删除
  • mv - 移动或更改文件或目录名称
    移动:mv 源 目标
    更名:mv 原名称 目标名称

  • 获取文件名与文件路径
    basename 获取路径最后的文件名或目录名
    dirname 获取文件或目录的上层路径

文件内容查看

查看文件的命令有如下

cat     //从第一行开始显示文件内容
tac     //从最后一行开始显示文件内容,不知有没有注意到,tac就是cat倒过来
nl      //显示内容时同时显示行号
od      //以二进制形式查看文件
tail    //只看末尾几行
head    //只看头几行
more    //一页页显示文件内容
less    //功能与more相似,但是还有一个比较好的功能,less支持向前翻页
  • 直接查看文件内容
  1. cat
常用参数:
b   //显示行号,但是空白行不显示行号
n   //显示行号,空行也会显示对应的行号
A   //列出文件中的所有特殊字符,比如Tab符号、以及结尾$等,相当于 -vET参数的组合
  1. tac
  2. nl
常用参数:
b   (1) -b a:即使为空行,也会为该行添加行号
    (2) -b t:如果为空行,就不加行号
n   (1) -n ln:在屏幕左边显示行号
    (2) -n rn:符号在字段右边显示,且不加0
    (3) -n rz:符号在自己字段显示,加0
w   符号字段所占用的字符数
  • 可翻页查看文件
  1. more
可执行的操作:
空格          //向下翻一页
Enter        //向下翻一行
/字符串       //从文件中查找相应的字符串
:f           //显示文件名及当前显示的行数
q            //立刻退出more,不再显示内容
b或Ctrl+b    //往回翻页,只对文件有效
  1. less
常用的可执行操作:
空格          //向下翻页
pageUp       //向上翻页
pageDown     //向下翻页
/字符串       //向下搜索对应的字符串
?字符串       //向上搜索字符串          
g            //跳转至当前文档第一行
G            //跳转至当前文档的最后一行
q            //退出less
  • 提取文件内容
  1. head -n num //提取当前文档的前num行
  2. tail -n num //提取当前文档的后num行
  • 以二进制形式读取文件

touch命令

Linux中,对于文件而言,有三个时间比较重要

  • mtime - 当文件的内容发生变化时,这个时间就会发生改变
  • ctime - 当文件属性或者权限发生改变时,这个时间会发生变动
  • atime - 当文件被读取时,这个时间会发生变动
    默认情况下,ls操作显示的是mtime,即文件最后一次被修改的时间,当需要更改时间时,可以使用touch命令,touch命令也可以用来创建新的空文件
touch命令常用参数:
a   //仅修改文件访问时间,即atime
m   //仅修改文件内容修改时间,即mtime
d   //指定欲修改的时间字符串,而不使用当前时间,或使用 --date
t   //指定欲修改的时间,而不使用当前时间,格式为【YYYYMMDDhhmm】
c   //仅修改文件时间,如果文件不存在,则不会创建新的文件

##文件预设权限
umask - 预设拿掉那些权限,表示目前用户在创建文件或者目录时的去掉的权限默认值,可以通过以下命令查看
在这里插入图片描述
或者
在这里插入图片描述

  • 新建文件时,默认分配的权限为-rw-rw-rw-
  • 新建目录时,默认分配的权限为drwxrwxrwx
    上面图中umask命令所显示的分数去后三位022,表示需要减掉的权限,当新建文件时,使用默认权限减掉三个分值,也就是user无变化,group和other均减去2(也即写权限),所以新建文件时的默认权限应该是-rw-r–r--,下面来验证一下,新建一个文件test1
    在这里插入图片描述
    新建目录同理,不多赘述。
    可以使用umask 三位数分值来设定默认文件或目录权限,比如umask 022

文件隐藏权限

因为文件的隐藏权限操作命令chattr以及lsattr命令只有在Ext2/Ext3/Ext4文件系统中才会完全生效,centos7系统采用xfs文件系统不能完全支持,所以不在此叙述,有兴趣可以自行百度

指令与文件搜索

  • which - 脚本文件名搜索
  • whereis - 文件或目录搜索
  • locate - 通过关键字查找目录或文件名
    注:部分centos7.x系统可能不存在locate命令,在下的就没有,可以直接使用下面的命令安装
yum install mlocate
常用参数:
i   //忽略大小写进行搜索
c   //只列出搜索到结果的数量,不会列出搜索结果的所在目录
S   //列出locate命令所使用的数据库信息,关于这个数据库会在下面做一下解释
l   //指定搜索结果的数目,比如 locate -l 3 pass 会只列出三条文件或目录名与pass*匹配的记录

locate命令之数据库:
locate命令之所以查询速度快,是因为它自己维护了一个数据库,可以使用locate -S查看:
在这里插入图片描述
默认更新这个数据库的频次为一天,如果搜索新建立的文件可能搜索不到,是因为还没有将新建文件的信息更新至数据库,可以手动执行下面命令更新数据库

updatedb

##特殊文件权限

  • SUID
    当执行如下命令时,可以看到下面的结果
ll /usr/bin/passwd

在这里插入图片描述
可以看到这个文件拥有者的可执行权限被替换成了s,这时就成为Set UID,简称做SUID,这一权限有下面几个限制与功能
* 只对二进制可执行文件起作用,对目录没有作用
* 只在文件执行时起作用
* 执行者对于该文件需要有可执行权限
* 在改权限起作用时,文件的执行者可以具有root的权限
借用书中的案例,难道只有root用户才能修改其他非root用户的密码吗,当然不是,那root就掌握着所有人的生杀大权了。我们知道,所有用户的用户名密码信息是保存在/etc/shadow文件中的,这个文件只有root可以读取并强制修改,其权限为----------,但是/usr/bin/passwd对于其他用户是可执行的,而且具有SUID权限,而且这个文件的作用就是用来修改密码或用户名信息的,当其他用户在执行这个文件的时候,因为具有SUID权限,所以执行时,会暂时获得到root用户的权限,从而完成密码等信息修改

  • SGID
    功能和SUID相似,只是在执行时会获取文件所属组的权限,综合来说,SGID权限有下面的限制与功能:

    • SGID只对二进制可执行文件起作用
    • 可执行文件的执行者需拥有该文件的可执行权限
    • 在该权限起作用时,会获得该程序组的权限
  • SBIT
    只对目录有效,对于目录来说有下面的作用:

    • 当用户对目录具有写入权限时,在该目录下建立文件或目录后,只有root用户可以执行删除操作
  • 设置特殊权限
    有种方式可以设置特殊权限

  1. 数字方式
    4 - SUID
    2 - SGID
    1 - SBIT
    当设置权限时,需要在对应的一般权限前加上需要设置的特殊权限数字代码,例如
    chmod 4755 filename,需要注意,对文件设置特殊权限的前提是,用户需要对该文件有可执行权限,否则,就是S或者T,即权限为空
  2. 字母方式
    方式类似于设置其他权限
    设置SUID - u+s
    设置SGID - g+s
    设置SBIT - o+t

第六章文件与权限部分的内容概括为以上的内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值