操作系统新
less
如果自己用vim,Vi,看一个100兆的文件,它会把整个文件都加载到内存中。
less根据你显示的情况读取一部分。


一个文件头,一个文件尾
实时监控。

>重定向指令,把本该终端输出的内容输出到文件中。


head没有实时监控,CTRL加c退出监控。

重定向实验。
cat把这个文件的内容显示出来,这就是将文件一的内容覆盖到文件2。

重定向是覆盖,除非是追加,不然之前的内容会销毁。
*重定向的是控制台的内容。

重定向可以不加后缀。

另外的指令。

软连接就是一个指向,类似于快捷方式。

软连接的作用。


年月日的设置。

这是因为 find 命令的语法格式错误 + 通配符未正确转义,具体原因及解决方法如下:
错误根源
1. find 命令的语法要求
find 的正确格式是: find [搜索路径] [选项] [匹配条件]
- 路径是第一个参数(若省略,默认是当前目录);
- 匹配条件(如 -name )需跟在路径之后。
2. 通配符 * 被 Shell 提前解析
你输入的 *.txt 中, * 是 Shell 通配符,会被 Shell 先展开为当前目录下的 .txt 文件列表(比如当前目录有 119991.txt ,Shell 会把 *.txt 替换成 119991.txt ),导致 find 命令接收到的参数混乱,从而报错“路径必须在表达式之前”。
正确用法
需将通配符用引号包裹(避免 Shell 提前解析),同时保证路径参数的位置:
bash
# 在 /home 目录下搜索所有 .txt 文件
find /home -name "*.txt"
# 在当前目录下搜索所有 .txt 文件(省略路径则默认当前目录)
find . -name "*.txt"
↓

单引号也可以。


问题出在 Shell 通配符的自动展开 上:
1. 上面的命令( find /home -name 111.* )为什么成功?
当你执行 111.* 时,当前目录下没有匹配“111.*”的文件,所以 Shell 不会自动展开这个通配符,而是直接把 111.* 作为字符串参数传给 find 命令。
find 会按照 -name 的规则,在 /home 目录下搜索名称符合 111.* 模式的文件,因此命令正常执行。
2. 下面的命令( find /home -name *.txt )为什么失败?
当你执行 *.txt 时,当前目录下存在匹配“*.txt”的文件(比如报错里的 119991.txt ),Shell 会先自动展开 *.txt 为这些具体的文件名(比如变成 119991.txt )。
此时命令被 Shell 改成了: find /home -name 119991.txt (如果有多个 txt 文件,会更混乱)。
而 find 的语法要求 “路径”必须在“表达式(如 -name)”之前,Shell 展开后的参数破坏了这个格式,所以会报错。
解决方法:
把通配符用引号(单/双引号)包裹,让 Shell 不自动展开,而是把通配符直接传给 find 处理:
bash
find /home -name "*.txt"

它会自动展开最多只能展开成一个文件,如果有多个文件的话,就会报错破坏格式,需要引号展开为字符串。
它只能允许查找的文件下有一个txt吗,如果不加引号字符串的话。
你混淆了**“当前执行命令的目录”和“find要搜索的目标目录(/home)”——不加引号时,Shell展开的是你执行命令时所在目录**下的txt文件,和 find 要搜索的 /home 目录无关:
1. 当前目录下0个txt文件:
Shell不会展开 *.txt ,直接把 *.txt 传给 find ,此时 find 会正常在 /home 下搜索所有txt文件(和加引号的效果一样)。
2. 当前目录下1个txt文件:
Shell会把 *.txt 展开成这个文件名(比如 a.txt ),命令变成 find /home -name a.txt ——此时 find 不会搜索所有txt,只会在 /home 下找名为 a.txt 的文件(不是“允许查找一个txt”,而是变成了“查找特定文件名”)。
3. 当前目录下≥2个txt文件:
Shell会把 *.txt 展开成多个文件名(比如 a.txt b.txt ),命令变成 find /home -name a.txt b.txt ——这会破坏 find 的参数格式,直接报错。
简单说:不加引号时,能不能正常执行(不报错),取决于你当前命令目录下的txt数量,但无论数量多少,都无法实现“在/home下搜索所有txt”的目标(要么变成搜特定文件,要么报错)。
其实就是两个会展开破坏格式。

Lh比较清晰的看文件大小。

先把数据存到数据库中,这个时候再执行命令就会很快。


查看这个命令在哪个目录下。

