当你和终端的关系从「早安打卡」进阶到「深夜代码同居」,那些曾经高冷的指令开始展露致命の反差萌——
man 是那个永远在线的钢铁直男说明书,只会说:"想懂我?自己看文档!"(但你不得不承认,他的确随叫随到)
mv 像极了热衷搬家的前任,能把你的青春回忆从 /home/初恋 一键转移到 /tmp/心碎回收站
nano 是初恋记事本,虽然功能朴素,但总在 Ctrl+X 时温柔问你:"要保存这份心动吗?"
echo "今晚月色真美" > 告白.txt
> 把心跳声写入文本(副作用:覆盖式表白可能引发 IOError: 已读不回)
cat 日记.log | grep "crush"
段错误)
cp -r 前任/ 新欢/ --小心心备份=all
diff 会无情揭穿:"新欢和前任的md5一模一样!")
which python
/usr/bin 藏了多少个版本备胎
man 爱情
No manual entry for 爱情(但偷偷用 apropos 心动 能搜到隐藏章节)
sudo rm -rf 犹豫/
/未来/承诺 目录)
nano 分手信.txt
Ctrl+S,请速用 mv 分手信.txt /dev/null 撤回)
man 7 恋爱哲学
现在,深呼吸 在终端敲下这封加密情书:
echo "SSBsb3ZlIHlvdSAK" | base64 -d 让Linux告诉你—— 有些指令不需要手册,因为心跳的源码早已开源 💻💓
可能当很多小伙伴看到这个指令名字的时候,脑袋里会浮现出那个男人的身影,并且会想起一个当今比较热门的梗:man!当然,这个指令和这些可是没有任何关系,man指令可以说是一个比较热门的指令,因为我们会在学习Linux的时候多次使用到它,它其实就是一个Linux的知识百科全书。
man指令的语法很简单,首先我们想要可以用man指令查man指令的用法,它的语法如下:
man man #这样就可以知道man的用法
这里就可以看到上面显示的man函数的功能,其实它的核心主要是在中间的部分,就是数字对应的部分,每一个数字代表着它所含有的工作,这里小编就给大家搜索了相关的资料,告知各位这些数字代表的含义:
章节号 | 内容类型 | 示例命令 |
|---|---|---|
1 | 用户命令(普通用户可执行) | man 1 ls |
2 | 系统调用 | man 2 fork |
3 | C 库函数 | man 3 malloc |
4 | 设备文件和特殊文件 | man 4 null(/dev/null 设备) |
5 | 配置文件格式 | man 5 fstab |
6 | 游戏和屏保程序 | man 6 tetris |
7 | 杂项(协议、文件系统等) | man 7 tcp |
8 | 系统管理命令(需 root 权限) | man 8 iptables |
9 | 内核相关文档 | man 9 syscalls |
上面就是对于man函数的使用,各位读者以后遇到函数不会用的问题,完全可以通过man函数来帮助我们相关函数的查找,而不用再去一些平台找相关的解释了。
在我们使用man函数的时候,我们可能想要使用man 3 printf的指令,可能部分读者无法使用这个功能,这是因为部分云服务器删减了不少内容,这个手册相关的内容也进行了删除(因为保证功能太多而浪费掉),所以可以用下面这个指令把这个手册下回来:
yum install -y man-pages #这样就可以使用3的功能了echo指令实际上算是Linux中最没有“存在感”但确实常常被使用的指令了,因为它的功能实际上是很简单的,它的名字听起来像在说:「欸,我在呢!」(Echo:回音),但它的真实身份其实是命令行界的复读机。它的任务很简单:你喂它什么,它就吐什么。但别小看它!这货可是隐藏了无数骚操作的宝藏工具(就比如之后让我难受好几天的重定向操作)。
它的用法很经典,如果你给它说:
echo "我是以后的技术大佬!" #这个引号可以不加,纯纯的写C++习惯了,看到个字符串默认""它给你回:

