
1. 系统安装前的准备版本选择和安装方式1.1 LTS版本、开发版和国产发行版怎么选接触Ubuntu的第一个问题是版本选择。官网提供两类版本号LTSLong Term Support版本每两年发布一次提供5年安全更新比如16.04、18.04、20.04、22.04、24.04这些适合生产环境和日常使用普通版本每6个月发布一次比如23.04、23.10这些只维护9个月装完没多久就要被迫升级一次。我的建议始终只有一个——日常使用、学习、搭开发环境一律选LTS版本。你可能在搜索时看到过UOS、Deepin、麒麟这些国产Linux桌面系统它们和Ubuntu处理方式不同。本质上是基于Debian系二次开发包管理器确实能用apt但软件源、内核、桌面环境都做了大量定制。如果是纯学习Linux底层命令和生态直接用Ubuntu原版LTS会更省事因为你在绝大多数教程、Stack Overflow回答、技术书籍里看到的操作语句都是直接在原生Ubuntu环境下验证过的二次开发版本遇到问题往往需要额外翻译一层。1.2 虚拟机、双系统、实体机三种方案的取舍很多新手一上来就问我到底该直接装实体机还是用虚拟机先跑一跑三种方式我都试过适用场景完全不同。虚拟机VMware/VirtualBox宿主Windows不变Ubuntu以窗口形式运行。适合零基础用户先体验系统、练习命令、跑测试服务。缺点是无法完全发挥硬件性能GPU直通、串口调试这类操作会遇到门槛。双系统Windows和Ubuntu分别装在不同的磁盘分区上开机时通过grub引导选择进入哪个系统。适合需要用到硬件完整性能的场景比如机器人开发、深度学习训练、嵌入式交叉编译等我在实际开发中用的是这种方式。实体机单独安装整块硬盘只跑Ubuntu。适合服务器和长期固定用途比如把一台旧笔记本改造成家庭NAS或下载机。日常办公如果还在微信、钉钉、WPS和QQ之间来回切换建议先不要走这条路。如果你只是想试试Linux到底长什么样建议用虚拟机先跑两周至少把终端命令、软件安装、权限理解一遍再决定要不要双系统。直接上来就格式化硬盘装Ubuntu几天后可能因为一个输入法或者显卡驱动问题就放弃了这其实浪费了很好的学习机会。我自己见过太多这样的案例了所以一直强调先低成本体验再决定是否下一步。2. 安装过程中的核心要点与实操记录2.1 制作安装U盘不是把ISO文件丢进去就能用下载完Ubuntu的ISO镜像文件之后第一步是把镜像写入U盘。有一件非常重要的事不能直接把ISO文件复制到U盘里。ISO是一种磁盘映像格式里面包含了引导记录和完整的文件系统结构直接复制的话U盘没有引导能力安装程序根本无法启动。Windows下的工具首选Ventoy。这个工具先把U盘制作成Ventoy引导盘之后你只需要把ISO文件拷贝进U盘根目录即可而且可以同时放多个ISO文件每次开机时自己选择引导哪个。实测下来非常省事我U盘里常驻Ubuntu 22.04、24.04和Debian三个安装包现场装系统不用临时刷镜像。macOS下可以用balenaEtcher它是跨平台的操作界面极简选择ISO、选择U盘、点击Flash等着就完事。需要注意一点Linux系统对U盘的写入方式比较挑剔写入工具如果提示成功但U盘无法引导优先检查U盘接口是不是USB 2.0/3.0兼容问题以及BIOS里的启动模式。2.2 安装过程中的分区策略新手最容易翻车的地方安装Ubuntu时最令人紧张的选择是通过手动分区完成。很多教程会建议新手直接选择清除整个磁盘并安装Ubuntu这种方式确实最简单但如果你要装双系统选这个选项就可能会把整个硬盘清空原来的Windows分区会一起被处理掉。这确实是一个很严重的问题。双系统安装时的合理分区思路如下首先要确保Windows已经装好并且在Windows的磁盘管理里压缩出一块未分配空间比如60到100GB大小看你给Ubuntu留多少工作空间。压缩空间这个操作必须在Windows里做不要在Ubuntu安装程序里删分区否则误删风险很高。在Ubuntu安装向导里选择其他选项然后定位到你压缩出来的那块空闲空间一般显示为空闲不带分区编号。选中空闲空间后点击加号创建如下分区EFI系统分区大小512MB到1GB类型选EFI系统分区格式选FAT32挂载点不要手动选安装器会自动处理。交换空间swap大小设置为内存的1到2倍例如16GB内存分配16GB到32GB。如果内存够大32GB以上也可以不设或者设置成8GB留给休眠使用。根分区 /把剩余空间全部给根分区格式选ext4挂载点选 /这里是系统文件和大部分软件的家。这套方案兼顾了稳定性和易维护性。很多人会纠结是否需要单独分配 /home 分区入门阶段没必要维护成本也会增加一些。单独划分 /home 通常在重装系统时希望保留个人数据的情况下才有意义。2.3 安装后的第一件事换源Ubuntu默认软件源位于海外服务器国内访问速度非常慢。安装完成后第一件事是把软件源换成国内镜像源。Ubuntu 22.04及之后的版本修改软件源的方式比较简单在软件和更新应用里下载服务器下拉框里选择其他站点然后在中国地区列表里选择阿里云或者清华TUNA的镜像地址点击重新载入更新缓存即可。如果更喜欢命令行方式在 /etc/apt/sources.list 文件里直接改动也可以但22.04之后的版本里这个文件里的内容变成了指向 /etc/apt/sources.list.d/ubuntu.sources 的链接实际配置在 ubuntu.sources 文件里。第一次打开可能有点绕注意不要弄错路径。换源验证的命令sudo apt update执行后终端快速滚过一堆软件包索引不再卡在等待网络响应的状态就说明源生效了。如果碰上某镜像站同步不及时导致部分包404可以再换另一个镜像源站一般在清华、阿里之间切换就能解决。3. 日常基础操作与桌面环境使用3.1 GNOME桌面的四个核心区域先认熟Ubuntu默认桌面环境是GNOME经历过多次改版现在的布局整体比较清爽。桌面顶部有一个顶部栏左上角是活动按钮点开之后能看到所有打开的窗口以及左侧的Dock收藏夹右上角是系统状态区域包括Wi-Fi、声音、电源、日历和通知。左侧的Dock栏是日常打开应用的快捷入口默认放着Firefox浏览器、LibreOffice办公套件、Ubuntu Software等常用应用。需要添加新应用到Dock在活动视图中找到应用图标右键选择添加到收藏夹即可。类似的逻辑和Windows的固定到任务栏是一致的这里不需要额外记忆。系统设置应用叫设置图标是一个齿轮。主要调Wi-Fi、蓝牙、显示分辨率、电源管理、默认应用等。虽然Linux以命令行出名但现代Ubuntu桌面大部分系统配置都可以通过图形界面完成命令行是工具不是必需前提。3.2 Ubuntu Software和deb安装包的使用注意事项Ubuntu Software是Ubuntu默认的应用商店前端底层调用apt图形化界面里搜索到的应用大多来自Ubuntu软件仓库和Snap商店。安装应用直接搜索对应的名称点击安装按钮输入管理员密码即可完成不需要手动刷命令整个过程挺直观。Snap是Ubuntu母公司Canonical力推的软件打包格式特点是自带依赖、跨发行版、自动更新。缺点是应用体积比较大启动速度也比较慢内存占用会更明显一些。比如Snap版Firefox首次启动可能慢几秒但好处是版本始终是最新的同时和各种桌面环境兼容。对于Debian包.deb文件双击后会打开Ubuntu Software安装界面直接点击安装。有时双击没反应可以在文件管理器中右键选择用其他应用打开手动选取软件安装应用。我实测下来这种做法在部分版本上确实存在打开闪退的问题这时可以在终端中运行dpkg命令来安装sudo dpkg -i 包名.deb如果提示依赖缺失在使用dpkg安装时可以通过sudo apt --fix-broken install命令来修复依赖关系这也是常见的方式。3.3 中文输入法的设置拼音输入不算麻烦Ubuntu安装完成后默认是英文输入法想要中文输入设置过程并不复杂。Ubuntu桌面版默认集成iBus输入法框架系统设置键盘界面中点击输入源下方的加号选择汉语中国然后在列表中选择智能拼音。如果你用的是Wayland会话Ubuntu 22.04之后的默认会话这个智能拼音输入法的兼容性表现还不错。切换中英文的快捷键在设置里可见默认是 SuperSpace即 Windows键空格。如果更习惯搜狗输入法需要先从官网下载Linux版安装包。安装时要注意配套安装对应的输入法框架官方有详细说明一般是安装fcitx框架然后在系统设置里将输入法框架切换为fcitx。过程中需要注销并重新登录后才能生效。对于新手我建议先用系统自带的智能拼音跑上一周若无法接受候选词顺序和词库再换了也不迟。自家系统框架的兼容性始终是最稳定的。设置过程中还可能遇到输入法状态图标不显示或者无法切换的问题。这大概率是环境变量没生效可以运行这一个命令后注销重新登录im-config -n fcitx登出再登录之后fcitx配置工具会自动补全环境变量图标就会出现在右上角区域。4. 终端基础与系统管理命令入门4.1 为什么Linux入门必须过终端这一关Ubuntu虽然提供了比较完善的图形界面但Linux环境中大量日常操作依然需要通过终端完成。服务器管理、开发环境构建、容器操作、日志查看几乎都离不开命令行。终端在Linux里的地位相当于Windows下的PowerShell 任务管理器 服务管理器的总和甚至更多。打开终端的方式CtrlAltT快捷键。终端里最常见的三个命令在一开始就必须理解清楚sudo # 以管理员权限执行命令等价于Windows的以管理员身份运行 apt # 软件包管理工具用于安装、卸载、更新软件 cd # 切换目录对应Windows的cd命令但路径分隔符用 /4.2 apt软件包管理的五组常用命令Ubuntu软件仓库管理基于apt核心命令如下sudo apt update # 刷新软件包索引获取最新可用版本列表 sudo apt upgrade # 升级所有已安装软件包 sudo apt install 包名 # 安装软件包 sudo apt remove 包名 # 卸载软件包 sudo apt search 关键词 # 搜索软件仓库中的软件包这几条命令覆盖了绝大多数日常需求。Update和Upgrade两个单词看起来很像但作用完全不同update是更新软件包列表upgrade是真正执行软件包升级。养成定期执行这两条命令的习惯系统稳定性和安全性会好很多。卸载软件还有一个补充命令sudo apt autoremove # 自动清理不再需要的依赖包这条命令很好用卸载大型软件后执行一下能释放不少磁盘空间。4.3 环境变量与PATH配置错会导致命令找不到在Ubuntu系统上配置环境变量是很常见的需求尤其是装完JDK、Python、CUDA这类开发工具后都需要设置PATH。初学者最常遇到的问题是按网上教程修改了 /etc/profile 或 ~/.bashrc 文件后打开新终端却提示找不到命令或者说command not found。遇到这种问题先检查是不是PATH变量被覆盖了。常见的错误写法是在~/.bashrc里写了一大段export PATH/usr/local/cuda/bin这种写法会把原有PATH整个覆盖掉导致基础命令如ls、sudo全都找不到。正确做法是追加拼接export PATH/usr/local/cuda/bin:$PATH修改完~/.bashrc后执行以下命令立即生效无需重启source ~/.bashrc如果已经把PATH写坏了当前终端又关了也没事重启系统后用绝对路径运行命令然后修复~/.bashrc文件即可。盘一下这个坑在各类论坛上出现的频率你就知道为什么要把这段单独拿出来讲了。4.4 Ubuntu下跑开发环境用Docker还是直接装很多初学者在Ubuntu上搭建开发环境时会纠结直接在宿主机上装依赖还是用Docker容器隔离。我的建议是——入门阶段直接在宿主机上装。原因很简单直接安装时遇到的报错信息有限排查路径清晰这有助于理解系统本身的机制。Docker的优势在项目变多、环境各不相同时才体现出来。Ubuntu上安装Docker官方其实早就不建议通过apt直接安装docker.io旧包而是用官方脚本方式curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun安装完成后将当前用户加入docker组避免每次都输入sudosudo usermod -aG docker $USER newgrp docker然后就可以直接运行 docker ps 验证是否配置成功。5. 文件系统结构与目录权限5.1 三个核心目录/、/home、/etc很多新手从Windows切换到Linux后面对文件系统结构往往会觉得庞大因为Linux的目录结构确实和Windows C/D盘概念不同。Linux采用树状结构一切文件从根目录 / 开始。入门阶段需要理解的目录并不多。 /home/用户名 是当前用户的个人文件夹相当于Windows下的 C:\Users\用户名所有个人文件默认都往这里放。 /etc 目录保存系统配置文件比如软件源配置、网络配置、用户配置。 /var/log 目录存放系统日志文件排查系统故障时通常要去这里翻。尽量不要自己去修改 /usr 目录下的内容。 /usr 存放系统级应用程序和库文件平时通过apt安装的软件就放在这里。手动往 /usr/bin 下面丢文件能实现某些目的但一旦格式和依赖没弄好后续维护比较混乱。5.2 权限模型读、写、执行与sudo之间的关系Linux的权限模型是很多新手的理解难点但只要你把它想成门禁卡等级就好理解了。每个文件或目录都有自己的owner属主和group属组还有一组权限位r读、w写、x执行。用 ls -l 查看文件信息时第一列形如-rw-r--r--第一位是文件类型后面的9个字符分成三段分别代表属主权限、属组权限、其他用户权限。如果某命令提示Permission denied说明当前用户对该文件或目录没有对应权限。这时用 sudo 临时提升权限去执行。假设你是个普通员工sudo就相当于临时借用管理员门禁卡进去办件事办完卡就收回。这种机制能防止日常误操作损害系统核心文件。权限修改命令是chmod比如给脚本文件加可执行权限chmod x script.sh拥有可执行权限之后./script.sh 才可以运行。这对后续在Linux上写Python脚本、启动服务来说都是基本操作。5.3 Ubuntu系统重装时的数据备份技巧重装系统这件事我相信很多人迟早会遇到。不管是系统被折腾坏了还是硬盘空间满了想重新分区重装之前一定不能漏掉数据备份这一步。推荐的做法是准备一个外置移动硬盘或U盘建议容量不低于32GB在终端中进入home目录复制个人文件夹中的关键内容重点关注以下几个目录桌面Desktop和文档Documents——大部分人的工作文件集中地.ssh 目录——如果你配置过SSH密钥这个目录必须备份否则服务器连接全部失效.bashrc和.profile文件——自定义的环境变量和别名设置浏览器收藏夹和密码如果用的是Firefox账号同步这部分其实已经云端搞定浏览器书签、通讯录这些如果已经开启了云同步问题不大。但.ssh目录没有同步机制丢了就真的丢了只能重新生成密钥并在各个服务器上重新配置。我见过的丢失密钥事件频率很高所以每次都要提醒。重装完成后第一时间从备份中恢复这些目录环境可以很快回到原来的样子。6. 网络配置与远程连接6.1 SSH服务的开启与配置大多数人在Windows下已经习惯了远程桌面连接其他电脑Linux世界里的对应方案是SSH通过命令行远程操作另一台Linux机器。Ubuntu桌面版默认没有安装SSH服务端。开启方式很简单sudo apt install openssh-server sudo systemctl enable ssh sudo systemctl start ssh执行完后在同一局域网的另一台电脑上就可以通过SSH命令远程连接这台机器ssh 用户名IP地址用户名是你Ubuntu上的账户名IP地址可以通过 ip addr 命令查看一般在eth0或wlan0接口下的inet字段。要想让电脑在局域网内固定IP建议在路由器里做DHCP静态绑定或者在系统设置里手动填写静态IP否则路由器重新分配IP后你可能就找不到它了。6.2 SSH连接不上的常见排查思路关于SSH无法连接这个问题在工单和论坛中的出现频率确实比较高。这里总结一套排查顺序每次遇到就连贯执行一遍第一步确认SSH服务在运行sudo systemctl status ssh第二步确认目标IP可达ping 目标IPping不通说明两台机器网络不同段或防火墙拦截ping得通但SSH连不上继续执行下一步。第三步检查22端口是否开放telnet 目标IP 22如果端口不可达很可能是本机防火墙ufw拦截了。Ubuntu默认ufw是关闭状态但如果你执行过sudo ufw enable就需要注意放行规则sudo ufw allow OpenSSH第四步检查SSH配置文件。 /etc/ssh/sshd_config 里的 PermitRootLogin 参数如果为 prohibit-password说明禁止密码登录root用户。新手时期最容易在这个地方犯迷糊明明密码没错却一直提示认证失败。解决方式要么改用普通用户登录要么在配置里调整为允许root密码登录后者的操作建议在测试环境里进行尝试。6.3 Xshell在Windows下连接UbuntuWindows用户常用的SSH客户端是Xshell它在Ubuntu和Windows之间互相操作时非常常见。操作流程很简单Xshell主界面新建会话主机填Ubuntu的IP地址端口默认22然后到用户身份验证标签页填用户名和密码。连接时有一点容易忽略Ubuntu系统本身对SSH版本没有太多限制但如果Xshell连接的协议选错比如选了telnet连接会不成功。一定要确保协议是SSH确保端口是22。首次连接时会弹出SSH主机密钥确认提示点击接受并保存即可。7. 常见问题排查与解决速查7.1 软件包安装失败场景一依赖关系无法满足Ubuntu下安装软件时最常见的报错形式是这种The following packages have unmet dependencies意思是某些软件包需要的依赖库版本和系统中现有的版本冲突。新手遇到这种问题很容易慌实际上解决方法是组合命令sudo apt update sudo apt --fix-broken install sudo apt install -f第一条刷新软件索引第二条自动修复破损的依赖关系第三条修补可能遗留下来的问题。大多数情况下这三条命令跑完依赖问题就能解决。如果还是不行就看具体的报错是哪个软件包冲突搜索一下该包对应的可用版本然后通过显式指定版本号的方式来安装。不要轻易使用apt remove去删系统自带的包很容易误伤系统组件。7.2 软件包安装失败场景二公钥错误或源签名验证失败执行apt update时报“NO_PUBKEY”错误也比较常见一般是因为新添加的第三方源中的公钥不在系统信任列表里。解决方式很直接根据报错给出的公钥ID从Ubuntu keyserver导入即可sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 公钥IDapt-key在高版本Ubuntu中已经标记为废弃更推荐通过:gpg --keyserver keyserver.ubuntu.com --recv-keys 公钥ID gpg --export 公钥ID | sudo tee /etc/apt/trusted.gpg.d/第三方源.gpg这个方式更符合当前Ubuntu的安全模型。7.3 开机卡在grub引导界面或者直接黑屏安装双系统后重启时可能直接进入grub命令行界面或者黑屏只显示一个光标。grub是Linux下负责引导操作系统的软件相当于Windows下的引导管理器。如果进入grub的rescue模式常见原因是EFI分区中的引导文件被破坏或路径错误。排除显卡驱动因素NVIDIA显卡驱动不稳会导致黑屏后先用启动U盘进入Ubuntu试用模式然后在终端里挂载根分区和EFI分区后重装grubsudo mount /dev/sdaX /mnt sudo mount /dev/sdaY /mnt/boot/efi sudo chroot /mnt grub-install /dev/sda update-grub/dev/sdaX是你的根分区所在设备/dev/sdaY是EFI分区。这套命令可以把grub重新写到硬盘。鉴于不同机器分区编号不同操作前建议用 lsblk 命令先确认当前硬盘分区布局。7.4 系统卡顿swap与内存占用怎么看用了半年Ubuntu后部分用户可能会发现系统越来越卡。排查工具其实很通识直接看内存占用free -h内存不足时swap如果分配过小系统就极易卡顿。此时可以考虑增加swap文件不必扩大分区这是Linux系统中很方便的做法。创建8G swapfile的方法sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile如果要开机自动挂载还需要在 /etc/fstab 中添加一行/swapfile none swap sw 0 0另外Ubuntu桌面环境的Shell扩展有时候也会拖慢整体响应速度。如果你装了比较多GNOME扩展建议在“扩展管理器”中禁用一个一个试验找出卡顿源头。很多时候卡顿不一定是硬件问题而是扩展冲突。8. 面向开发者的基础装备8.1 文本编辑器nano、vim和VSCode怎么选在终端里改配置文件新手最友好的编辑器是nano。打开文件、编辑、保存的操作模式非常直观sudo nano /etc/apt/sources.listCtrlO保存CtrlX退出界面底部有快捷键提示。几乎不用记任何东西。vim功能更强大但学习曲线较高第一次打开之后不知道怎么退出是经典段子。日常编辑自己电脑上的代码装VSCode远程连过来用图形界面更舒服。我的建议是改系统配置文件用nano写代码用VSCode等想提升终端编辑效率时再花时间系统学vim。8.2 系统监视工具htop比系统监视器更好用Ubuntu自带图形化的系统监视器可以查看CPU、内存、网络使用情况。不过在终端里有一种更高效轻便的方式第一步先安装sudo apt install htophtop启动后所有进程、CPU核心占用、内存使用情况一目了然。按F6可以选择排序方式按F9可以直接杀掉指定进程。用服务器时没有图形界面htop几乎是看系统性能的第一选择趁早习惯。再配合一个工具看看磁盘占用df -h # 查看各分区空间使用情况 du -sh * # 查看当前目录下各子目录大小定期用这两条命令检查磁盘通常能够在系统警告“No space left on device”之前及时清理。8.3 日志查看journalctl系统服务异常时另一个非常实用的工具是journalctl它可以查询systemd管理的服务日志。比如SSH服务连不上时除了前面提到的排查步骤直接查看相关日志能更快定位问题journalctl -u ssh --since 10 minutes ago-log中看到类似“connection reset by peer”或“failed password”这类关键字后续方向就清楚了。journalctl加上--since参数可以指定时间范围避免看到大量无关日志效率明显高一些。这套组合拳——htop看资源、df/du看磁盘、journalctl看服务日志——在实际使用中能解决绝大多数日常运维问题建议把这些命令至少亲手敲一遍。自己从零开始装Ubuntu到现在感觉入门最难的地方不是某个命令记不住而是不知道怎么排查问题。包括上面提到的那一系列坑其实官方文档和中文社区都有记录但新手不知道去哪里找。希望这篇文章能把常见问题圈起来你后面再遇到类似情况时至少知道该往哪个方向排查。Linux这条路修远但把它当成一个可以随便折腾、坏了就重来的学习玩具反而进步是最快的。