Linux私房菜学习笔记02_Linux文件目录管理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43707160/article/details/100048944

目录与路径

  1. 绝对路径:由根目录写起
  2. 相对路径:相对于当前工作目录的路径

ps:写Shell脚本时,务必使用绝对路径

  • 特殊目录
符号 描述
. 代表该层目录
两个点 代表上一层目录
- 代表前一个工作目录
~ 代表目前使用者身份所在的家目录
~{account} 代表{account}这个使用者的家目录
  • 处理目录的命令
命令 描述
cd 切换目录
pwd 显示当前目录
mkdir 创建一个新目录
rmdir 删除一个空目录
1. pwd -P ,显示真正的路径,不显示链接文件的路径
2. mkdir -m,直接设置文件的权限,不使用默认权限(umask),ex: mkdir -m  775 test
3. mkdir -p , 递归创建所需目录, ex: mkdir -p /usr/local/test1/test2/test3 
4. rmdir -p, 连同上层空的目录也一起删除,rmdir只能删除空目录
  1. 环境变量 PATH
  • 不同身份用户默认的PATH不同,默认随意执行的命令也不同
  • 使用绝对路径或相对路径直接指定某个命令的文件名来执行,比查找PATH更准确
  • 本目录(.)最好不要放到PATH中

文件与目录管理

  1. cp -a|-p , 可将文件的所有特性一起复制
  2. cp -u 源文件 目标文件,当源文件与目标文件有差异时,才进行复制
  3. basename 文件路径,获取该路径中的文件名
  4. dirname 文件路径,获取该路径中的目录名

文件内容查看

命令 描述
cat 由第一行开始显示文件内容
tac 从最后一行开始显示
nl 显示时,同时输出行号
more 一页一页显示文件内容
less 与more相似,但可往前翻页
head 只看前几页
tail 只看后几行
od 二进制方式读取文件内容
  1. tail -n +num , ex : tail -n +100 只显示100行以后的

  2. head -n -num , ex : head -n -100 ,代表列出前面所有的行数,但不显示最后100行

  3. 显示10到20行: head -n 20 {文件名} | tail -n 10

  4. 文件记录的时间参数

  • 修改时间(modification time):当该文件的内容数据(指文件的内容,并非文件属性和权限)变更时,更新该时间
  • 状态时间 (status time):当该文件的状态(例如权限和属性)改变时,更新该时间
  • 读取时间(access time):当该文件的内容被读取(当文件被读取一次,就会更改一次),更新该时间
  1. 修改文件时间或创建新文件:touch
  • 修改时间
    1. touch -a {文件},仅自定义读取时间
    2. touch -c ,进修改文件时间,文件不存在不建新文件
    3. touch -d ,其后可接自定义的日期
    4. touch -m , 仅修改 modification time
    5. touch -t , 其后可接自定义的时间

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

  1. umask:指定当前用户在建立文件或目录时的权限默认值
  • umask 的数字 指的是该默认值需要减掉的权限
  1. 文件隐藏属性
  • chattr命令只能在ext2、ext3、ext4的linux传统文件系统上完整生效,xfs只支持部分属性
  • xfs系统中支持,chattr [+-=] [AadiS] {文件或目录}
    1. 【+】:增加某个特殊参数
    2. 【-】:删除某个特殊参数
    3. 【=】:直接设置参数
    4. A :在设定了该参数的文件或目录进行存取时,存取时间不会被修改
    5. a :设定了该参数的文件只能增加数据,不能删除和修改数据,只有root可设置该属性
    6. d :设定了该参数的文件或目录不会被dump 备份
    7. i :可让一个文件不能被删除、改名、设置链接、无法写入或新增数据,只有root才能设置该属性
    8. S:当进行任何问价你修改,该修改都会同步写入磁盘中
  • lsattr:显示文件隐藏属性,lsattr [-adR]
    1. -a :将隐藏文件的属性显示
    2. -d :若后接目录,仅列出目录本身的属性
    3. -R: 连同子目录的数据也一并列出来
  1. 文件特殊权限
  • Set UID
    在这里插入图片描述

    1. 当s出现在文件拥有者的可执行权限位置上时,SUID的限制与功能:

       1.SUID权限仅对二进制程序有效,不能用在shell脚本上,对于目录无效
       2.执行者对该文件需具有可执行权限
       3.本权限仅在执行该程序的过程中有效
       4.执行者将具有该程序拥有者的权限
      
  • Set GID

    1. 当s 出现在文件用户组的可执行权限位置上,SGID可针对文件或目录设置,

    2. 针对文件来说,SGID的功能:

       1. SGID对二进制程序有用
       2. 程序执行者需对该程序具有可执行权限
       3. 执行者在执行过程中将会获得该程序用户组的支持
      
    3. 针对目录来说,SGID的功能:

      1. 用户若对该目录具备 r、x权限,则可进入该目录
      2. 用户在该目录下的有效用户组将变为该目录的用户组
      3. 用途:若用户在该目录下具备w权限,则在该目录下创建的新文件的用户组与该目录的用户组一致
      
  • Sticky Bit

    1. 仅对目录有效,SBIT对目录的功能:

      1. 当用户对该目录具备w、x权限,即具有写入的权限
      2. 当用户在该目录下创建新文件或目录,仅自己和root可删除该文件
      3. 用户仅可删除、更名、移动自己的文件,不能改动其他人的
      
  • SUID/SGID/SBIT权限设置
    在之前的三个权限数字前再加一个数字,4:SUID,2:SGID,1:SBIT
    或者符号法设置,u+s :SUID, g+s : SGID,o+t :SBIT

