|NO.Z.00009|——————————|LinuxBasicEnd|——|Linux&常用命令.V03|——|文件操作|软硬连接|
一、文件操作命令:touch命令
### --- touch 命令
~~~ 创建空文件或修改文件时间,这个命令的基本信息如下。
~~~ 命令名称:touch。
~~~ 英文原意:change file timestamps。
~~~ 所在路径:/bin/touch。
~~~ 执行权限:所有用户。
~~~ 功能描述:修改文件的时间戳。
~~~ 命令重定向
~~~ touch创建一个空文件,或者修改该文件最后一次的时间
[root@server21 ~]# touch yanqi // 创建一个空文件yanqi
[root@server21 ~]# echo 命令重定向 >> yanqi // echo若是后面没有目标文件,会自动创建,若是有该文件,则会直接把数据写入到该文件内
[root@server21 ~]# cat yanqi
二、stat 命令
### --- stat 命令
~~~ stat 是查看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下。
~~~ 命令名称:stat。
~~~ 英文原意:display file or file system status。
~~~ 所在路径:/usr/bin/stat。
~~~ 执行权限:所有用户。
~~~ 功能描述:显示文件或文件系统的详细信息。
[root@localhost ~]# stat anaconda-ks.cfg
~~~ 文件:"anaconda-ks.cfg"
~~~ 大小:1453 块:8 IO 块:4096 普通文件
~~~ 设备:803h/2051dInode:33574991 硬链接:1
~~~ 权限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
~~~ 环境:system_u:object_r:admin_home_t:s0
~~~ 最近访问:2018-11-06 23:22:23.409038121 +0800
~~~ 最近更改:2018-10-24 00:53:08.760018638 +0800 // 数据修改时间
~~~ 最近改动:2018-10-24 00:53:08.760018638 +0800 // 状态修改时间
~~~ Linux是不会显示文件创建时间的。
[root@server21 ~]# stat yanqi
File: `yanqi' // 文件名称
Size: 16 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 2621451 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2021-02-04 17:33:41.005010875 +0800
Modify: 2021-02-04 17:32:35.841008302 +0800
Change: 2021-02-04 17:32:35.841008302 +0800
三、cat 命令
### --- cat 命令
### --- cat不适合查看长文件
~~~ cat 命令用来查看文件内容。这个命令的基本信息如下。
~~~ 命令名称:cat。
~~~ 英文原意:concatenate files and print on the standard output。
~~~ 所在路径:/bin/cat。
~~~ 执行权限:所有用户。
~~~ 功能描述:合并文件并打印输出到标准输出
~~~ 命令格式
[root@localhost ~]# cat [选项] 文件名
~~~ 选项:
~~~ -A: 相当于-vET 选项的整合,用于列出所有隐藏符号
~~~ -E: 列出每行结尾的回车符$
~~~ -n: 显示行号
~~~ -T: 把 Tab 键用^I 显示出来
~~~ -v: 列出特殊字符
### --- 查看文件
[root@server21 ~]# cat yanqi
命令重定向
### --- 列出所有隐藏符号
[root@server21 ~]# cat -A yanqi
M-eM-^QM-=M-dM-;M-$M-iM-^GM-^MM-eM-.M-^ZM-eM-^PM-^Q$
### --- 列出每行结尾的回车符$
[root@server21 ~]# cat -E yanqi
命令重定向$
### --- 显示行号
[root@server21 ~]# cat -n yanqi
1 命令重定向
### --- 把Tab键用^I显示出来
[root@server21 ~]# cat -T yanqi
^I命令重定向
11111111111
^I22222222
### --- 列出特殊符号
[root@server21 ~]# cat -v yanqi
M-eM-^QM-=M-dM-;M-$M-iM-^GM-^MM-eM-.M-^ZM-eM-^PM-^Q
11111111111
22222222
四、more 命令
### --- more 命令
~~~ more 是分屏显示文件的命令,其基本信息如下。
~~~ 命令名称:more。
~~~ 英文原意:file perusal filter for crt viewin。
~~~ 所在路径:/bin/more。
~~~ 执行权限:所有用户。
~~~ 功能描述:分屏显示文件内容。
~~~ more 命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一些交互命令。
~~~ 常用的交互命令如下。
~~~ 空格键:向下翻页。
~~~ b:向上翻页。
~~~ 回车键:向下滚动一行。
~~~ /字符串:搜索指定的字符串。
~~~ q:退出。
### --- more分屏显示文件
[root@server21 ~]# more install.log
--More--(16%)
~~~ 空格键:向下翻页。
~~~ b:向上翻页。
~~~ 回车键:向下滚动一行。
~~~ /字符串:搜索指定的字符串。
~~~ q:退出。
五、less 命令
### --- less 命令
~~~ less 命令和 more 命令类似,只是 more 是分屏显示命令,而 less 是分行显示命令,其基本信息如下。
~~~ 命令名称:less。
~~~ 英文原意:opposite of more。
~~~ 所在路径:/usr/bin/less。
~~~ 执行权限:所有用户。
~~~ 功能描述:分行显示文件内容
~~~ #less分行显示文件内容
~~~ #下箭头往下一行一行翻页
~~~ #上箭头网上一行一行翻页
~~~ #q退出
六、head 命令
### --- head 命令
~~~ head 是用来显示文件开头的命令,其基本信息如下。
~~~ 命令名称:head。
~~~ 英文原意:output the first part of files。
~~~ 所在路径:/usr/bin/head。
~~~ 执行权限:所有用户。
~~~ 功能描述:显示文件开头的内容。
### --- 命令格式
[root@localhost ~]# head [选项] 文件名
~~~ 选项:
~~~ -n 行数:从文件头开始,显示指定行数
~~~ -v: 显示文件名
### --- head显示文件头
[root@server21 ~]# head install.log // 显示文件头10行
[root@server21 ~]# head -n 20 install.log // 显示文件头特定行数
七、tail 命令
### --- tail 命令
~~~ 既然有显示文件开头的命令,就会有显示文件结尾的命令。tail 命令的基本信息如下。
~~~ 命令名称:tail。
~~~ 英文原意:output the last part of files。
~~~ 所在路径:/usr/bin/tail。
~~~ 执行权限:所有用户。
~~~ 功能描述:显示文件结尾的内容。
### --- 命令格式
~~~ 选项:
~~~ -n 行数:从文件结尾开始,显示指定行数
~~~ -f:监听文件的新增内容
[root@localhost ~]# tail [选项] 文件名
### --- tail显示文件尾10行
[root@server21 ~]# tail install.log // 显示文件尾10行
[root@server21 ~]# tail -n 20 install.log // 显示文件尾特定行数
### --- 监听某一个文件的新增内容
[root@server21 ~]# tail -f install.log
*** FINISHED INSTALLING PACKAGES *** // ctrl+C退出
八、ln 命令
### --- ln 命令
~~~ 我们来看看 ln 命令的基本信息。
~~~ 命令名称:ln。
~~~ 英文原意:make links between file。
~~~ 所在路径:/bin/ln。
~~~ 执行权限:所有用户。
~~~ 功能描述:在文件之间建立链接
### --- 所有系统的根目录的i及诶单号都是2,1在系统内核加载的时候已经占用了。
### --- 根是从2开始计算的。
[root@server21 ~]# ls -ild / // i显示i节点号,l长格式显示,d只显示目录
2 dr-xr-xr-x. 22 root root 4096 Feb 4 17:19 /
### --- ln 命令的基本格式如下:
~~~ 选项:
~~~ -s: 建立软链接文件。如果不加“-s”选项,则建立硬链接文件
~~~ -f: 强制。如果目标文件已经存在,则删除目标文件后再建立链接文件
[root@localhost ~]# ln [选项] 源文件 目标文件
### --- 如果创建硬链接:
[root@server21 ~]# ln yanqi /tmp/yanqi_ln
[root@server21 ~]# ls -il yanqi /tmp/yanqi_ln
2621452 -rw-r--r-- 2 root root 0 Feb 4 18:02 /tmp/yanqi_ln
2621452 -rw-r--r-- 2 root root 0 Feb 4 18:02 yanqi
### --- 建立硬链接文件,目标文件没有写文件名,会和原名一致
### --- 也就是/root/yanqi 和/tmp/yanqi_ln 是硬链接文件
### --- 修改源文件查看硬链接文件
[root@server21 ~]# echo 硬连接 >> yanqi // 源文件内修改文件内容
[root@server21 ~]# cat /tmp/yanqi_ln // 硬链接里面的内容会随之发生变化
~~~ 硬连接
### --- 修改硬链接文件查看源文件
[root@server21 ~]# echo 硬链接里面添加数据 >> /tmp/yanqi_ln // 硬链接里面添加数据
[root@server21 ~]# cat yanqi // 源文件内容也会随之发生变化
~~~ 硬连接
~~~ 硬链接里面添加数据
### --- 如果创建软链接:
[root@localhost ~]# touch bols
[root@localhost ~]# ln -s /root/bols /tmp/
### --- 建立软链接文件
### --- 硬链接与软连接的特征
~~~ 硬链接特征:
~~~ 源文件和硬链接文件拥有相同的 Inode 和 Block
~~~ 修改任意一个文件,另一个都改变
~~~ 删除任意一个文件,另一个都能使用
~~~ 硬链接标记不清,很难确认硬链接文件位置,不建议使用
~~~ 硬链接不能链接目录
~~~ 硬链接不能跨分区
~~~ #硬链接不建议使用,它的标记是一个,不容易识别
~~~ #硬链接不可以链接目录;目录做硬链接资源消耗太大
### --- 软链接特征:
~~~ 软链接和源文件拥有不同的 Inode 和 Block
~~~ 两个文件修改任意一个,另一个都改变
~~~ 删除软链接,源文件不受影响;删除源文件,软链接不能使用
~~~ 软链接没有实际数据,只保存源文件的 Inode,不论源文件多大,软链接大小不变
~~~ 软链接的权限是最大权限 lrwxrwxrwx.,但是由于没有实际数据,最终访问时需要参考源文件权限
~~~ 软链接可以链接目录
~~~ 软链接可以跨分区
~~~ 软链接特征明显,建议使用软连接
### --- 软连接:相当于windows下的快捷方式
### --- 软连接源文件删除后,软链接文件会随时消失
[root@server21 ~]# rm -rf /tmp/*
[root@server21 ~]# ln -s /root/yanqi /tmp/yanqi_软连接
[root@server21 ~]# ll /tmp/yanqi_软连接
lrwxrwxrwx 1 root root 11 Feb 4 18:20 /tmp/yanqi_软连接 -> /root/yanqi
### --- i节点号完全不一致
### --- 修改软链接源文件,查看软链接文件
[root@server21 ~]# echo 软链接 >> yanqi
[root@server21 ~]# cat /tmp/yanqi_软连接
~~~ 软链接
### --- 修改软链接文件,查看源文件
[root@server21 ~]# echo 软链接文件 >> /tmp/yanqi_软连接
[root@server21 ~]# cat yanqi
~~~ 软链接
~~~ 软链接文件
### --- 删除源文件,查看软链接文件报错,查找不到该文件
[root@server21 ~]# rm -rf /root/yanqi
[root@server21 ~]# cat /tmp/yanqi_软连接
cat: /tmp/yanqi_软连接: No such file or directory
### --- 在源文件写入大量的文件内容,而软链接文件的大小不会发生变化
[root@server21 ~]# ls -ihl /root/yanqi /tmp/yanqi_软链接
2621453 -rw-r--r-- 1 root root 2.8K Feb 4 18:28 /root/yanqi
3932162 lrwxrwxrwx 1 root root 11 Feb 4 18:27 /tmp/yanqi_软链接 -> /root/yanqi
### --- 软链接链目录
[root@server21 ~]# mkdir yanqi目录
[root@server21 ~]# ln -s /root/yanqi目录/ /tmp/yanqi软链接目录
[root@server21 ~]# ll /tmp/
total 0
lrwxrwxrwx 1 root root 11 Feb 4 18:27 yanqi_软链接 -> /root/yanqi
lrwxrwxrwx 1 root root 18 Feb 4 18:32 yanqi软链接目录 -> /root/yanqi目录/
### --- 软连接一定要写绝对路径
[root@server21 ~]# ln -s yanqi /tmp/yanqi_软连接相对路径
[root@server21 ~]# ln -s /root/yanqi /tmp/yan_软连接绝对路径
[root@server21 ~]# ll /tmp/
lrwxrwxrwx 1 root root 5 Feb 4 18:38 yan_软连接相对路径 -> yanqi // 报错
lrwxrwxrwx 1 root root 11 Feb 4 18:39 yan_软连接绝对路径 -> /root/yanqi
[root@server21 ~]# cat /tmp/yan_软连接相对路径 // 查看文件失败
cat: /tmp/yan_软连接相对路径: No such file or directory
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv005-basic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通