1. 自带弹幕特效(颜色和格式)
想让终端输出五彩斑斓的黑?加个「魔法参数」-e 就能解锁转义符!
echo -e "\033[31m红色警告:\033[0m 你的咖啡已空!"效果:

2. 制造混乱(生成奇葩文件)
想快速创建一个文件并写入内容?
echo "老板说要写周报,但我觉得他在画饼" > weekly_report.txt(> 表示把输出重定向到文件,相当于让 echo 当秘书帮你写文档。关于重定向,我以后会详细说说这玩意,难度还是不小的,在大约我讲到文件的部分时,我会进行一个重定向代码的书写)
3. 哲学の质问(输出变量)
Linux 有很多自带「人生哲理」变量,比如 USER(你是谁)、HOME(你家在哪):
echo "你是 $USER,此刻正躲在 $HOME 里摸鱼。" #这些其实就是后来我会讲的环境变量你是 alice,此刻正躲在 /home/alice 里摸鱼。(扎心了,echo。)
4. 无声胜有声(不换行输出)
默认 echo 会在结尾加个换行符,像个礼貌的客服。但如果你想当个「叛逆青年」,用 -n 参数让它闭嘴:
echo -n "正在加载……"
sleep 2
echo "加载了个寂寞!"效果:两句话会连在一起,假装在加载(实则摸鱼)。
echo *,它会列出当前目录所有文件(因为 * 被 Shell 先解析了)。 如果想原样输出 *,请用单引号:echo '*'(单引号是「封印」,防止 Shell 搞事)。
echo 是另一个物种,比如 echo %PATH%,但功能远不如 Linux 的优雅。(手动狗头)
echo "人生苦短,我用 echo。" 简单、直接、不废话——这就是 echo 的极客哲学。下次写脚本时,记得让这个「复读机」帮你喊话、写文件、甚至假装在工作!(老板看不到的,放心。)
它的全名是 concatenate(拼接),但别被这名字吓到,它其实是文件界的瑞士军刀。任务就一条:把文件内容「喵」给你看!但它不仅能看文件,还能玩拼接、装高冷、甚至倒放人生……(误)
如果你对它说:
cat 日记.txt #假设文件里面有内容它会立刻把文件内容摊在屏幕上:
2023年10月1日:今天学会了用cat,感觉自己像个黑客! 想合并两个文件?cat 表示:「给我两片小鱼干(文件),还你一条大鱼!」
2023年10月1日:今天学会了用cat,感觉自己像个黑客!(> 表示把合并结果存到新文件,建议别轻易尝试合并「前半生」和「后半生」,容易引发哲学危机。)
想让 cat 装高冷学霸?加 -n 参数,连行号都给你标好!
cat -n 代码.c输出:
1 #include <摸鱼.h> //开个玩笑的~头文件要好好的写哦~
2 int main() {
3 printf("世界你好,但我不想动!");
4 }(行号暴露了你代码里的摸鱼痕迹……)
哦不,是反向输出!用 tac(cat 倒过来)指令:
tac 日记.txt输出:
2023年10月1日:今天学会了用cat,感觉自己像个黑客!看起来没变化?因为这日记只有一行……建议写长点再试!)
懒人必备!用 cat 直接键盘输入内容:
cat > 紧急备忘录.txt << EOF
1. 买咖啡
2. 假装在工作
3. 用cat查看老板的日程(划掉)
EOF(按 Ctrl+D 保存,深藏功与名。)
cat 查看超大文件(比如日志)时,它会一口气全吐出来,屏幕直接滚成瀑布!【所以我一般不推荐使用cat指令查看大型的文件,不然有你好果汁吃,嘻嘻~】 此时请用 less 或 more 指令,比如 less 巨型日志.log(猫表示:「我累了,换人!」)。【本来想讲这部分的,但我偷个懒,就不写了】
cat 不够酷,于是写了 dog 指令(彩色输出+语法高亮),但记住:狗是猫的加强版,但猫才是原配!【原配抵不过天降,总觉着哪里不对】
cat 常和其他指令「勾搭」干活,比如:
cat 日志.log | grep "error" # 过滤所有报错(摸鱼时快速甩锅用)
cat << EOF
猫有九条命,
cat 有九种用法。
—— 但第九种通常是老板没教你的那个!
EOF 简单、灵活、好奇心爆棚——这就是 cat 的极客精神。下次遇到文件时,记得召唤这只「好奇猫」,但别让它看到你的浏览器历史记录!(手动狗头)
cp,全称 copy(复制),它的任务看似简单——把文件从A地搬到B地,但这位「文件快递员」的职业生涯充满了血泪史:
但别慌,学会以下技巧,你就是它的金牌老板!
如果你对 cp 说:
cp 老板的废话.txt 我的脑子/ #要复制的文件到指定的目录下,此时就要结合之前学的目录相关的知识(^U^)ノ~YO它会默默把文件复制到指定目录,深藏功与名:
我的脑子/
└── 老板的废话.txt (但请注意:你的脑子可能会选择性拒绝接收该文件!)
默认 cp 会静默覆盖同名文件,像极了半夜偷偷改代码的你:
cp 摸鱼攻略.txt 工作日报.txt # 危险动作,请勿模仿! 这样可能会酿成大错哦~~(第二天:老板:「你的日报为什么写着『如何伪装编译错误』?」)
怕手滑?加 -i 参数让 cp 变成「纠结狂魔」:
cp -i 旧简历.txt 新简历.txt 输出:
cp: overwrite '新简历.txt'? (你丫想好了再按!) (此时建议输入 n 并火速删除旧简历中的「精通一切」字样。)
想复制整个文件夹?加 -r 参数,让 cp 化身「抄家大队长」:
cp -r 我的黑历史/ 备份硬盘/ # 建议加密后再操作 ,就比如后面我会讲述的文件以及目录的权限(注:-r 表示递归,适用于文件夹。如果失败,可能是你的黑历史太重了……)
想要强制复制整个文件夹?加 -f 参数,让 cp 化身「强拆大队长」:
cp -f 我的白历史/ 公司公共资源/ #建议自信后才这么做,不然文件是第一天发的,班是第二天辞的~ 加 -v 参数,让 cp 实时播报搬家进度:
cp -v 猫片.jpg 狗片.jpg /表情包/ 输出:
'猫片.jpg' -> '/表情包/猫片.jpg'
'狗片.jpg' -> '/表情包/狗片.jpg' (仿佛听到 cp 在喊:「搬完啦!求打赏小鱼干!」)
-u 参数,只有源文件比目标新时才复制:
cp -u 我的努力.txt 老板的眼里/ # 如果老板没发现,就不更新!
cp 会保留文件权限和修改时间(除非用 -p 参数故意不保留)。 而 Windows 的复制?呵,连权限都能搞丢。(再次手动狗头)
cp * ~/(复制所有文件到家目录),除非你想体验「文件雪崩」的绝望!
cp -i 勇气 智商 经验 # 覆盖人生前请三思! 快、准、狠——这是 cp 的职业素养,但请记住:「比猫咪打翻水杯更可怕的,是手滑的 cp 指令!」
mv,全称 move(移动),它看似是个「搬家工人」,实则是文件界的变形金刚——能移动、能重命名,甚至能「偷天换日」覆盖文件!但小心,它的座右铭是:「我搬过的文件,连原址都不敢回忆!」
如果你对 mv 说:
mv 摸鱼计划.txt 老板看不见的角落/ 它会瞬间把文件挪走,仿佛从未存在过:
老板看不见的角落/
└── 摸鱼计划.txt (注:老板的视力通常与该文件夹的路径成反比。)
想让文件「换马甲」?直接给新名字就行!
mv 离职申请.txt 年度奋进计划.txt # 职场生存必备技能 (第二天:老板:「这份计划书怎么透着一股悲壮的气息?」)
默认 mv 会直接覆盖同名文件,像极了删你代码还没 git commit 的同事:
mv 新数据.csv 旧数据.csv # 旧数据:我当时害怕极了…… (后果:你可能需要连夜跑路。)
加 -i 参数,让 mv 变成「碎碎念狂魔」:
mv -i 我的黑历史.zip 云备份/ 输出:
mv: overwrite '云备份/我的黑历史.zip'? (你确定云盘不会泄露吗?) (建议:输入 n,然后买个硬盘埋后院。)
和 cp 不同,mv 搬文件夹不用加参数,直接干!(有一次有人问我mv指令需不需要用-rf,我还傻呵呵的给他说必须用,结果他用了半天没用出来,最后还是我复习了之前的知识才想起来这件事)
mv 陈年旧代码/ 回收站/ # 表面风轻云淡,内心慌得一批 (注:如果 回收站/ 不存在,陈年旧代码/ 会改名为 回收站……建议提前买保险。)
加 -v 参数,让 mv 实时播报:
mv -v 老板的丑照.jpg 加密保险箱/ 输出:
'老板的丑照.jpg' -> '加密保险箱/老板的丑照.jpg' (仿佛听到 mv 说:「已安全转移,人质……啊不,文件平安!」)
mv 的真相:如果目标在同一磁盘,它只是改个路径(瞬间完成); 如果跨磁盘,它其实是「复制+删除」,慢得像在搬砖!(此时不如直接用 cp)
mv 把文件移到不存在的路径,文件会直接「被改名」:
mv 重要文件.txt /不存在的路径/ # 文件会改名为「不存在的路径」……祝你好运!
mv 隐藏文件(加前缀 .):
mv 摸鱼笔记.txt .摸鱼笔记.txt # 现在只有 `ls -a` 能看见它了,或者是'la'选项才可以看见哦~
(适用于「假装在工作」高级玩家。)
mv 过去 未来 # 过去的错误,就扔到未来的回收站吧! 快、准、狠——这是 mv 的职业修养,但请记住:「比误删文件更惨的,是手滑把文件 mv 进了黑洞!」
which,纯纯的就是一个选择性的路痴:它的任务很简单:告诉你某个命令到底藏在哪个犄角旮旃。但有个毛病:只认 PATH 环境变量里的路径(环境变量是我后来会讲述的内容),其他地方的命令?它表示:「看不见,下一个!」
如果你问它:
which python 它会回答:
/usr/bin/python # 「在这呢!但你是不是装了 10 个版本?」 (注:如果找不到,它会沉默得像被老板抓包的你。)
~/bin 但没加到 PATH,which 会直接装瞎:
which 我的摸鱼脚本.sh # 输出:空气
where 命令类似,但 Linux 的 which 更傲娇。
这位比 which 更八卦——不仅能找命令,还能挖出它的源码、手册页!但缺点是:只搜系统预设的目录(比如 /bin, /usr/share/man),其他地方它不关心!
如果你问:
whereis ls它会甩出一堆信息:
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gzwhich 一样,非系统目录的命令它直接无视。
whereis 会假装无事发生。
真正的搜索大佬!能按名字、大小、时间、权限……甚至文件内容满硬盘搜!但代价是:语法复杂得像侦探小说,一不小心就搜出 10 万个临时文件!
find / -name "摸鱼证据.txt" # 从根目录开始搜,但建议加降压药 ,这里就不出事结果了,因为我目前的CPU正在高速运转~ (后果:硬盘狂转,风扇起飞,CPU 大喊:「我要摸鱼!」)
find ~ -size +100M # 找出你硬盘里的「隐藏巨婴」 (输出:~/电影/未看完的1080p学习资料.mp4)
find /tmp -mtime +30 # 找出 30 天没碰过的临时文件(早该分手了!) 「找到后,顺便干点啥」
find . -name "*.log" -exec rm {} \; # 删除所有日志(谨慎!别删库跑路!) (-exec 表示让 find 兼职杀手,{} 是文件占位符,\; 是固定结尾)
find 加咖啡因。
/dev 是设备文件,用 find 搜它可能触发玄学 Bug。
which:「我就一路人甲,只认识城里的店!」
whereis:「我八卦,但只爆系统的料!」
find:「给我一个硬盘,我能搜到宇宙尽头!」
which whereis # 输出:whereis 在 /usr/bin/whereis
whereis find # 输出:find 在 /usr/bin/find 和它的手册页
find / -name "人生意义" # 输出:无(建议重启人类试试) grep,全称 Global Regular Expression Print(全局正则表达式打印),江湖人称「键盘界的Ctrl+F」,但比浏览器搜索硬核100倍——它能用正则表达式在文件大海里精准捞针,甚至能边捞边喊:「真相只有一个!」
如果你对 grep 说:
grep "error" 日志.txt # 在日志里搜所有「error」 它会立刻高亮显示所有匹配行:
ERROR 2023: 程序员因咖啡不足崩溃。
error 404: 智商未找到。 (注:大小写敏感是它的傲娇设定,Error 和 error 是两码事!)
加 -c 参数,直接告诉你抓了多少「嫌疑人」:
grep -c "摸鱼" 工作日报.txt # 输出:42 (老板:你一天摸42次鱼?鱼塘都被你摸秃了!)
用 -i 参数,让 grep 变成「脸盲侦探」:
grep -i "warning" 系统日志.txt # 连「WaRnInG」都逃不过! (适合抓那些喜欢伪装成「WARNING」的严重错误。)
加 -v 参数,专门排除符合条件的内容:
grep -v "TODO" 代码.py # 只看正经代码,假装TODO不存在 (输出:一片空白——原来你根本没写代码!)
用 -r 参数,让 grep 化身「文件挖掘机」:
grep -r "密码" ~/项目 # 搜索家目录下所有文件中的「密码」 (后果:可能发现你把数据库密码写在 test.txt 里……)
加 -n 参数,让匹配行「自曝坐标」:
grep -n "BUG" 代码.c 输出:
42: printf("这里有个BUG,但我不想修!"); (第42行:程序员の经典摆烂现场。)
用 -C 参数(比如 -C 2),展示案发现场的前后2行:
grep -C 2 "崩溃" 日志.txt 输出:
[时间] 尝试拯救世界...
[时间] 系统崩溃!
[时间] 程序员开始砸键盘。 (破案了:崩溃原因是键盘质量太差!)
grep 的终极技能是正则表达式,比如:
grep "^[A-Z]" 文件.txt # 抓所有以大写字母开头的行(适合找嚣张的错误)
(注:^ 表示行首,[A-Z] 表示大写字母,学废了吗?)
cat 勾搭干活,比如:
cat 日志.txt | grep "error" # 先让猫吐文件,再让grep抓重点
(但其实可以省掉 cat:grep "error" 日志.txt)
egrep 和 fgrep!」
egrep:支持扩展正则表达式(比如 +, ? 不用转义)。
fgrep:固定字符串搜索(速度更快,适合没正则的情况)。
grep "智慧" 大脑内存.txt # 输出:查无此词! 快、准、狠——这是 grep 的破案哲学,但请记住:「比找不到关键词更可怕的,是grep到了老板的敏感词!」
今天的博客之旅到这里也就结束了,今天讲述了不少的指令,希望各位读者之后会好好的复习这些代码,不然我就会用mv指令快速移动到你身边然后rm你哦~好了,不闹着玩了,指令的记忆不是靠死记硬背,而是靠每天的练习,这样会让自己的记忆变的更加深刻,今天的同居日记已结束,各位朋友们下次见啦!