命令和文件的查找

  1. 脚本文件的查找

    which [-a] command
    -a : 将所有由PATH目录中可找到的命令均列出
    

    该命令时根据PATH 所规范的路径,查找执行文件的文件名,which 后跟的是完整的文件名

  2. 文件的查找
    一般先用whereis或locate检查,若找不到,才用find.
    whereis由一些特定的目录中查找文件
    locate利用数据库查找文件

    1. whereis 【-bmsu】 文件或目录名
    	-b : 只找二进制文件
    	-m: 只找在说明文件manual路径下的文件
    	-s : 只找source文件
    	-u : 查找不在上述三项目中的其他特殊文件
    
    2. locate / updatedb
    	-i : 忽略大小写
    	-c : 仅计算找出的文件数量,不输出文件名
    	-l : 后接数字,仅输出几行
    	-S:输出locate所使用的数据库文件的相关信息
    	-r :后接正则表达式
    2.1 可输入文件的部分名称来进行检索
    2.2 更新数据库中文件
    	updatedb: 根据/etc/updatedb.conf的设置查找硬盘中的文件,并更新/var/lib/mlocate内的数据库文件
    	locate:根据/var/lib/mlocate内的数据库记录,找出用户所输入关键词的文件名
    
    3. find [PATH] [option] [action]
    	3.1 与时间相关的选项参数
    		-mtime n : n天前的一天内的修改过的文件 【前第n天本身那天】
    		-mtime +n : n天前 ,不含n本身,被改过的文件【从前第n天的n天,不包含n那天】
    		-mtime -n: n天内 ,含n本身,被改过的文件【从前第n天到现在】
    		-newer {file} : 列出比file 更新的文件
    	3.2 与使用者或用户组名称相关的选项参数
    		-uid n : 查找用户id  为 n的 拥有的文件
    		-gid n :用户组id
    		-user name: 使用者名
    		-group name : 用户组名
    		-nouser: 查找文件的拥有者不在/etc/passwd
    		-nogroup:查找文件的拥有组不在/etc/passwd
    	3.3 与文件权限及名称有关的选项参数:
    		-name {filename}: 查找文件名为{filename}的文件
    		-siez [+-] {size} : 查比{size} 大(+)或小(-)的文件
    		-type {type} : 查文件类型,类型有(正规文件【f】,设备文件【b,c】,目录【d】,链接文件【l】,socket【s】,FIFO【p】)
    		-perm {mode} : 查找文件权限等于{mode}的文件,mode值举例:-rwsr-xr-x 4755
    		-perm {-mode}:全部包含{mode}的权限,找出来的权限大于等于{mode}
    		-perm {/mode}:包含任一{mode}的权限,找出来的文件权限小于等于{mode},但至少有相同权限
    	3.4 额外选项参数:
    		-exec {command}: 其后可接额外命令处理查找的结果
    		范例: find / -perm /7000 -exec ls -l {} \; 
    				{} :表示find找到的结果
    				从 -exec 到  \; 中间是 额外操作  即  ls  -l {} 
    				; 使用了 反斜杠 \进行了转义
    

猜你喜欢

转载自blog.csdn.net/weixin_43707160/article/details/100048944