GNU/Linux操作系统学习 06.文件与目录管理

第六章 文件与目录管理

1. 特殊目录

  • … 上一层目录 如 $ cd … 跳转到上一层
  • . 当前目录 如 $ cd ./xxx/ 跳转到本目录下的xxx目录下./来对含有特殊符号的文件进行操作
  • - 之前的目录
  • ~ 家目录
  • ~username 某个用户的家目录

2. 目录操作

  • $ cd directory 改变当前目录(可以用tab自动补全)
  • $ pwd 显示当前路径
  • -P 显示真正路径非链接文件的路径
  • $ mkdir directoryname 创建目录
  • -m 771 设置创建目录的权限不用umask
  • -p 创建包括父目录
  • $ rmdir directoryname 删除空目录
  • -p 删除包括父目录
  • $ basename /xxxx/xxx/xx 获取文件名
  • $ dirname /xxx/xxx/xx 获取目录名
  • $ file filename 用于查看文件类型,动态链接库信息,和特殊权限等

3. 环境变量

  • $ echo $PATH 打印环境变量,执行相关命令会根据环境变量目录的次序 去每个目录下依次寻找执行
  • PATH 中 每个目录之间用 " : " 隔开
  • 通过 $ PATH="{PATH}:/root" 加入相关路径

4. 文件操作

$ ls
  • $ ls [-adfFhilnrRSt] --color=[never always auto] --full-time --time 文件与目录查看
  • -al / h / --color --full-time 常用
  • -s 显示占用的数据区块大小>=实际数据大小
  • -R 显示子目录
  • -d 显示文件夹
  • -i 显示inode 号码
  • –time=mtime,ctime,atime 显示不同的时间
  • -F 显示文件类型

  • -r 以反向排序
  • -S 以大小排序
  • -f 以存储位置排序
  • -t 以时间排序
$ cp
  • $ cp [-adfilprsu] source1 source2 … directory 复制多个文件到某目录下 / source destination 复制文件source为文件destination
  • 注意 默认拷贝owner为操作者 权限也会发生改变
  • -d 复制链接( 默认复制文件本身)
  • -p 保持源文件的拥有者,组和atime,mitme属性 ctime一定会发生改变
  • -r 递归复制(-a=-dpr)
  • -l 建立硬链接 -s 建立软链接
  • -i 询问是否覆盖 -u 源文件更新才进行复制或者目标文件不存在
$ mv
  • $mv [-fiu] source1 source2 … destination / source destination 移动文件
  • -fiu 上同
$ rm
  • $ rm [-fir] file/directory 删除文件或目录
  • -f 忽略不存在文件的提示
  • -i 删除前进行询问 身份为root 默认加入-i
  • -r 递归删除 可以用 $ \rm -r dirname 来取消询问 \ 来忽略alias指定选项
$ touch
  • $ touch [-acdmt] filename 建立文件或者更新文件时间属性
  • 默认将atime ctime 更新为当前时间 没有该文件则新建文件 -c 不建立文件
  • -a / --time=atime 只修改atime为当前时间 -m / --time=mtime 只修改mtime为当前时间 --time=ctime 修改
  • -t “[[CC]YY]MMDDhhmm[.SS]” 修改为指定时间

5. 内容查看

$ cat
  • $ cat [-bEnTv] filename 从第一行到最后以行显示内容 $tac 相反
  • -A = -vET v列出看不出来的字符 E换行符用$列出 T[tab]用^I显示出来
  • -b 非空白行显示行号 -n 所有行显示行号
$ nl
  • $ nl [-bnw] filename 与cat类似多了添加行号打印
  • -b a 显示所有行号 -b t 显示非空白行号 (默认)
  • -n ln 行号左对齐不加零 -n rn 右对齐不加零 -n rz右对齐加零
  • -w n 行号栏占n位
$ more/less
  • $ more filename 翻动查看(管道文件无法往上翻页)
  • space 下翻一页 b 上翻一页 Enter 下翻一行
  • /string 向下查找sring
  • :f 显示文件名及当前行数
  • q 退出
  • $ less filename 翻动查看(对more进行模拟做了增强额外功能如下)
  • pgdn 下翻一页 pdup 上翻一页
  • ?string 向上查找string
  • n 重复前一个查找 N反向重复前一个查找
  • g 回到第一行 G 到最后一行
$ od
  • $ od [-AtNJw] filename 查看不能显示在终端的字符(二进制文件)
  • -A [dox] 地址输出的格式(默认用八进制输出地址)
  • -t a 字符输出 c 字符输出包括转义字符 -t d/o/x/f/u size 各种进制输出 每个数占用size Bytes 或用CSIL表示一个char,short,int,long大小 FDL表示一个float,double,long double大小
  • -N/-J/-w n[KB M G…] 总计输出/跳过/每行输出 n个Bytes[KB M G]个字符
  • $ echo password | od -t dCc 转换password为10进制的ascii码(可以每行转换成多个格式)

