2026年如何正确使用AI
这不是一篇标题党作文。 2026年的AI与2025年的有何不同?答案是2025年的AI模型都在卷智商,即回答的 […]
这不是一篇标题党作文。 2026年的AI与2025年的有何不同?答案是2025年的AI模型都在卷智商,即回答的 […]
df -h
输出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 49G 500M 100% /
一般系统都有多个挂载点,首先找出哪个挂载点爆满。
# 查看
du -h --max-depth=1 / | sort -hr | head -n 10
参数说明:
du:查看文件夹体积--max-depth=1:只看一级目录sort:从大到小排序head:只显示前10个找到哪个目录占用较多,再深入查看:
du -h --max-depth=3 /data | sort -hr | head -n 10
通常 是日志文件占据较大空间,能删除的也只有日志,或者备份,如果实在删不了就只能扩容了。
# 从上两步定位出来,再根据大小进一步确认
find /data -type f -size +1G -exec ls -lh {} \; 2>/dev/null | sort -k5 -hr | head -n 20
从上述命令可以看出有个30G的tomcat日志文件,这样就可以清理了,这种大文件建议进行切割,然后定时清理。
lsof | grep deleted
看到某个被删的日志文件还被占用?
解决办法:重启对应服务即可释放磁盘。
清理项
命令
清空日志文件
> /var/log/xxx.log
–》这个命令会直接清空该文件的所有内容
删除7天前日志
find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \;
清理 Docker
docker system prune -af
清理 APT 缓存
apt clean
清理 YUM 缓存
yum clean all
【温馨提示】在删除前一定要确保不影响系统运行,删除重要文件前可以做备份或打快照。
用
df找哪里满了 → 用du/find找大目录/大文件 → 清理/重启释放空间。如果经常出现,就加一个定时任务定期处理。
核心的工具其实还是 grep 命令,下面我将分场景给你讲讲我的实战经验,保证你能直接套用!
Java 异常堆栈通常都是多行的,仅仅用 grep "NullPointerException" 只能看到最上面那一行,问题根源在哪你压根找不到。
这时候使用 grep 的 -A (After) 参数来显示匹配行之后的 N 行。
# 查找 NullPointerException,并显示后面 50 行
grep -A 50 "java.lang.NullPointerException" a.log
如果你发现异常太多,屏幕一闪而过,也可以用 less 加上分页查看:
grep -A 50 "java.lang.NullPointerException" a.log | less
在 less 视图中,你可以:
使用 箭头↑↓ 或 Page Up/Down 键来上下滚动
输入 G 直接翻到末尾,方便快速查看最新的日志
输入 /Exception 继续搜索
按 q 键退出
这样你就能 第一时间拿到完整异常上下文信息,告别反复 vi + / 的低效操作!
如果你的应用正在运行,并且你怀疑它会随时抛出异常,你可以实时监控日志文件的增长。
使用 tail -f 结合 grep:
# 实时监控 a.log 文件的新增内容,并只显示包含 "java.lang.NullPointerException" 的行及其后50行
tail -f a.log | grep -A 50 "java.lang.NullPointerException"
只要异常一出现,它就会自动打出来,堆栈信息也一并送到你面前!
想停下?Ctrl + C
想更准确?加 -i 忽略大小写,防止大小写拼错找不到
服务器上的日志一般都会按天或按大小分割并压缩,变成 .log.2025-07-02.gz 这种格式,查找这些文件的异常信息怎么办?
.log 文件:# 在当前目录下查找所有以 .log 结尾的文件,-H 参数可以顺便打印出文件名
grep -H -A 50 "java.lang.NullPointerException" *.log
其中 -H 会帮你打印出 是哪个文件 中出现的问题,防止你找完还不知道是哪天的事。
.gz 文件(压缩日志):zgrep -H -A 50 "java.lang.NullPointerException" *.gz
zgrep 是专门处理 .gz 的 grep,它的功能和 grep 完全一样,无需手动解压,直接开整!
有时候你需要知道某个异常到底出现了多少次,是偶发还是成灾,使用 grep -c(count):
grep -c "java.lang.NullPointerException" a.log
如果你要统计所有日志里的数量:
grep -c "java.lang.NullPointerException" *.log
| 参数 | 作用 |
|---|---|
-B N |
匹配行之前的 N 行(Before) |
-A N |
匹配行之后的 N 行(After) |
-C N |
匹配行上下共 N 行(Context) |
-i |
忽略大小写 |
-H |
显示匹配的文件名 |
-r |
递归搜索目录下所有文件 |
比如:
grep -C 25 "java.lang.NullPointerException" a.log
这个命令就能让你一眼看到异常前后的上下文,帮助定位代码逻辑是不是哪里先出问题了。
一脚油门要花多少钱?——从保时捷 Cayenne 油耗看“每脚油门成本” 很多人开车从不去想:
我这一脚油门,到底花了多少钱?最近我在算自家 Porsche Cayenne 的用油成本时,顺便研究了一下“每脚油门或刹车”到底值多少钱。大概估算了一下,确实很费油。 只要经常在城里开,MPG就很低,显示 12 MPG,卡宴SUV真是耗油。如果经常开高速,MPG能20多。一般油耗正常的大概平均三四十。我之前的手动档奥迪A6就很省油,2.0的引擎MPG大概平均三四十。 [caption id="attachment_70188" align="alignnone" width="1442"]
| 项目 | 数值 |
|---|---|
| 车型 | Porsche Cayenne |
| 平均油耗(城市堵车) | 12 MPG |
| 平均油耗(综合路况) | 20 MPG |
| 油价 | £1.379 / 升 |
| 满油成本 | 约 £100 |
| 满油续航 | 约 480–500 英里 |
| 路况 | 平均速度 | 每英里刹车/加速次数 |
|---|---|---|
| 高速路 | 约 60 mph | 1–2 次(取 1.5) |
| 城市道路 | 约 30 mph | 4–5 次(取 4.5) |
| 场景 | 每次油门成本 |
|---|---|
| 城市(30 mph) | ≈ 6p (£0.06 ≈ 0.55元) |
| 高速(60 mph) | ≈ 24p (£0.24 ≈ 2.2元) |
| 项目 | 数值 | 说明 |
|---|---|---|
| 平均油耗 | 20 MPG | 综合路况 |
| 油价 | £1.379/L | 英国 95# 汽油 |
| 每英里油费 | £0.313 ≈ 31p | |
| 城市每脚油门 | ≈ 6p | |
| 高速每脚油门 | ≈ 24p | |
| 平均每脚油门 | ≈ 10p | 约 0.9 元人民币 |
Humachine 里整理的是原本发布在 Telegram 频道的内容,积累到足够的时候,就可以分类整理成册。今天来聊聊人们在获取所谓「知识」时的「并发症」——信息错误恐惧症。
下午跟一个朋友在聊「信息源」,他那个手机我真的是没眼看,各种软件的角标都是 99+,我问他为什么不点掉,他说这些都是他订阅了各种信息推送的软件,有空就会点开看,我就问他看你也没空啊,这么多角标就说明你看的没有推送得快啊,但是他有舍不得清理这些角标,现在甚至已经进化到了,自己只要看到角标就觉得自己还有「学习的冲动」。
他真的是什么东西看到都会订阅,而且理由都是自己有空了可以学习。一方面他对信息源有非常挑剔,总觉得是要得是有用的信息,可以激发自己学习。所以就变成了 99+,但是他也没有时间去看,又总觉得东西囤在那里是一种正面积极的反馈。
我问他那就从今天开始每天看掉 10 个最新的推送,然后自己用一句话总结理解了什么,他说「没时间」——那你妈不是为了有时间的时候学习吗,然后又开始跟我焦虑,说这么多信息要每天 10 个看完要很久,而且每天自然推送就会超过几百个。
算了,错失恐惧症晚期,没救了,至少现在 99+还能给他心理安慰。
继续 FOMO(信息错失恐惧症)的话题,昨天提到的那位朋友,不停向我强调「有用」这件事,但是这种有用又非常的割裂,比如当他关注的某个频道在偶尔一次讨论了自己并不认同、不感兴趣、甚至是相违背的内容时,他就会立马判定为「没用」。反过来,这算不算是一种确认信息偏差的作茧自缚呢?当然,我认为人们总是在追求与自己观点相符的观点这件事,是出于本能和无意识,只不过并不是所有人都会停下来抛开关心思维重新思考「为什么」,为什么别人会提出这样的观点。
以上的动作,又会被认定为「浪费时间」。如果你问人工智能如何解决 FOMO,他们可以头头是道的告诉你一大堆方法论,什么学会区分信息与知识;建立过滤系统;决绝成为算法的节点;学会延迟满足巴拉巴拉……但这些方法论没有解决一个本质问题:焦虑的来源。
1、追求「知识」的目的是什么?我要比别人懂更多?我要运用在实际场景?我依旧保持学生时代的只要我记录得够多就能证明我很努力?
核心:知识不是捷径,不会因为你学到一句话,便可以理解一本书的全部内容,就跟五分钟看完电影一样,捷径会给人暂时的「高效」罢了;
行为:如果因为一句话对一本书/一部电影产生了兴趣,你会去花时间看完整本书/整部电影吗?
2、我在用「知识」切断「感受」和「回应」吗?
当“感受”和“回应”越分离,人们就会本能地逃亡到知识之中,去寻求自己的存在感,总觉得我懂得越多、理解得越多,就越能看懂这个世界。(《知识越多越堕落》)
核心:你在用知识逃避什么?(我并没有说所有追求知识的人,都是在逃避)当初有很多人嘲讽我进行每日写作,认为一个人没有沉淀和积累,是不可能进行每日写作的。等到我完成了第一次的 500 日,他们依旧没有写任何内容,因为他们还在「准备」。
行为:知识带来的麻痹感,是因为它无限延长了「回应」的部分,正是因为它需要长时间的积累才能产出结果,所以人们总觉得这一天回来,以及我可以永远等待这一天。
3、我只对自己感兴趣。确认信息偏差的核心不是人们在追求支持自己观点的观点,而是因为他们在乎的是「支持」这件事,因此他们才会通过忽略或轻视的方式去规避那些「不支持」自己的观点。
核心:眼睛里只有自己并不是「错误的」,只是他们会因为这种偏差性,渐渐将自己困在一个知识茧房里面。我当年在大学的读书会惹过众怒,我评价那些三天两头就要组织读书会的人,他们在看完一本书,会着急将这本书的知识「分享」出来一样,这个分享的过程不是学习,而是我需要你们看看我,我读完了这本书,我现在比你们懂得多啦。
行为:这件事又回到了最开始的知识的目的,将信息视为知识的目的,是为了证明自己拥有了知识,还是将它视为需要时间沉淀和实践验证的理论?当然,以上没有对错,看个人选择。
以上,分别就是「感受」「知识」「回应」。切断任何一个,或是只追求其中一个,都会陷入知识海洋的虚无当中。借由昨天评论里一位朋友的评价,我觉得非常到位:知识的沙漠。
在这个沙漠里,是继续朝着虚无的海市蜃楼前进,还是停下来回头回到原点,去重新寻找「知识的目的」。
另一个点是,很多人总是在追求「这和我有什么关系」,觉得只要说的东西是「没用」的就切断信息源。
不养狗的人可以从养狗人身上学到东西吗?虽然我不能说我在教,但很多东西的底层逻辑就是通的。举个例子,你哪怕是要开一个孩子的日托班,就跟狗的日托班一样,你觉得最重要的是什么?是照顾好孩子?这当然是最重要的,但孩子消费者手上转移出来的「标的物」,那么消费者为什么要托管自己的孩子?这才是要搞清楚的需求点——因为他们需要暂时摆脱孩子,摆脱的原因有很多,但摆脱这件事是重要的,以及摆脱之后他们能得到什么?
这个时候有人就道貌岸然了,「哎呀家长怎么会舍得摆脱自己的孩子」——那你就自己照顾啊!没时间、没精力,这是客观原因吗?不,这是主观选择,是你自己选择了一份需要牺牲更多亲子时间工作、事业、甚至是决定。
底层逻辑的「有用」就在这里,你如果是这个产品的设计者,明面上是对孩子照顾得当,而潜在需要解决的,是抵消家长把孩子进行托管的「罪恶感」,甚至是通过孩子托管给他们创造更多的需求。比如一些岛屿国家的海岸度假村,他们都会设定小孩子的托管服务,可以让家长在一整天的时间里都「不用考虑」孩子,全身心地投入度假。而这些星级酒店始终在做一件事,他们将孩子组织起来做各种游戏,但必须避免这些孩子在酒店的区域里与他们的家长有任何空间上的交集。
这项服务非常昂贵,但绝大多数带孩子的家长都愿意购买这个服务。
回到狗公园,为什么家长愿意将狗寄托在狗公园,因为可以让狗在大自然自由自在的奔跑,这是他们最想要的——好了,抵消了饲主的分离焦虑。
解决了「没用」,来解决另一个更具迷幻性的东西——太长了我不想看。那这不是我的问题,当然你可以扣上一个时代性的帽子,即「现在大家都更偏向更短、更精简的内容」。
至于为什么太长了不想看,这倒是可以追问自己的问题。不过需要提醒的是,如果这个答案是外归因结论,比如「我不喜欢这个人」「这个人的观点有失偏颇」「他表达的方式我不喜欢」等等把原因都指向了第三方,那我建议还是回到信息茧房里比较好,因为一旦需要接受新的逻辑和观点,对这类人来说是极其痛苦的,所以才会利用「惰性思考」,优先排除这些信息源。解决方案就是在外归因的结论下多问一个「为什么」,即我为什么会不喜欢这个人,是因为厌恶个体,还是厌恶符号?
借用著名的后宫政治学家甄嬛的一句话:
「能不能看明白是你的能力,写不写得出来是我的本事。」
(p.s.最近老婆在客厅回顾《甄嬛传》)
