第三天:文件管理相关
文件系统标准地址:https://www.pathname.com/fhs/
一、文件系统目录结构
1、文件和目录以树形结构方式保存
2、各目录路径分隔以 /
3、文件名最长255个字节
4、蓝色--》目录 绿色--》可执行文件 红色--》压缩文件 浅蓝色--》链接文件 灰色--》其他文件
5、常见文件目录功能
/boot 引导文件存放目录,内核文件、引导加载器都存放于此目录
/bin 所有用户使用的基本命令:不能关联至独立分区,OS启动即会用到的程序.放二进制文件
/sbin 管理类的基本命令;不能关联到独立分区,OS启动即会用到的程序.放二进制文件
/lib 启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
/lib64 专用于x86-64系统上的辅助共享库文件存放位置
/etc 配置文件目录,类似注册表
/home/USERNAME 普通用户家目录
/root 管理员的家目录
/media 便携式移动设备挂载点
/mnt 临时文件系统挂载点
/dev 设备文件及特殊文件存储位置
/opt 第三方应用程序的安装位置
/srv 系统上运行的服务用到的数据
/tmp 临时文件存储位置
/usr 类似windows里的windows和programs文件
/var 放日志文件
/proc 用于输出内核与进程信息相关的虚拟文件系统
/sys 用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux 相关的安全策略等信息的存储位置
/run 运行时临时文件
6、应用程序的组成部分
7、LINUX下的文件类型
普通文件
d 目录文件directory
l 符号链接文件link
b 块设备block
c 字符设备character
p 管道文件pipe
s 套接字文件socket
二、创建和查看文件
1、显示当前目录:pwd -P (显示真实物理路径) -L(显示链接路径)
2、绝对和相对路径:绝对路径以/根目录开始
3、更改目录
切换至父目录:cd ..
切换至当前用户主目录:cd
切换至以前的工作目录:cd -
4、列出目录内容
ls :列出当前目录的内容和指定目录
选项:-a 包含隐藏文件
-I 显示额外的信息
-R 目录递归
-ld 目录和符号链接信息。
-1 文件分行显示
-S 按从大到小排序
-t 按mtime排序
-u 配合-t选项,显示并按atime 从新到旧排序
-U 按目录存放顺序显示
-X 按文件后缀排序
-F 对不同类型文件显示时附加不同的符号 :*/=》@|
-C 文件多时,以多列的方式显示文件,默认是一列
5、查看文件状态:stat
access time 访问时间 延时更新超一天以上及修改时间新于atime
modify time 修改时间
change time 改变时间
Birth time 出生时间
6、确定 文件内容:file
-b 列出文件辨识结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的:分隔符
-L 查看对应软链接对应文件的文件类型
--help 显示命令在线帮助
7、显示支持的字符集编码列表
iconv -l
8、文件通配符
* 匹配零个或多个字符,但不匹配"."开头的文件,即隐藏文件
? 匹配任何单个字符,一个汉字也算一个字符
~ 当前用户家目录
~djy 用户djy家目录
[0-9] 匹配数字范围
[a-z] 一个字母
[A-Z] 一个字母
[djy] 匹配列表中的任何一个字符
[^djy] 匹配列表中的所有字符以外的字符
[^a-z] 匹配列表中的所有字符以外的字符
. 和~+ 当前工作目录
~- 前一个工作目录
9、创建空文件或刷新文件
touch [OPTION] ... FILE...
10、 basename :取文件的基名; dirname 取文件的目录名
11、文件属性:metadata
三、复制、转移和删除文件
1、复制文件或目录:copy
-u update 只复制源比目录更新文件或目标不存在的文件
-b 目标存在,覆盖前先备份,默认形式
--backup,目标存在,覆盖前先备份加数字后缀
2、移动和重命名文件:
(1)mv
-i 交互式
-f 强制
-b 目标存在,覆盖前先备份
(2)rename
rename [options] <expression> <replacement> <file>
3、删除文件:rm
rm [OPTION] ... FILE ...
-I 交互式
-f 强制删除
-r 递归
--no-preserve-root 删除/
4、显示目录树:tree
-d 只显示目录
-L level 指定显示的层级数目
-P pattern 只显示由指定wild-card pattern 匹配到的路径
5、创建目录:mkdir
-p 存在于不报错,且可自动创建所需的各目录
-v 显示详细信息
-m MODE :创建目录时直接指定权限
6、删除空目录rmdir
-p 递归删除父空目录
-v 显示详细信息
rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令。
四、软和硬链接
1、硬(hard)链接: ln filename [linkname]
本质上就给一个文件起一个新的名称,实质是同一个文件
2、符号symbolic(或软soft)链接
一个符号链接指向另一个文件,就像windows中快捷方式,软链接文件和原文件本质上不是同一个文件。
3、ln -s filename [filename]
4、查看链接:readllink NAME
5、区别:
(1)本质:硬链接本质是同一个文件,软链接本质不是同一个文件
(2)跨设备:硬链接不支持,软链接支持
(3)inode :硬链接相同,软链接不同
(4)链接数:硬:创建新的硬链接,数量会增加,删除硬链接数量减少;软链接创建或删除,链接数不会变化。
(5)文件夹:硬链接不支持,软链接支持
(6)相对路径:硬链接,原始文件相对路径是相对于当前工作目录;软链接,原始文件相对路径 是相对于链接文件的相对路径
(7)删除源文件:硬链接,只是链接数减少,但链接文件的访问不受影响;软链接,链接文件将无法访问。
(8)文件类型:硬链接,和源文件相同;软链接,和源文件无关
(9)文件大小 :硬链接,和源文件相同;软链接为源文件的路径的长度
五、IO重定向和管道
1、三种I/O设备:标准输入(STDIN) -0; 标准输出(STDOUT) -1 ; 标准错误(STDERR) -2
2、标准输出和错误重定向:
1> > 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把标准输出和错误都重定向
<& 同上
>> 追加标准输出重定向至文件
2>> 追加标准错误重定向至文件
3、标准输入重定向:
tr 转换和删除字符 :tr [OPTION] ... SET 1 [SET2]
-d 删除所有属于第一个字符集的字符
-s 把连续重复的字符以单独一个字符表示,即去重
-t 将第一个字符集对应字符转化为第二字符集对应的字符
-c 取字符集的补集
cmd<<<"strings"
4、管道:(使用符号”|“表示)用来连接多个命令