6. 文件内容截取

  • $ head [-n] filename 截取前几行
  • -n 100 取前100行 (默认取10行)
  • -n -10 取所有不要最后10行
  • $ tail [-nf] filename 截取后几行
  • -n 20 显示最后20行
  • -n +20 显示20行及以后的行
  • -f 持续检测文件如果有更新就会显示
  • $ head -n 20 filename | tail -n 10 通过管道截取指定的内容

7. 默认权限与隐藏权限

$ umask
  • $ umask [-S] [xxx]
  • 默认按位模式显示需要去掉的权限 -S 用符号显示需要去掉的权限
  • xxx设置数值 如 002 表示 文件或目录去除写权限
  • 默认值 文件 666(rw-rw-rw-) 目录 777(rwxrwxrwx) 减去 umask 后为默认权限(注意 6-1 还是rw-)
$ chattr
  • $ chattr [±=] [AadiS] 改变文件的隐藏属性
  • -i 文件无法 删除,修改,改名,设置连接
  • -a 文件无法 删除,修改,只能增加数据
  • -A 文件在读取时atime不会改变
  • -d 文件不会被dump备份
  • -s 文件在删除时永远被删除
$ lsattr
  • $ lsattr [adR] filename/directoryname 显示文件的隐藏属性
  • -a 将隐藏文件的隐藏属性显示
  • -d 不显示目录下的文 只显示目录属性(默认显示目录下的文件)
  • -R 递归显示所有子目录和子文件

8. 文件的特殊权限

SUID - 4
  • 执行者需要有该程序的可执行权x,且拥有者权限–x变成–s
  • 仅对二进制程序有效,对于Shell脚本和目录无效
  • 执行者仅在执行程序过程中具有拥有者的权限
SGID - 2
  • 执行者需要有该程序的可执行权x,且用户组权限–x变成–s
  • 对二进制程序有效,对于Shell脚本和无效
  • 执行者仅在执行程序过程中具有用户组的权限
  • 用于目录后 该目录下新建的文件用户组为该目录用户组 , 拥有rx权限才可进入该目录之下
SBIT - 1
  • 只对目录有效,拥有rx权限才可进入该目录之下,其他权限–x变成–t
  • 用户在目录下建立文件目录时仅有自己与root有权限删除该文件
  • 解释: 如 /tmp 其他人都可以进去修改但是只能对自己的文件修改
改变特殊权限
  • $ chmod u+s,g+s,o+t filename 或 $ chmod 7777 filename

9. 命令与文件查找

$ which
  • $ which [-a] command 查找命令
  • -a 在所有PATH中寻找 默认在指定的路径中查找
  • $ type 查找bash中的命令
$ whereis
  • $ whereis [-bmsu] filename/directoryname 在特定目录下查找
  • -b 只找bin二进制 -s 只找src源文件 -m 只找man文件
  • -l 列出查找的目录
  • -u 查找不在 man src bin 下的其他特殊文件
$ locate
  • $ locate [-iclSr] keyword 在数据库中根据关键字查找文件
  • -i 忽略大小写 -c 只计算个数 -l n 输出 n 行
  • -S 输出数据库信息
  • -r 根据 后面的正则表达式来搜索
  • 通过 $ updatedb 来及时更新数据库防止新建立的文件找不到
$ find
  • $ find [path] [option] [action] 更强大的搜索 (path 可以有多个 , 会默认搜索子目录)
  • -atime/mtime/ctime +n / n / -n : n+1天之前 / n 天前的一天 / n 天内
  • path1 - newer path2 搜索 文件1 比 文件 2 早的文件 (-newer[XY] [XY]是[acm] 针对三种不同时间的两个组合 或者可以用 -anewer / -cnewer 替代 , 默认是 对mtime)
  • -uid / gid n 查询uid和gid 为 n 的文件
  • -user/ group name 查询user和group 为 name 的文件 -nouser / - nogroup 查询user和group 不存在的文件
  • -name filename 查询文件名为 filename的文件 filename 可以为 " 正则表达式 "
  • -size [±]SIZE 查询比SIZE大或小的文件 可用 c/k/M 表示 B/KB/MB
  • -type [fbcdlsp] 根据文件类型查找
  • -perm mod / -mod / /mod 根据权限查找 正好为mod / 全部包含 / 包含任意一个权限 的文件
  • -exec command 举例 : $ find /home -exec ls -l {} \ ;
  • ( -size +1500k -o/-a -size 0k ) 可以表示逻辑或和逻辑与 ! -size +1500k 表示否
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值