前情提要:
当你和终端的关系从「早安打卡」进阶到「深夜代码同居」,那些曾经高冷的指令开始展露致命の反差萌——
-
man
是那个永远在线的钢铁直男说明书,只会说:"想懂我?自己看文档!"(但你不得不承认,他的确随叫随到) -
mv
像极了热衷搬家的前任,能把你的青春回忆从/home/初恋
一键转移到/tmp/心碎回收站
-
nano
是初恋记事本,虽然功能朴素,但总在Ctrl+X
时温柔问你:"要保存这份心动吗?"
本季同居守则:
1. 暧昧期必杀技:指令界的「情感翻译官」
-
echo "今晚月色真美" > 告白.txt
-
直男式浪漫:用重定向符
>
把心跳声写入文本(副作用:覆盖式表白可能引发IOError: 已读不回
)
-
-
cat 日记.log | grep "crush"
-
在百万行的生活日志里,精准捕捞那个TA出现的瞬间(警告:可能挖出黑历史导致
段错误
)
-
2. 危险关系の艺术:文件界的「替身文学」
-
cp -r 前任/ 新欢/ --小心心备份=all
-
海王の觉悟:用递归复制保留所有纪念品(但
diff
会无情揭穿:"新欢和前任的md5一模一样!")
-
-
which python
-
鉴渣神器:查清那个口口声声说只爱你一人的Python,到底在
/usr/bin
藏了多少个版本备胎
-
3. 终极灵魂拷问:当指令学会PUA
-
man 爱情
-
系统冷冰冰地提示:
No manual entry for 爱情
(但偷偷用apropos 心动
能搜到隐藏章节)
-
-
sudo rm -rf 犹豫/
-
用管理员权限删除所有迟疑(副作用:可能误删
/未来/承诺
目录)
-
新手指南:同居必备神器
-
nano 分手信.txt
-
用最朴素的编辑器写下最痛的句子(若手抖按了
Ctrl+S
,请速用mv 分手信.txt /dev/null
撤回)
-
-
man 7 恋爱哲学
-
隐藏章节揭示真理:
爱情 ≈ 管道符 | 你的输出必须是我的输入 但永远不要用 > 覆盖对方的灵魂
-
现在,深呼吸 在终端敲下这封加密情书:
echo "SSBsb3ZlIHlvdSAK" | base64 -d
让Linux告诉你—— 有些指令不需要手册,因为心跳的源码早已开源 💻💓
1.man指令
1.1.man指令是什么:Linux的百科知识全书
可能当很多小伙伴看到这个指令名字的时候,脑袋里会浮现出那个男人的身影,并且会想起一个当今比较热门的梗:man!当然,这个指令和这些可是没有任何关系,man指令可以说是一个比较热门的指令,因为我们会在学习Linux的时候多次使用到它,它其实就是一个Linux的知识百科全书。
1.2.man指令的用法:一看就懂
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函数来帮助我们相关函数的查找,而不用再去一些平台找相关的解释了。
1.3.man指令可能出现的错误
在我们使用man函数的时候,我们可能想要使用man 3 printf的指令,可能部分读者无法使用这个功能,这是因为部分云服务器删减了不少内容,这个手册相关的内容也进行了删除(因为保证功能太多而浪费掉),所以可以用下面这个指令把这个手册下回来:
yum install -y man-pages #这样就可以使用3的功能了
2.echo指令
1.echo:Linux 界的「复读机」,但比鹦鹉靠谱!
echo指令实际上算是Linux中最没有“存在感”但确实常常被使用的指令了,因为它的功能实际上是很简单的,它的名字听起来像在说:「欸,我在呢!」(Echo:回音),但它的真实身份其实是命令行界的复读机。它的任务很简单:你喂它什么,它就吐什么。但别小看它!这货可是隐藏了无数骚操作的宝藏工具(就比如之后让我难受好几天的重定向操作)。
2.echo的用法:比"hello world"还简单
它的用法很经典,如果你给它说:
echo "我是以后的技术大佬!" #这个引号可以不加,纯纯的写C++习惯了,看到个字符串默认""
它给你回:
3.高级玩法:echo の 魔法时刻
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 的冷知识
-
「我到底说了啥?」 如果输入
echo *
,它会列出当前目录所有文件(因为*
被 Shell 先解析了)。 如果想原样输出*
,请用单引号:echo '*'
(单引号是「封印」,防止 Shell 搞事)。 -
「Windows 用户别学我!」 Windows 的
echo
是另一个物种,比如echo %PATH%
,但功能远不如 Linux 的优雅。(手动狗头)
总结:echo 的「人生信条」
echo "人生苦短,我用 echo。"
简单、直接、不废话——这就是 echo
的极客哲学。下次写脚本时,记得让这个「复读机」帮你喊话、写文件、甚至假装在工作!(老板看不到的,放心。)
3.cat指令
3.1.cat:Linux 界的「文件魔术师」,但比你家猫还好奇!
它的全名是 concatenate
(拼接),但别被这名字吓到,它其实是文件界的瑞士军刀。任务就一条:把文件内容「喵」给你看!但它不仅能看文件,还能玩拼接、装高冷、甚至倒放人生……(误)
3.2.基础用法:喵星人的偷窥欲
如果你对它说:
cat 日记.txt #假设文件里面有内容
它会立刻把文件内容摊在屏幕上:
2023年10月1日:今天学会了用cat,感觉自己像个黑客!
3.3.高级玩法:cat の 九条命
1.合并文件的魔法(文件拼接)
想合并两个文件?cat
表示:「给我两片小鱼干(文件),还你一条大鱼!」
2023年10月1日:今天学会了用cat,感觉自己像个黑客!
(>
表示把合并结果存到新文件,建议别轻易尝试合并「前半生」和「后半生」,容易引发哲学危机。)
2.高冷模式(显示行号)
想让 cat
装高冷学霸?加 -n
参数,连行号都给你标好!
cat -n 代码.c
输出:
1 #include <摸鱼.h> //开个玩笑的~头文件要好好的写哦~
2 int main() {
3 printf("世界你好,但我不想动!");
4 }
(行号暴露了你代码里的摸鱼痕迹……)
3.倒放人生(反向输出)
哦不,是反向输出!用 tac
(cat 倒过来)指令:
tac 日记.txt
输出:
2023年10月1日:今天学会了用cat,感觉自己像个黑客!
看起来没变化?因为这日记只有一行……建议写长点再试!)
4.无中生有(快速创建文件)
懒人必备!用 cat
直接键盘输入内容:
cat > 紧急备忘录.txt << EOF
1. 买咖啡
2. 假装在工作
3. 用cat查看老板的日程(划掉)
EOF
(按 Ctrl+D
保存,深藏功与名。)
cat 的冷知识
-
「别拿我当铲屎官!」 用
cat
查看超大文件(比如日志)时,它会一口气全吐出来,屏幕直接滚成瀑布!【所以我一般不推荐使用cat指令查看大型的文件,不然有你好果汁吃,嘻嘻~】 此时请用less
或more
指令,比如less 巨型日志.log
(猫表示:「我累了,换人!」)。【本来想讲这部分的,但我偷个懒,就不写了】 -
「我和狗(dog)有什么关系?」 有人觉得
cat
不够酷,于是写了dog
指令(彩色输出+语法高亮),但记住:狗是猫的加强版,但猫才是原配!【原配抵不过天降,总觉着哪里不对】 -
「我是管道工的好朋友!」
cat
常和其他指令「勾搭」干活,比如:cat 日志.log | grep "error" # 过滤所有报错(摸鱼时快速甩锅用)
总结:cat 的「喵生信条」
cat << EOF
猫有九条命,
cat 有九种用法。
—— 但第九种通常是老板没教你的那个!
EOF
简单、灵活、好奇心爆棚——这就是 cat
的极客精神。下次遇到文件时,记得召唤这只「好奇猫」,但别让它看到你的浏览器历史记录!(手动狗头)
4.cp指令
4.1.cp:Linux 界的「文件快递员」,但比搬家小哥更怕丢件!
cp
,全称 copy
(复制),它的任务看似简单——把文件从A地搬到B地,但这位「文件快递员」的职业生涯充满了血泪史:
-
搞丢文件? 当场失业!
-
覆盖文件? 用户暴走!
-
忘记参数? 直接emo……
但别慌,学会以下技巧,你就是它的金牌老板!
4.2.基础用法:复制粘贴,但不用Ctrl键
如果你对 cp
说:
cp 老板的废话.txt 我的脑子/ #要复制的文件到指定的目录下,此时就要结合之前学的目录相关的知识(^U^)ノ~YO
它会默默把文件复制到指定目录,深藏功与名:
我的脑子/ └── 老板的废话.txt
(但请注意:你的脑子可能会选择性拒绝接收该文件!)
4.3.高级玩法:cp の 反卷指南
1.暴力搬家(覆盖文件不提醒)
默认 cp
会静默覆盖同名文件,像极了半夜偷偷改代码的你:
cp 摸鱼攻略.txt 工作日报.txt # 危险动作,请勿模仿! 这样可能会酿成大错哦~~
(第二天:老板:「你的日报为什么写着『如何伪装编译错误』?」)
2.求生欲模式(覆盖前询问)
怕手滑?加 -i
参数让 cp
变成「纠结狂魔」:
cp -i 旧简历.txt 新简历.txt
输出:
cp: overwrite '新简历.txt'? (你丫想好了再按!)
(此时建议输入 n
并火速删除旧简历中的「精通一切」字样。)
3.抄家式复制(递归复制文件夹)
想复制整个文件夹?加 -r
参数,让 cp
化身「抄家大队长」:
cp -r 我的黑历史/ 备份硬盘/ # 建议加密后再操作 ,就比如后面我会讲述的文件以及目录的权限
(注:-r
表示递归,适用于文件夹。如果失败,可能是你的黑历史太重了……)
4.强制式复制(强行复制文件or目录)
想要强制复制整个文件夹?加 -f
参数,让 cp
化身「强拆大队长」:
cp -f 我的白历史/ 公司公共资源/ #建议自信后才这么做,不然文件是第一天发的,班是第二天辞的~
5.戏精附体(显示复制的详情)
加 -v
参数,让 cp
实时播报搬家进度:
cp -v 猫片.jpg 狗片.jpg /表情包/
输出:
'猫片.jpg' -> '/表情包/猫片.jpg' '狗片.jpg' -> '/表情包/狗片.jpg'
(仿佛听到 cp
在喊:「搬完啦!求打赏小鱼干!」)
4.4.cp 的冷知识
-
「我是时间管理大师!」
用
-u
参数,只有源文件比目标新时才复制:cp -u 我的努力.txt 老板的眼里/ # 如果老板没发现,就不更新!
-
「我比Ctrl+C更正经!」
cp
会保留文件权限和修改时间(除非用-p
参数故意不保留)。 而 Windows 的复制?呵,连权限都能搞丢。(再次手动狗头) -
「毁灭性操作:复制到黑洞」
永远别尝试
cp * ~/
(复制所有文件到家目录),除非你想体验「文件雪崩」的绝望!
总结:cp の 生存法则
cp -i 勇气 智商 经验 # 覆盖人生前请三思!
快、准、狠——这是 cp
的职业素养,但请记住:「比猫咪打翻水杯更可怕的,是手滑的 cp
指令!」
5.mv指令
5.1.mv:Linux 界的「文件忍者」,但比魔术师更会玩消失!
mv
,全称 move
(移动),它看似是个「搬家工人」,实则是文件界的变形金刚——能移动、能重命名,甚至能「偷天换日」覆盖文件!但小心,它的座右铭是:「我搬过的文件,连原址都不敢回忆!」
5.2.基础用法:文件瞬移术
1.普通搬家(移动文件)
如果你对 mv
说:
mv 摸鱼计划.txt 老板看不见的角落/
它会瞬间把文件挪走,仿佛从未存在过:
老板看不见的角落/ └── 摸鱼计划.txt
(注:老板的视力通常与该文件夹的路径成反比。)
2.原地变身(重命名文件)
想让文件「换马甲」?直接给新名字就行!
mv 离职申请.txt 年度奋进计划.txt # 职场生存必备技能
(第二天:老板:「这份计划书怎么透着一股悲壮的气息?」)
5.3.高级玩法:mv の 暗黑艺术
1.静默覆盖(危险の美学)
默认 mv
会直接覆盖同名文件,像极了删你代码还没 git commit
的同事:
mv 新数据.csv 旧数据.csv # 旧数据:我当时害怕极了……
(后果:你可能需要连夜跑路。)
2.求生模式(覆盖前询问)
加 -i
参数,让 mv
变成「碎碎念狂魔」:
mv -i 我的黑历史.zip 云备份/
输出:
mv: overwrite '云备份/我的黑历史.zip'? (你确定云盘不会泄露吗?)
(建议:输入 n
,然后买个硬盘埋后院。)
3.暴力搬家公司(移动整个文件夹)
和 cp
不同,mv
搬文件夹不用加参数,直接干!(有一次有人问我mv指令需不需要用-rf,我还傻呵呵的给他说必须用,结果他用了半天没用出来,最后还是我复习了之前的知识才想起来这件事)
mv 陈年旧代码/ 回收站/ # 表面风轻云淡,内心慌得一批
(注:如果 回收站/
不存在,陈年旧代码/
会改名为 回收站
……建议提前买保险。)
4.戏精模式(显示搬运动作)
加 -v
参数,让 mv
实时播报:
mv -v 老板的丑照.jpg 加密保险箱/
输出:
'老板的丑照.jpg' -> '加密保险箱/老板的丑照.jpg'
(仿佛听到 mv
说:「已安全转移,人质……啊不,文件平安!」)
5.4.mv的冷知识
-
「我和 cp 是塑料兄弟!」
mv
的真相:如果目标在同一磁盘,它只是改个路径(瞬间完成); 如果跨磁盘,它其实是「复制+删除」,慢得像在搬砖!(此时不如直接用cp
) -
「我比删除键更可怕!」 用
mv
把文件移到不存在的路径,文件会直接「被改名」:mv 重要文件.txt /不存在的路径/ # 文件会改名为「不存在的路径」……祝你好运!
-
「我能让文件『社死』!」 用
mv
隐藏文件(加前缀.
):mv 摸鱼笔记.txt .摸鱼笔记.txt # 现在只有 `ls -a` 能看见它了,或者是'la'选项才可以看见哦~
(适用于「假装在工作」高级玩家。)
5.5.总结:mvの忍者信条
mv 过去 未来 # 过去的错误,就扔到未来的回收站吧!
快、准、狠——这是 mv
的职业修养,但请记住:「比误删文件更惨的,是手滑把文件 mv 进了黑洞!」
6.which,find,whereis指令
6.1.which:Linux 界的「路痴导航员」,但只会指路 PATH 里的店!
which,纯纯的就是一个选择性的路痴:它的任务很简单:告诉你某个命令到底藏在哪个犄角旮旃。但有个毛病:只认 PATH
环境变量里的路径(环境变量是我后来会讲述的内容),其他地方的命令?它表示:「看不见,下一个!」
1.基础用法:找命令的「藏身之处」
如果你问它:
which python
它会回答:
/usr/bin/python # 「在这呢!但你是不是装了 10 个版本?」
(注:如果找不到,它会沉默得像被老板抓包的你。)
2.冷知识:
-
「我拒绝搜索你的私人小仓库!」 如果你自己写了脚本放在
~/bin
但没加到PATH
,which
会直接装瞎:which 我的摸鱼脚本.sh # 输出:空气
-
「我和 Windows 的 where 是远房亲戚!」 Windows 的
where
命令类似,但 Linux 的which
更傲娇。
6.2.whereis:Linux 界的「文件八卦记者」,但只爆料系统知道的事!
这位比 which
更八卦——不仅能找命令,还能挖出它的源码、手册页!但缺点是:只搜系统预设的目录(比如 /bin
, /usr/share/man
),其他地方它不关心!
1.基础用法:查命令的「 全家桶」
如果你问:
whereis ls
它会甩出一堆信息:
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
2.冷知识:
-
「你的自定义命令?我不熟!」 和
which
一样,非系统目录的命令它直接无视。 -
「源码?可能被我吃掉了!」 有些命令安装时没带源码,
whereis
会假装无事发生。
6.3.find:Linux 界的「文件福尔摩斯」,但查案时能把你 CPU 跑炸!
真正的搜索大佬!能按名字、大小、时间、权限……甚至文件内容满硬盘搜!但代价是:语法复杂得像侦探小说,一不小心就搜出 10 万个临时文件!
1.基础用法:按名字搜文件
find / -name "摸鱼证据.txt" # 从根目录开始搜,但建议加降压药 ,这里就不出事结果了,因为我目前的CPU正在高速运转~
(后果:硬盘狂转,风扇起飞,CPU 大喊:「我要摸鱼!」)
2.高级玩法:
-
按大小抓「胖子文件」
find ~ -size +100M # 找出你硬盘里的「隐藏巨婴」
(输出:
~/电影/未看完的1080p学习资料.mp4
) -
按时间抓「旧爱」
find /tmp -mtime +30 # 找出 30 天没碰过的临时文件(早该分手了!)
-
「找到后,顺便干点啥」
find . -name "*.log" -exec rm {} \; # 删除所有日志(谨慎!别删库跑路!)
(
-exec
表示让find
兼职杀手,{}
是文件占位符,\;
是固定结尾)
3.冷知识:
-
「我比 Windows 搜索强 100 倍,但用户怕我!」 Windows 用户搜文件靠点击,Linux 用户靠
find
加咖啡因。 -
「别让我搜 /dev,那里全是鬼!」
/dev
是设备文件,用find
搜它可能触发玄学 Bug。
6.4.总结:三巨头的「职场定位」
-
which
:「我就一路人甲,只认识城里的店!」 -
whereis
:「我八卦,但只爆系统的料!」 -
find
:「给我一个硬盘,我能搜到宇宙尽头!」
6.5.灵魂拷问
which whereis # 输出:whereis 在 /usr/bin/whereis
whereis find # 输出:find 在 /usr/bin/find 和它的手册页
find / -name "人生意义" # 输出:无(建议重启人类试试)
7.grep指令
7.1.grep:Linux 界的「文字侦探」,但比柯南更爱找茬!
grep
,全称 Global Regular Expression Print(全局正则表达式打印),江湖人称「键盘界的Ctrl+F」,但比浏览器搜索硬核100倍——它能用正则表达式在文件大海里精准捞针,甚至能边捞边喊:「真相只有一个!」
7.2.基础用法:字里行间的「捉迷藏」
1.普通搜索(按关键词抓人)
如果你对 grep
说:
grep "error" 日志.txt # 在日志里搜所有「error」
它会立刻高亮显示所有匹配行:
ERROR 2023: 程序员因咖啡不足崩溃。
error 404: 智商未找到。
(注:大小写敏感是它的傲娇设定,Error
和 error
是两码事!)
2.全员逮捕(统计匹配次数)
加 -c
参数,直接告诉你抓了多少「嫌疑人」:
grep -c "摸鱼" 工作日报.txt # 输出:42
(老板:你一天摸42次鱼?鱼塘都被你摸秃了!)
7.3.高级玩法:grep の 刑侦手段
1.忽略大小写(大小通吃)
用 -i
参数,让 grep
变成「脸盲侦探」:
grep -i "warning" 系统日志.txt # 连「WaRnInG」都逃不过!
(适合抓那些喜欢伪装成「WARNING」的严重错误。)
2.反向逮捕(排除法)
加 -v
参数,专门排除符合条件的内容:
grep -v "TODO" 代码.py # 只看正经代码,假装TODO不存在
(输出:一片空白——原来你根本没写代码!)
3.地毯式搜索(递归搜索目录)
用 -r
参数,让 grep
化身「文件挖掘机」:
grep -r "密码" ~/项目 # 搜索家目录下所有文件中的「密码」
(后果:可能发现你把数据库密码写在 test.txt
里……)
4.带行号招供(显示行号)
加 -n
参数,让匹配行「自曝坐标」:
grep -n "BUG" 代码.c
输出:
42: printf("这里有个BUG,但我不想修!");
(第42行:程序员の经典摆烂现场。)
5.查案带上下文(显示前后内容)
用 -C
参数(比如 -C 2
),展示案发现场的前后2行:
grep -C 2 "崩溃" 日志.txt
输出:
[时间] 尝试拯救世界...
[时间] 系统崩溃!
[时间] 程序员开始砸键盘。
(破案了:崩溃原因是键盘质量太差!)
7.4.grep的冷知识
-
「我和正则表达式是CP!」
grep
的终极技能是正则表达式,比如:grep "^[A-Z]" 文件.txt # 抓所有以大写字母开头的行(适合找嚣张的错误)
(注:
^
表示行首,[A-Z]
表示大写字母,学废了吗?) -
「我比猫(cat)更懂文件!」 常和
cat
勾搭干活,比如:cat 日志.txt | grep "error" # 先让猫吐文件,再让grep抓重点
(但其实可以省掉
cat
:grep "error" 日志.txt
) -
「我有个花里胡哨的亲戚——
egrep
和fgrep
!」-
egrep
:支持扩展正则表达式(比如+
,?
不用转义)。 -
fgrep
:固定字符串搜索(速度更快,适合没正则的情况)。
-
总结:grep の 侦探守则
grep "智慧" 大脑内存.txt # 输出:查无此词!
快、准、狠——这是 grep
的破案哲学,但请记住:「比找不到关键词更可怕的,是grep到了老板的敏感词!」
8.总结
今天的博客之旅到这里也就结束了,今天讲述了不少的指令,希望各位读者之后会好好的复习这些代码,不然我就会用mv指令快速移动到你身边然后rm你哦~好了,不闹着玩了,指令的记忆不是靠死记硬背,而是靠每天的练习,这样会让自己的记忆变的更加深刻,今天的同居日记已结束,各位朋友们下次见啦!
是