很多人第一次听到 Linux 桌面,脑子里浮现的还是黑底白字和一堆看不懂的命令;但真正的转折点,往往是从装上一套 Ubuntu 开始的。我这些年帮人折腾过的机器没有一百也有八十台,从旧笔记本复活到工作站双系统,Ubuntu 是出场率最高的那个。它把 Linux 的门槛拉到了普通人也能上手的水平:图形界面完整、软件仓库庞大、社区文档多到几乎你遇到的每个报错都能搜到。这篇东西想讲清楚三件事:Ubuntu 到底该装哪个版本、装完之后那一小时要做哪些调整、以及日常八成操作背后的命令逻辑。不管你是完全没碰过 Linux 的新手,还是装过几次但总在同一个地方卡住的老哥,下面这些内容应该都能直接拿去用。顺便提一句,这系统正确拼写是 Ubuntu,网上大量的“Ubantu”都是错拼,你搜资料的时候两种都试试,命中率会高不少。
1. 先把要装的东西想明白:版本选型与落地方式
1.1 桌面版、服务器版、LTS 与 interim 版本的区别
选版本这一步看似简单,实际决定了你后面半年到两年的体验。Ubuntu 的发布节奏是固定的:每年 4 月和 10 月各发一版,版本号就是“年份.月份”。其中尾号 04 的是 4 月发布,10 的是 10 月发布。而带 LTS 后缀的是长期支持版,桌面版支持 3 年、服务器版支持 5 年(部分版本可扩展到 10 年,需要额外订阅,个人用户不用管这个);不带 LTS 的属于过渡版本,官方支持期只有 9 个月。
为什么我一直劝人只装 LTS?因为 9 个月的支持期意味着你每隔大半年就得做一次大版本升级,而跨版本升级恰恰是 Linux 桌面最容易出事的环节——第三方驱动、闭源软件、自己编译的东西,都可能在升级后失效。LTS 版本可以把这件事推到两三年一次,中间只做小版本的安全更新,稳定性完全不是一个量级。
桌面版和服务器版的差别比很多人想的小。两者内核、软件源、包管理体系完全一致,服务器版只是默认不装图形环境,镜像体积小、内存占用低。想省资源的老机器可以装服务器版再手动补一个轻量桌面环境;反过来,桌面版也能当服务器用,只是白白浪费几百兆内存。
提示:如果你只是想在虚拟机里体验一下,装最新 LTS 就行,别去追过渡版本,那些版本的新特性对你的日常使用几乎没有影响,反而会带来额外的兼容性风险。
关于硬件门槛,官方给的最低配置其实很宽松,但那是“能开机”的标准,不是“能用得舒服”的标准。我的经验是:4GB 内存是底线,8GB 才能同时开浏览器加几个终端,16GB 以上才谈得上开发工作。硬盘方面 SSD 是刚需,机械盘跑 Ubuntu 桌面会卡到怀疑人生。显卡这块,集成显卡基本免驱,独立显卡(尤其较新的型号)需要额外折腾驱动,后面会专门讲。
1.2 物理机、双系统、虚拟机三条路的取舍
装在哪里,是第二个要拍板的问题。三种主流方式各有明确适用场景,我用一张表把它们的真实差异摆出来:
| 方式 | 性能损耗 | 折腾成本 | 风险 | 适合谁 |
|---|---|---|---|---|
| 虚拟机 | 10%~30%,图形性能差距明显 | 低,装坏了删掉重来 | 几乎为零 | 第一次接触、只想体验、需要保留原系统 |
| 双系统 | 无 | 中,分区和引导容易翻车 | 中,操作失误可能影响原系统 | 想长期用但暂时离不开原系统 |
| 全盘安装 | 无 | 低 | 高,数据全清 | 有备用机、或这是台专门的开发机 |
虚拟机这条路,我建议所有新手都先走一遍。装个免费的虚拟机软件,分配 4GB 内存、40GB 磁盘、2 个 CPU 核心,半小时就能把整套流程走完,包括分区、账号、软件源设置。等你把安装向导里每个选项都点过一遍、知道下一步会发生什么,再上物理机心里就有底了。虚拟机的代价是图形性能差,跑不动 3D 加速的东西,但对学命令行、写代码、跑个轻量服务来说完全够用。
双系统的坑集中在两处:一是分区,二是时间。分区的问题下一节细说;时间的坑是 Windows 默认把主板时钟当本地时间,Linux 默认把主板时钟当 UTC 时间,结果就是两边来回切换后时间永远差 8 小时。解决办法很简单,装完 Ubuntu 后执行一条命令让 Linux 迁就 Windows:
timedatectl set-local-rtc 1 --adjust-system-clock反过来让 Windows 用 UTC 也可以,但得改注册表,对普通用户来说前者更省事。
2. 安装过程中的关键决策与实操细节
2.1 启动盘制作与固件设置里必须弄懂的三项
启动盘制作本身没什么技术含量,用官方工具或通用的写盘工具都行,选对镜像文件、选对目标 U 盘、点开始,等进度条走完。真正值得注意的是两个细节:U 盘容量至少 8GB,以及写盘会清空 U 盘上的所有数据。我见过太多次有人直接拿存着资料的 U 盘去写,写完才想起来里面还有东西。
写盘完成后插入目标机器,开机狂按启动菜单键进引导选择。如果直接在启动菜单里看到 U 盘就选它,看不到的话就要进固件设置(BIOS/UEFI)里调两个东西:
第一个是安全启动(Secure Boot)。这个东西的本意是防止未签名的引导程序运行,但它会拦住部分第三方驱动,尤其是显卡驱动和某些无线网卡驱动。装系统阶段建议先关掉,等系统跑起来、驱动装好之后再考虑要不要开回去。如果你打算用虚拟机里嵌套虚拟化、或者需要编译内核模块,那就一直关着别开。
第二个是启动模式。现在基本都是 UEFI,但有些老机器还有 Legacy/CSM 选项。原则很简单:你原来系统是什么模式,Ubuntu 就装什么模式,两者必须一致,否则会出现装完找不到引导的情况。判断方法是在 Windows 里看磁盘分区表类型,GPT 对应 UEFI,MBR 对应 Legacy。
注意:部分品牌机在固件里有个“快速启动”开关,它会让系统跳过完整硬件自检,导致 U 盘引导不出现。装系统前先把它关掉,装完再开回来。
2.2 分区方案:新手最容易翻车的地方
安装向导到分区这一步,很多人的第一反应是选“自动分区”。自动分区能用,但它会把整块盘按默认比例切,既不留余地也不符合实际使用习惯。我更推荐手动分区,但要先把几个概念讲清楚。
Linux 的文件系统和 Windows 完全不同,它没有 C 盘 D 盘的概念,所有东西都挂在一棵目录树上,根是/。所以分区实际上是给目录树上的某些节点单独划地盘。一个典型的手动方案是这样的:
- EFI 系统分区:512MB 到 1GB,格式 FAT32,挂载点
/boot/efi。UEFI 启动必须有这个,双系统的话直接复用 Windows 已有的那个,千万别新建第二个,两个 EFI 分区会让引导管理器混乱。 - 根分区
/:至少 30GB,我一般给 50GB。这里放系统和软件,装的东西多了会涨,留点余量。 - 家目录
/home:剩下的空间全给它。个人文件、配置、缓存都在这里,单独分出来的好处是重装系统时可以只格式化根分区,家目录原样保留,几十个 G 的配置和文件不用重新弄一遍。 - 交换空间 swap:现代 Ubuntu 默认用 swap 文件而不是分区,省事。但如果你要用休眠功能,swap 大小必须不小于物理内存,否则休眠会失败。不用休眠的话,8GB 内存给 2GB~4GB 就够。
关于容量怎么估,我有个粗略算法:根分区基础占用大概 8GB~12GB(取决于你装多少软件),加上你要装的开发工具链(编译器、容器运行时、几个大型 IDE)大概再吃 15GB~20GB,所以 50GB 是个比较舒服的数字。低于 25GB 的话,用不了多久你就会收到磁盘空间不足的警告。
还有一个容易被忽略的点:分区表类型。整块盘如果是新盘,建议用 GPT;如果盘上已经有系统,别去动分区表,只做缩减和新增。缩减 Windows 分区要在 Windows 的磁盘管理里做,不要在 Linux 安装器里强行缩,前者安全得多。
2.3 安装向导里那几个不起眼但重要的选项
分区之后是账号、时区、键盘布局这些。键盘布局选中文(或者你实际用的),这一步选错了后面输入特殊字符会很别扭。账号密码建议设一个中等强度的,因为后面所有需要提权的操作都要输它,太复杂了自己烦。
有一个选项值得单独说:“安装第三方软件”这个勾选框。勾上它会顺带装显卡驱动、无线网卡固件、媒体解码器。我的建议是勾上,能省掉后面不少手动折腾。但如果你的机器显卡比较新,装完之后可能会出现开机黑屏或者分辨率异常,这种情况下面第 5 节有排查方法。
安装类型那里还有一个“加密整个磁盘”的选项。它会用 LUKS 给磁盘加密,安全性提升明显,代价是每次开机要输一遍解密密码,而且万一忘了密码数据就彻底没了。个人开发机我一般不开,笔记本带着到处跑的话建议开。
装完重启,第一件事是拔掉 U 盘,不然可能又进安装界面。进系统后先跑一遍更新,把装系统期间发布的安全补丁打上:
sudo apt update sudo apt upgrade -y3. 装完后的第一小时:把系统调成能干活的形状
3.1 软件源换到就近镜像站的实际收益
Ubuntu 默认的软件源在国外,国内访问速度不稳定,装个大点的软件包能等到怀疑人生。换到就近的镜像站点是最划算的一次优化,通常能把下载速度从几百 KB/s 提到几 MB/s 甚至更高。
具体操作是编辑/etc/apt/sources.list(新版本可能是/etc/apt/sources.list.d/下的文件),把里面的域名替换成镜像站域名。手动改容易出错,我更推荐用图形化的“软件和更新”工具,在“下载自”里选一个就近的站点,它会自动帮你改好。
改完之后一定要跑一次sudo apt update验证,看有没有报错。如果出现404 Not Found,多半是镜像站的路径结构和你当前的版本代号不匹配——每个 Ubuntu 版本都有个代号(比如 22.04 叫 jammy,24.04 叫 noble),源的 URL 里必须带对应的代号。用错代号是新手最常见的错误之一。
提示:别一次性把源文件删干净重写,先备份一份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak,出问题能一键回滚。这个小习惯救过我很多次。
3.2 显卡驱动、输入法、字体这三件影响体验的事
这三样东西不影响系统能不能跑,但直接决定你用着舒不舒服。
显卡驱动:集成显卡基本免驱,不用管。独立显卡分两条路——开源驱动(nouveau)开箱即用但性能一般,闭源驱动性能好但需要手动装。装的方法在“软件和更新”的“附加驱动”标签页里,它会列出可用的驱动版本,选一个标着“专有”或“推荐”的装上,重启生效。装完可以用nvidia-smi之类的工具确认状态。这里有个坑:如果装完重启进不了图形界面,多半是驱动和内核版本不匹配,进恢复模式卸载驱动即可恢复。
中文输入法:默认的输入法框架对新用户不太友好,我一般会换成更成熟的方案。安装命令大概是:
sudo apt install fcitx5 fcitx5-chinese-addons装完在“语言支持”里把输入法框架切成 fcitx5,注销重新登录,然后在配置工具里添加拼音输入。环境变量这块,如果应用里打不出中文,通常是GTK_IM_MODULE、QT_IM_MODULE、XMODIFIERS这几个变量没设对,把它们统一指向 fcitx 就行。
字体:Ubuntu 默认字体在低分屏上偏细,长时间看文档眼睛累。装一套开源的思源黑体或文泉驿,然后在字体设置里替换默认的界面字体和等宽字体。等宽字体这块,写代码的话建议换成带连字的编程字体,观感提升明显。如果觉得字体发虚,可以在字体渲染设置里调一下抗锯齿和微调模式,hintslight配rgb一般是普适性最好的组合。
3.3 目录结构与权限模型:为什么总要输密码
Linux 的目录树是有约定的,不是随便乱放。了解几个核心目录,你操作起来就不会到处乱翻:
| 目录 | 放什么 | 能不能随便动 |
|---|---|---|
/ | 根,所有东西的起点 | 不能 |
/home/用户名 | 你的个人文件,日常活动区 | 能 |
/etc | 系统配置文件 | 谨慎,改前备份 |
/var | 日志、缓存、数据库文件 | 日志可以清,别的手别伸 |
/usr | 系统装的软件 | 不要手动改 |
/tmp | 临时文件,重启清空 | 能 |
/opt | 手动安装的第三方软件 | 能 |
权限模型这块,核心就三点:每个文件有属主、有属组、有权限位。权限位是 r(读)、w(写)、x(执行)三组,分别对应属主、属组、其他人。用ls -l看到的一串像-rwxr-xr-x的东西,就是这三组权限的直观表达。
为什么改系统文件总要输密码?因为那些文件的属主是 root,普通用户没有写权限。sudo的作用是临时以 root 身份执行一条命令。这里有个重要的习惯:不要用sudo su一直挂在 root 下操作。root 权限下敲错一条命令的代价可能是整个系统重装,而sudo每条命令都要确认一次,相当于强制你多看一眼。
具体权限怎么设,chmod管权限位,chown管属主。数字表示法里,r=4、w=2、x=1,三组加起来就是三位数:755表示属主全权限、其他人读和执行,644表示属主读写、其他人只读。这两个是日常最常用的,脚本给 755,普通文件给 644,基本不会错。
4. 命令行基本功:八成日常操作就这几招
4.1 路径、查找与文件操作的最小集合
刚接触命令行的人容易被“命令太多”吓退,其实日常真正高频的就那么十几个。先记住这几个:
pwd # 我在哪 ls -al # 这里有啥,含隐藏文件 cd /path # 去哪 cp -r 源 目标 # 复制,目录要加 -r mv 源 目标 # 移动或改名 rm -rf 目标 # 删除,-rf 组合最危险,别乱用 mkdir -p a/b/c # 建多级目录rm -rf这个组合我要单独警告一次:它不会问你要不要删除,也不会把文件放进回收站。rm -rf /这种命令虽然现代系统会拦,但rm -rf ~/某目录手滑打错一个字符就是数据全没。我的做法是给rm加一个别名,让它每次都确认:在~/.bashrc里加一行alias rm='rm -i',虽然烦一点,但能救命。
查找文件用find,查找文件内容用grep,这两个组合起来几乎能定位任何东西:
find /home -name "*.log" -size +100M # 找家目录下大于100M的日志 grep -rn "关键字" /etc # 在 /etc 下递归搜内容并显示行号磁盘满了怎么查?df -h看分区使用率,du -sh *看当前目录下每个子目录占多大,按大小排序再配个sort -hr就能一眼看出是谁吃掉了空间。这一套我每周都要用几次。
4.2 软件包管理:apt 的常用动作与依赖处理
Ubuntu 的软件管理核心是 apt,理解它的工作方式比背命令重要。apt 背后维护着一个本地索引,apt install的时候先去索引里查这个包在哪、依赖哪些其他包,然后一次性全下下来。所以装软件前必须先sudo apt update,否则你查到的是旧索引,可能出现“找不到包”或者“版本不对”的情况。
常用动作如下:
| 命令 | 作用 | 备注 |
|---|---|---|
apt update | 更新本地索引 | 只更新索引,不升级软件 |
apt upgrade | 升级已装软件 | 不动依赖关系 |
apt full-upgrade | 升级并处理依赖变化 | 可能卸载冲突包,谨慎 |
apt install 包名 | 安装 | 自动装依赖 |
apt remove 包名 | 卸载 | 保留配置 |
apt purge 包名 | 彻底卸载 | 连配置一起删 |
apt search 关键字 | 搜索 | 找包名用 |
apt list --installed | 列出已装 | 结果很长,配 grep 用 |
依赖冲突是 apt 最常见的问题。装 A 需要 B 的 2.0 版,但系统里已经有 B 的 1.0 版,而 C 又依赖 B 的 1.0 版,这就卡住了。遇到这种情况,先看报错里提到的包名,用apt-cache policy 包名看有哪些版本可用,再决定是升级还是降级。实在解不开,用apt --fix-broken install让系统自己尝试修复,但要做好它卸载一些东西的心理准备。
现在还有 snap 和 flatpak 这两种打包格式,它们把依赖一起打包,不存在依赖地狱,代价是体积大、启动慢。桌面应用用 snap 还行,命令行工具我一般不碰。
4.3 服务管理与日志排查:systemctl 和 journalctl
Ubuntu 用 systemd 管服务,这套东西的逻辑是:所有后台程序都是一个 unit,你用systemctl控制它的启停和开机自启,用journalctl看它输出的日志。
systemctl status 服务名 # 看状态,最重要的是看最后几行日志 sudo systemctl start 服务名 # 启动 sudo systemctl stop 服务名 # 停止 sudo systemctl restart 服务名 # 重启 sudo systemctl enable 服务名 # 开机自启 sudo systemctl disable 服务名 # 取消自启这几个命令覆盖了日常九成场景。注意start和enable是两件事:前者是现在启动,后者是下次开机自动启动。很多人装完服务发现重启后没了,就是忘了 enable。
日志这块,journalctl -xe看最近的错误,journalctl -u 服务名 -f实时跟踪某个服务的输出,journalctl --since "1 hour ago"看最近一小时的。日志量大的时候配grep过滤关键字,效率高得多。有一次我排查一个服务起不来的问题,status只显示“failed”,加上-xe才看到真正的原因是一行配置文件里的路径写错了,这种事光看状态是看不出来的。
4.4 用户、权限与远程登录的实操要点
多用户场景下,/etc/passwd存用户信息,/etc/shadow存密码哈希,/etc/group存用户组。日常操作主要是加用户、加组、给权限:
sudo adduser 新用户名 # 交互式创建用户,会自动建家目录 sudo usermod -aG sudo 用户名 # 加入 sudo 组,注意 -a 不能省 sudo usermod -aG docker 用户名 # 加入某个软件的用户组 groups 用户名 # 查看某个用户属于哪些组-aG里的-a是“追加”,漏掉它就变成“覆盖”,会把用户从其他组里踢出去,这是个经典事故。改完组之后要重新登录才生效,newgrp也能临时生效但只对当前终端有效。
远程登录用 SSH,默认端口 22。服务端装openssh-server就能用,客户端直接ssh 用户名@IP。强烈建议用密钥登录代替密码:本地跑ssh-keygen生成一对密钥,把公钥内容追加到服务器的~/.ssh/authorized_keys里,然后在服务端配置里关掉密码登录。这样既安全又省事,不用每次输密码。
防火墙这块 Ubuntu 自带 ufw,默认是关闭的。开之前一定要先允许 SSH 端口,否则远程连接会立刻断掉:
sudo ufw allow 22/tcp sudo ufw enable sudo ufw status verbose5. 踩过的坑与排查实录
5.1 装完黑屏、花屏、无线网卡不识别
这三类问题占了新手求助的绝大多数,原因基本都和驱动有关。
装完重启黑屏,最常见的原因是显卡驱动和内核不匹配,尤其是比较新的独立显卡。解决办法是开机时在引导菜单里选“恢复模式”,进去之后用命令行卸载掉有问题的驱动,或者直接装一个更老的内核版本。具体做法是按住 Shift 进引导界面,选带(recovery mode)的条目,进去后选 root shell,然后apt purge掉相关驱动包重启。
分辨率不对、画面发虚,多半是没有正确识别显示器。用xrandr查看当前支持的分辨率列表,如果目标分辨率不在列表里,说明显卡驱动没装好,回到上一节装驱动。
无线网卡不识别,lspci或者lsusb能看到硬件但系统里没网卡接口,这是缺固件。Ubuntu 的固件包叫linux-firmware,通常装系统时勾了第三方软件就已经带上。如果确实没有网络,可以用手机 USB 共享网络临时联网,然后sudo apt install linux-firmware补上。这一招我用了很多次,比到处找离线包快多了。
5.2 依赖冲突、锁文件与磁盘写满
apt报“无法获得锁”是最常见的报错之一,原因是另一个 apt 进程正在跑,或者上次异常退出留下了锁文件。正确做法是先确认没有 apt 在跑(ps aux | grep apt),实在没有再手动删锁:
sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/dpkg/lock sudo dpkg --configure -adpkg --configure -a这一步很关键,它会把上次没配完的包重新配置一遍,很多“半装状态”的报错都能靠它解决。
磁盘写满也是个高频问题。df -h看到/满了,du -sh /* 2>/dev/null | sort -hr | head定位到具体目录。常见的空间黑洞有几个:/var/log里的日志、/var/cache/apt/archives里的 deb 包缓存、/var/lib/snapd里的旧版本快照、以及~/.cache。清理的命令:
sudo apt clean # 清 deb 缓存 sudo journalctl --vacuum-size=200M # 日志限制到200M sudo snap set system refresh.retain=2 # 只保留2个旧版本快照5.3 常见问题速查表
把上面这些和我实际遇到过的问题整理成一张表,出问题时对着查比到处搜快:
| 现象 | 大概率原因 | 处理方式 |
|---|---|---|
| 装完重启黑屏 | 显卡驱动不兼容 | 进恢复模式卸载驱动 |
| 双系统时间差 8 小时 | 硬件时钟时区约定不同 | timedatectl set-local-rtc 1 |
| apt 报锁被占用 | 有进程在跑或残留锁文件 | 确认后删锁并dpkg --configure -a |
| 中文显示成方块 | 缺中文字体 | 装fonts-noto-cjk之类字体包 |
| 输入法在某些应用里失效 | 环境变量没设对 | 统一设置三个 MODULE 变量 |
| 磁盘空间莫名减少 | 日志/缓存/旧快照 | 按上面命令逐项清理 |
| 修改组后不生效 | 未重新登录 | 注销重进或newgrp |
| 笔记本合盖不休眠 | 电源管理策略 | 检查/etc/systemd/logind.conf |
| 引导菜单里没有 Ubuntu | EFI 分区或引导顺序问题 | 用启动修复工具检查引导记录 |
| 高分屏字太小 | 缩放未设置 | 显示设置里调缩放比例 |
6. 让系统长期好用的几个习惯
6.1 快照、备份与回滚策略
重装系统是最贵的错误处理方式,而大部分“系统被我搞坏了”的情况其实都能提前防住。我的做法是三层防护:改动前打快照、重要数据定期同步、关键配置进版本管理。
快照工具用系统自带的就行,装好之后设一个策略,每次大改动前手动打一个点。快照的优势是回滚极快,几分钟就能恢复到之前的状态,代价是占用磁盘空间,所以要设个上限,别让它把盘吃满。注意快照不是备份——它和原数据在同一块盘上,盘挂了快照一起没。
真正的备份靠同步工具,把家目录里的重要文件定期推到另一块盘或者网络存储上。命令很简单:
rsync -avh --delete ~/重要目录 /mnt/备份盘/-a是归档模式保留权限和时间戳,-v显示过程,-h人类可读,--delete让目标端和源端保持一致。最后这个参数要小心,源端删了目标端也会跟着删,用之前先去掉它跑一遍确认没问题。
配置文件这块,我喜欢把~/.bashrc、~/.ssh/config、各种工具的点文件放进一个版本仓库,换机器的时候一条命令就能拉回来。这个习惯坚持几年下来,换新机器的恢复时间从半天缩短到了半小时。
6.2 大版本升级前的准备工作
LTS 到 LTS 的升级是可行的,但绝不是点一下“升级”按钮那么简单。我的经验是升级前必须做三件事:确认所有第三方软件源都已禁用、打一次完整快照、把重要的自编译软件列表记下来。
升级命令是sudo do-release-upgrade,执行前它会检查当前系统状态。如果有第三方源,它会提示你先禁用,这一步别跳过——第三方源里的包版本往往和新的发行版不兼容,带着升级很容易卡住。升级过程中会多次询问是否保留或替换配置文件,我的原则是:自己改过的选保留,没动过的选替换。
升级完成后,第一件事是检查显卡驱动和输入法是否正常,这两样最容易在升级后失效。如果出现严重问题,回滚快照比修复快得多。
6.3 一些我认为值得分享的个人习惯
折腾 Ubuntu 这些年,有些习惯是踩了坑才养成的,写出来给后来的人省点时间。
第一个习惯是改配置前先备份。cp 文件 文件.bak这一条命令花不了一秒钟,但能在你改错之后省下半小时。我现在连改个.bashrc都会先备份,因为有一次我把 PATH 写错了,导致ls都用不了,只能靠export PATH=/usr/bin:/bin临时救回来。
第二个习惯是命令执行前先想一遍它会做什么。尤其是rm、dd、mkfs这几个,参数顺序和路径错一个字结果可能完全不同。dd写盘的时候of=后面写错一个字母,整块盘的数据就没了,而且没有确认步骤。我的做法是涉及磁盘的操作一律先lsblk看一眼设备名,确认三遍再敲回车。
第三个习惯是多终端并行。一个终端跑服务、一个看日志、一个敲命令,比在一个窗口里来回切效率高得多,而且日志能实时看到错误输出,排查问题快很多。终端模拟器基本都支持分屏,用熟了之后回不去。
第四个习惯是不要迷信“一键脚本”。网上很多安装脚本看着省事,但里面的命令你不看明白就敢用sudo跑,风险很大。我一般会先下载下来读一遍,确认它改了什么、装了什么,再决定要不要执行。省下来的时间远不如搞坏一次系统的时间长。
最后还有个小技巧:遇到报错别急着搜整句话,把报错里最核心的那一段(通常是英文报错的第一行)拿去搜,命中率高得多。把报错里的具体路径、用户名、IP 替换成通用词再搜,效果更好。这套方法帮我解决过绝大多数冷门问题,也是这么多年下来我觉得最有价值的一个经验。