3、Linux操作系统基础:Linux简介、常用命令、文件权限管理、vim编辑器基础

好,咱们正式开始接触Linux。说实话,很多刚入行的朋友一听到Linux就觉得头大,觉得那是大神才玩的东西。其实真不是这样。我当年第一次接触Linux,是在一个嵌入式项目里,老板扔给我一块开发板,说「你把它跑起来」。我盯着黑乎乎的终端,连怎么关机都不知道……嗯,后来硬着头皮啃了三天,发现这东西一旦上手,比Windows顺手多了。

为什么嵌入式开发离不开Linux?你想想看,从路由器到智能手表,从无人机到游戏掌机,底层跑的基本都是Linux。它开源、稳定、资源占用小,而且你能看到每一行代码。说白了,搞嵌入式不会Linux,就像开车不会挂挡——也能走,但总差点意思。

3.1 Linux简介:它到底是什么?

Linux本质上是一个操作系统内核。我们平时说的「Ubuntu」「Debian」「CentOS」,其实都是在Linux内核上套了一层外壳(发行版)。对于掌机开发,我个人推荐用Ubuntu或者Debian,社区活跃,遇到问题一搜就有答案。

Linux的设计哲学很简单:一切皆文件。你的键盘是文件,屏幕是文件,甚至CPU和内存的状态也是文件。这种设计让系统变得非常统一——你学会操作文件,就等于学会了操作整个系统。

我的小建议: 刚开始别急着装图形界面。强迫自己在终端里待一周,你会发现自己进步飞快。我在带团队时,新人都得先过「纯命令行生存」这一关。

3.2 常用命令:你的瑞士军刀

命令是Linux的魂。别怕记不住,常用的就那么十来个。我用了十年,每天高频使用的也不超过20个。下面这几个,你必须刻进肌肉记忆里。

3.2.1 ls —— 看看目录里有什么

ls              # 列出当前目录的文件
ls -l           # 详细列表(权限、大小、日期)
ls -a           # 显示隐藏文件(以.开头的文件)
ls -lh          # 人性化显示大小(K、M、G)

我习惯用 ls -lh,一眼就能看出哪个文件占地方。有一次排查掌机存储空间不足,就是靠这个命令发现了一个巨大的日志文件。

3.2.2 cd —— 在目录间穿梭

cd /home/user   # 绝对路径跳转
cd ..           # 返回上一级
cd ~            # 回到家目录
cd -            # 返回上一次所在的目录

cd - 这个用法很实用。我在两个目录间来回切换编译代码时,全靠它省时间。

3.2.3 mkdir —— 创建目录

mkdir my_project
mkdir -p a/b/c/d   # 递归创建多级目录

-p 参数是个好东西。你不需要先建a,再建b,再建c。一条命令搞定。

3.2.4 rm —— 删除(小心!)

rm file.txt         # 删除文件
rm -r my_folder     # 删除目录(递归)
rm -f file.txt      # 强制删除,不提示
我曾经…… 有一次在服务器上执行 rm -rf / 的变体,差点把整个系统删了。记住:rm 没有回收站,删了就真没了。尤其是 rm -rf,用之前一定确认路径。

3.2.5 cp —— 复制

cp source.txt dest.txt          # 复制文件
cp -r source_folder dest_folder # 复制整个目录
cp -i source.txt dest.txt       # 覆盖前先询问

我写脚本时经常用 cp -i,防止手滑覆盖了重要配置文件。

3.2.6 mv —— 移动或重命名

mv old.txt new.txt      # 重命名
mv file.txt /tmp/       # 移动到/tmp目录

mv 其实干了两件事:改名和搬家。在嵌入式开发中,我常用它来替换固件版本——先把旧固件mv成备份,再把新固件mv过来。

3.3 文件权限管理:别让不该看的人看了

Linux是多用户系统,权限管理是安全的基础。你想想看,如果谁都能改系统文件,那不乱套了?

ls -l 看文件,第一列就是权限信息,比如:

-rwxr-xr--  1 user group  1024 Mar 15 10:00 my_script.sh

这串字符分成四段:

位置 含义 示例
第1位 文件类型(-普通文件,d目录,l链接) -
第2-4位 文件所有者(user)的权限 rwx(读、写、执行)
第5-7位 所属组(group)的权限 r-x(读、执行)
第8-10位 其他人(others)的权限 r--(只读)

修改权限用 chmod 命令。有两种方式:

# 符号方式
chmod u+x my_script.sh    # 给所有者加执行权限
chmod g-w my_script.sh    # 给组去掉写权限
chmod o=r my_script.sh    # 其他人只能读

# 数字方式(r=4, w=2, x=1)
chmod 755 my_script.sh    # 所有者:7(4+2+1), 组:5(4+1), 其他人:5
chmod 644 my_script.sh    # 所有者:6(4+2), 组:4, 其他人:4

实用经验: 在嵌入式开发中,可执行文件通常用755,配置文件用644。脚本文件别忘了加执行权限(chmod +x),不然系统会告诉你「Permission denied」——我第一次遇到这个错误时,愣是查了半天才反应过来。

3.4 vim编辑器基础:终端里的神兵利器

说到vim,很多人又爱又恨。爱的是它效率极高,恨的是学习曲线陡峭。我刚开始用vim时,连退出都不会,只能关终端重开……后来才知道要按 :q!

vim有三种模式,这是理解它的关键:

模式 作用 如何进入
普通模式 移动光标、复制粘贴、删除 启动vim时默认
插入模式 输入文字 按 i
命令模式 保存、退出、搜索替换 按 :

你只需要记住这几个操作,就能应付90%的场景:

# 打开文件
vim my_file.c

# 进入插入模式(开始写代码)
i

# 退出插入模式回到普通模式
Esc

# 保存并退出
:wq

# 不保存强制退出
:q!

# 在普通模式下复制一行
yy

# 粘贴
p

# 删除一行
dd

# 撤销
u

# 搜索某个词
/关键词  然后按 n 跳到下一个

我的习惯: 在嵌入式开发中,我经常用vim同时打开多个文件:vim -O file1.c file2.c 可以分屏显示。用 Ctrl+w 加方向键切换窗口,效率非常高。

说实话,vim不需要一开始就学得很深。你只要会打开文件、编辑、保存退出,就能干活了。其他的快捷键,用到一个学一个,慢慢就熟练了。我到现在也记不住所有快捷键,但常用的那几个闭着眼睛都能敲出来。

好了,这一章的内容就是这些。Linux命令这东西,光看没用,你得在终端里敲。找个虚拟机或者拿块开发板,把今天学的命令挨个试一遍。遇到报错别慌——我当年报的错比你多得多,每个错误都是学习的机会。