前言:
上一篇我们学会了怎么“摇人”(查Google、逛社区)。
今天我们要正式动刀了。毕竟,光会看文件(ls)是不够的,我们得学会创造文件和修改文件。
这时候,你将迎来 Linux 学习路上的第一个大BOSS——Vim 编辑器。
1. 热身运动:不打开文件也能写字?
在 Windows 里,我们要写个文档,通常是:右键新建 -> 双击打开 -> 打字 -> 保存。
但在 Linux 命令行里,我们有更骚的操作:重定向。
1.1 创建文件的两种姿势
首先,我们先建个专门练习的房间(文件夹):
mkdir study_vim
cd study_vim
姿势一:摸一下 (touch)
如果你只是想创建一个空文件,占个坑,以后再写内容:
touch new_file.txt
姿势二:大喊一声 (echo)echo 是“回声”的意思。它可以把你说的话“重定向”进文件里。
我们来做个实验(有点中二,请忍耐):
echo "I hate you" > message.txt
这行命令的意思是:把 “I hate you” 这句话,丢进 message.txt 里。如果文件不存在,它会自动创建。
1.2 看看里面是啥 (cat)
不要去双击文件!用 cat 命令直接在终端把内容“吐”出来:
cat message.txt
屏幕上应该会显示:I hate you。
⚠️ 危险知识点: > 和 >> 的区别
我们再试一次。我觉得仇恨不够深,想多说一遍。
如果你用了单箭头 > :
echo "I hate you" > message.txt
你会发现,无论执行多少次,文件里永远只有一行字。因为 > 会覆盖原内容(先把文件清空,再写入)。
如果你用了双箭头 >> :
echo "I hate you" >> message.txt
echo "I hate you" >> message.txt
这时候再 cat 一下,你会发现变成了多行。因为 >> 是追加(在屁股后面接着写)。
小白心得: 以后写日志或者追加记录时,千万记得用两个箭头
>>,否则你的旧数据就全没了!
2. 噩梦的开始:Vim 编辑器
echo 只能写简单的话,如果我要写一篇作文,或者修改配置文件,就得用编辑器了。
Linux 自带的神器叫 Vim。
网上的程序员段子:“如何产生随机字符串?让一个新手退出 Vim 即可。”
今天我们就来打破这个魔咒。
2.1 进入 Vim
我们要修改刚才那个充满怨念的文件:
vim message.txt
按回车后,你进入了一个新界面。这时候,千万别乱按!
你会发现不管敲什么字母,屏幕上大概率没反应,或者光标乱跳。
这是因为 Vim 默认处于“高冷模式” (Normal Mode)。在这个模式下,键盘是用来发号施令的,不是用来打字的。
2.2 变身:插入模式 (Insert Mode)
想打字?请按下键盘上的小写字母 i 。
- 注意看屏幕左下角,是不是出现了
-- INSERT --字样? - 恭喜你,现在它变成了一个普通的记事本。你可以用方向键移动光标,把那几句
I hate you删掉,改成I love you。
2.3 逃离:保存并退出
改完了,怎么保存?按 Ctrl+S 是没用的。
你需要遵循以下严格的步骤(请背诵):
- 按一下
Esc键:左下角的-- INSERT --消失,回到“高冷模式”。 - 输入冒号
::你会看到光标跳到了屏幕最底端。 - 输入
wq:
–w= Write (保存)
–q= Quit (退出) - 按回车:Mission Completed!
🆘 救命指南:如果我改乱了,不想保存怎么办?
按Esc,输入:q!然后回车。!代表强制。意思是:“别废话,我不要了,放我出去!”
2.4 高阶魔法:一键替换
假如你的文件里有 100 句 I hate you,一行行改太累了。
Vim 有个强大的替换功能。在“高冷模式”下(按 Esc 后),输入以下咒语:
:%s/hate/love/g
%s:全文搜索。hate:要找的词。love:要换成的词。g:全局 (Global),一行里出现多次也全部替换。
按回车,瞬间世界充满了爱。再次输入 :wq 保存退出。
3. 可能会遇到的坑
恐怖的 .swp 文件
如果你之前的 SSH 突然断线了,或者你直接关掉了窗口没正常退出 Vim。下次你再打开文件时,会看到一个红色的报错界面:Found a swap file...
解决办法:
1. 按 q 退出。
2. 找到那个生成的临时垃圾文件(通常是 .文件名.swp),删掉它:
rm .message.txt.swp
这样世界就清净了。
博主总结:
Vim 看起来很反人类,但它是 Linux 的基础技能。等你熟练了,手指不离键盘就能在这个黑框里飞舞,那种感觉——真的很像黑客!
一定要多练习:进入 -> i -> 写字 -> Esc -> :wq。
形成肌肉记忆,你就入门了!