多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Ubuntu新手入门:从安装配置到终端命令实战指南

Ubuntu新手入门:从安装配置到终端命令实战指南 1. 从零到一为什么选择Ubuntu作为你的第一站如果你正准备踏入Linux世界或者厌倦了Windows/macOS的某些限制想找一个更高效、更可控的桌面环境那么Ubuntu几乎是你绕不开的名字。我用了十几年Linux从早期的Red Hat到Debian最终在桌面领域长期“定居”在Ubuntu上不是因为它完美无缺而是因为它在一个关键点上做得最好平衡。它在强大的自由软件基础、相对友好的用户界面和极其丰富的社区资源之间找到了一个对新手和进阶用户都相当舒适的平衡点。你不需要一开始就面对黑乎乎的纯命令行界面也不会被一个过于“傻瓜化”的系统限制了探索底层的能力。这次我们不谈空泛的概念就从一个完全没接触过Linux的普通用户视角手把手带你完成Ubuntu的安装并武装你一套立刻就能用上的“生存级”命令让你在终端里不再手足无措。2. 安装前的关键抉择镜像、引导与分区方案安装系统听起来就是点“下一步”但在Linux世界里尤其是双系统环境下几个前期的选择直接决定了你是顺利起飞还是原地“翻车”。这里我把最容易出问题的环节拆开揉碎了讲。2.1 镜像下载与验证别让“李鬼”毁了你的开始第一步永远是获取系统镜像。去Ubuntu官网下载是最稳妥的直接搜索“Ubuntu releases”就能找到。现在最新的LTS长期支持版本是24.04对于新手我强烈建议选择LTS版本它意味着更稳定的软件支持和长达5年的安全更新避免你刚上手就遇到新版本的兼容性“惊喜”。下载完成后千万不能跳过的一步是校验SHA256哈希值。这就像快递到了要核对收件人确保你下载的几GB文件在传输过程中没出任何差错。在Windows上你可以用7-Zip这类工具计算下载文件的SHA256值然后与官网公布的值对比。哪怕一个字符对不上都请重新下载。我见过太多因为镜像损坏导致的安装失败问题诡异得让人无从下手最后发现源头在这里。2.2 制作启动盘工具选型与“隐藏坑”有了镜像你需要一个至少8GB的U盘来制作启动盘。这里有个关键选择制作工具。网上教程多推荐Rufus它确实强大。但根据我的经验对于绝大多数情况尤其是新手Etcher是更省心、出错率更低的选择。它界面极其简单就三步选择镜像、选择U盘、点击“Flash”。Rufus虽然功能多但里面关于分区类型MBR/GPT和引导方式BIOS/UEFI的设置对新手来说容易选错。如果你用的是Windows 11或较新的电脑你的系统很可能使用的是UEFI引导和GPT分区表。这时用Etcher默认制作即可。如果电脑比较老五六年前可能是传统的BIOSMBR组合。Etcher通常也能智能处理。如果你不确定一个简单的方法是开机时按F2或Del进入BIOS设置查看引导选项里是否有“UEFI”字样。制作启动盘会清空U盘所有数据务必提前备份。2.3 磁盘分区双系统共存的核心逻辑这是安装过程中最令人紧张的一步尤其是打算和Windows组成双系统的朋友。理解分区逻辑就能消除恐惧。Linux的文件系统结构和Windows完全不同。它没有C盘、D盘的概念而是将整个系统挂载在一个单一的根目录“/”下。对于双系统安装我们通常需要在Windows的磁盘上“挖”出一块空闲空间给Ubuntu用。你可以在Windows的“磁盘管理”里压缩现有卷来获得这块空间。记住只创建“空闲空间”不要在里面新建简单卷。在Ubuntu安装程序的分区步骤选择“手动分区”会给你最大的控制权。对于新手双系统我建议至少创建三个分区EFI系统分区如果你的电脑是UEFI引导并且Windows已经占用了一个EFI分区那么你绝对不要新建EFI分区直接忽略这一步。安装程序通常会智能地复用现有的EFI分区。如果你新建一个反而会导致引导冲突。这是最常见的双系统启动失败原因之一。交换空间swap相当于虚拟内存。大小设置有个经验公式如果内存小于8GB设为内存的1.5-2倍如果内存大于等于8GB设为与内存等大或略大即可。例如16GB内存设16GB或20GB的swap都行。文件系统类型选swap area。根分区/这是系统文件和安装软件的位置。建议分配尽可能大的空间比如100GB以上。文件系统类型推荐ext4这是Linux下最成熟稳定的日志文件系统。可选家目录分区/home这是你的个人数据文档、下载、配置存放地。把它单独分出来有个巨大好处下次重装系统时你可以选择不格式化/home分区这样你的个人文件和大部分软件配置都能保留。如果你硬盘空间充裕强烈建议分一个大小视你个人数据量而定比如50-200GB文件系统也是ext4。分区方案确定后最重要的是确认安装引导器的设备。在UEFI模式下它应该被安装到Windows的EFI分区所在的磁盘通常是/dev/nvme0n1或/dev/sda这样的磁盘标识而不是后面的分区号如/dev/nvme0n1p1。这一步选对才能保证开机时出现GRUB菜单让你选择进Windows还是Ubuntu。3. 安装后的首要配置让系统真正“好用”起来安装完成重启进入崭新的Ubuntu桌面先别急着欢呼。默认的系统只是个毛坯房我们需要进行一些快速配置把它变成能舒适入住的精装房。3.1 连接网络与更新系统打好安全补丁首先连接网络。Ubuntu的驱动支持已经很好大部分Wi-Fi和有线网卡都能即插即用。连上网后第一件事打开终端快捷键CtrlAltT执行更新命令。这是Linux世界的第一条金科玉律在安装任何新软件前先更新本地软件包索引。sudo apt update sudo apt upgrade -y解释一下sudo以超级管理员权限运行命令。系统会要求你输入当前用户的密码输入时光标不会移动这是正常的安全设计。aptUbuntuDebian系的包管理工具负责软件安装、更新、卸载。update从软件源服务器获取最新的软件包列表信息但不更新任何已安装的软件。upgrade根据update获取的列表升级所有可升级的已安装软件包。-y参数表示自动对所有的确认提示回答“yes”省去手动确认。这个操作可能会花费一些时间完成后你的系统就拥有了最新的安全补丁和软件更新。3.2 安装必备工具与中文环境系统更新后安装几个能极大提升效率的工具构建工具很多软件在安装时需要编译先装好编译环境。sudo apt install build-essential网络工具用于诊断网络问题如ping,ifconfig新版本用ip命令替代但net-tools包提供了熟悉的ifconfig。sudo apt install net-tools curl wget中文语言支持在“设置 - 区域与语言”中添加中文语言包并拖到顶部注销重登即可。为了更完善的中文显示和输入可以安装字体和输入法框架。搜狗输入法对中文用户很友好但需要额外步骤。一个更简单的替代方案是安装开源的fcitx5框架加rime输入引擎sudo apt install fcitx5 fcitx5-rime fcitx5-configtool安装后在“设置 - 键盘”里将输入法切换到Fcitx 5然后注销并重新登录。之后可以在任务栏的输入法图标处添加Rime输入法。3.3 配置软件源加速软件下载默认的软件源服务器可能在国外下载速度慢。更换为国内镜像源能极大提升体验。以阿里云镜像为例备份原有源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑源列表文件sudo nano /etc/apt/sources.list将文件内容全部替换为阿里云的源针对Ubuntu 24.04deb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse按CtrlO保存CtrlX退出nano编辑器。再次更新软件列表sudo apt update注意不同Ubuntu版本代号不同如22.04是Jammy20.04是Focal替换时需修改对应的代号。noble是24.04的代号。4. 终端生存指南20个你必须掌握的常用命令图形界面虽好但终端命令行才是Linux的灵魂和力量所在。掌握下面这些命令你就能完成80%的日常操作。我把它们分成“文件操作”、“系统信息”、“进程管理”和“网络与包管理”四类。4.1 文件与目录操作基础中的基础这些命令是你每天都会用到的“手脚”。pwd打印当前工作目录。当你不知道自己“身在何处”时就用它。ls列出目录内容。ls -l以长格式列出显示权限、所有者、大小、修改时间等详细信息。ls -a显示所有文件包括以点.开头的隐藏文件通常是配置文件。ls -lh-l和-h结合以人类可读的格式K, M, G显示文件大小。cd切换目录。cd ~回到家目录。cd ..切换到上级目录。cd -切换到上一个所在的目录。mkdir创建目录。mkdir -p project/src/test可以一次性创建多级嵌套目录。touch创建一个新的空文件或更新已有文件的时间戳。touch newfile.txtcp复制文件或目录。cp file1.txt file2.txt复制文件。cp -r dir1/ dir2/递归复制整个目录。mv移动或重命名文件/目录。mv oldname.txt newname.txt重命名mv file.txt ~/Documents/移动。rm删除。使用需极度谨慎rm file.txt删除文件。rm -r dir/递归删除目录及其内容。rm -rf dir/强制递归删除不提示。这是著名的“删库跑路”命令之一新手请远离-f参数。cat连接并打印文件内容到屏幕。适合查看小文件。cat config.txtless/more分页查看大文件内容。less logfile.log进入后可按空格翻页按q退出。less比more功能更强支持向前向后翻看。head/tail查看文件开头或结尾部分。head -n 20 file.log查看前20行。tail -n 50 file.log查看末尾50行。tail -f service.log实时追踪文件新增内容用于监控日志按CtrlC终止。4.2 系统信息与权限管理了解你的系统并控制谁可以做什么。df显示磁盘空间使用情况。df -h以易读格式显示。du显示目录或文件的磁盘使用量。du -sh *可以快速查看当前目录下所有文件和目录的大小。free显示内存使用情况。free -h。top/htop动态显示进程和系统资源占用情况。htop是top的增强版界面更友好需要安装sudo apt install htop。ps报告当前进程的快照。常用组合ps aux可以查看所有用户的所有进程详情。chmod改变文件权限。Linux权限分读(r4)、写(w2)、执行(x1)。chmod 755 script.sh给所有者rwx权限给组和其他用户rx权限。这是可执行脚本的常见权限。chmod x script.sh给所有用户增加执行权限。chown改变文件所有者和所属组。sudo chown user:group file.txt4.3 进程管理与任务控制让程序在后台运行或者优雅地结束它们。在命令末尾加上让命令在后台运行。例如python3 server.py 。jobs查看当前终端后台运行的任务列表。fg/bgfg %1将后台1号任务调到前台bg %1将暂停的1号任务放到后台继续运行。kill终止进程。先用ps aux | grep 进程名找到进程IDPID然后kill PID。kill -9 PID是强制终止非必要不使用。nohup让进程在退出终端后依然继续运行。nohup python3 long_task.py output.log 21 将任务放后台并将标准输出和错误都重定向到output.log文件。4.4 网络、搜索与包管理与外界通信在系统中查找以及安装软件。ping测试网络连通性。ping -c 4 google.com发送4个包测试。curl/wget从网络下载文件。curl -O http://example.com/file.zipwget http://example.com/file.zip。grep强大的文本搜索工具。ps aux | grep python在进程列表中查找包含“python”的行。grep -r error /var/log/递归地在/var/log/目录下所有文件中搜索“error”。grep -i忽略大小写。find在目录树中查找文件。find /home -name *.txt在/home下按名字查找.txt文件。find . -type f -size 10M在当前目录查找大于10MB的普通文件。apt包管理核心。sudo apt search keyword搜索软件包。sudo apt install package_name安装。sudo apt remove package_name卸载软件但保留配置文件。sudo apt purge package_name彻底卸载软件及配置文件。sudo apt autoremove自动删除不再需要的依赖包。5. 进阶实操组合命令与解决实际问题单个命令是工具组合起来才能发挥威力。下面通过几个真实场景看看如何将这些命令串联使用。5.1 场景一查找并清理大文件系统磁盘空间告急如何快速找到“罪魁祸首”# 1. 先看哪个挂载点空间紧张 df -h # 2. 假设是根目录(/)满了进入根目录查找大于100MB的文件按大小排序 sudo find / -type f -size 100M 2/dev/null | xargs du -h | sort -hr | head -20命令解释sudo因为要搜索整个系统需要权限。find / -type f -size 100M在根目录下找大于100MB的普通文件。2/dev/null将find命令可能产生的权限拒绝等错误信息丢弃让输出更干净。| xargs du -h将find找到的文件列表通过管道|传给xargs由xargs组织成参数再传给du -h计算每个文件的大小。| sort -hr将du的结果按人类可读的数字逆序排序大的在前。| head -20只显示最大的前20个。找到不需要的大文件如旧的日志包、缓存文件后再用rm命令谨慎删除。5.2 场景二监控实时日志并过滤关键错误服务出问题了需要实时查看日志但日志滚动太快如何只关注错误信息# 假设日志文件是 /var/log/myapp/app.log tail -f /var/log/myapp/app.log | grep -E (ERROR|FAILED|Exception)这里tail -f负责实时输出新日志管道|将输出送给grepgrep -E使用扩展正则表达式只匹配包含“ERROR”、“FAILED”或“Exception”的行这样屏幕上就只显示错误信息清晰很多。5.3 场景三批量重命名与备份有一批.jpg图片想在所有文件名前加上前缀“vacation_”。# 方法1使用rename命令如果系统已安装更强大 rename s/^/vacation_/ *.jpg # 方法2使用循环更通用 for file in *.jpg; do mv $file vacation_$file done在操作前强烈建议先备份。可以用一条命令快速创建当前目录的备份cp -r /path/to/source/folder /path/to/backup/folder_$(date %Y%m%d_%H%M%S)$(date %Y%m%d_%H%M%S)会生成一个带时间戳的字符串避免覆盖旧备份。6. 常见“翻车”现场与救火指南即使按照教程操作也难免会遇到问题。这里记录几个我踩过的高频坑和解决方法。6.1 双系统启动失败直接进入Windows问题安装Ubuntu后重启没有出现GRUB选择菜单直接进了Windows。原因通常是Windows的“快速启动”功能干扰或者GRUB引导器没有正确安装到EFI分区。解决进入Windows禁用“快速启动”控制面板 - 电源选项 - 选择电源按钮的功能 - 更改当前不可用的设置 - 取消勾选“启用快速启动”。如果无效可能需要修复GRUB。制作一个Ubuntu安装U盘选择“试用Ubuntu”打开终端依次执行sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair运行boot-repair工具选择“推荐修复”按照提示操作。这能解决大部分引导问题。6.2 无法连接Wi-Fi或Wi-Fi列表为空问题安装后无线网卡无法使用。原因缺少专有硬件驱动常见于Broadcom、某些Intel和新款Realtek网卡。解决先尝试用网线连接有线网络。打开“软件和更新”应用切换到“附加驱动”标签页。系统会自动检测可用的专有驱动选择对应的无线网卡驱动并应用更改。如果没有有线网络可以用手机通过USB连接电脑开启“USB网络共享”临时为电脑提供网络来下载驱动。6.3sudo apt update报错“无法定位软件包”或“Hash校验和不符”问题更新或安装软件时出现错误。原因软件源列表有误、网络问题导致下载的索引文件不完整、或源服务器同步延迟。解决检查网络连接ping mirrors.aliyun.com。清除旧的软件包列表缓存sudo rm -rf /var/lib/apt/lists/*然后再次执行sudo apt update。如果换了软件源确认sources.list文件中的Ubuntu版本代号是否正确。如果错误指向特定仓库可以暂时在sources.list中注释掉在行首加#那行更新后再取消注释。6.4 图形界面卡死或程序无响应问题桌面点击没反应鼠标可以动但点什么都无效。解决Linux的图形界面通常是Xorg或Wayland和桌面环境如GNOME是分离的一个崩溃不一定需要重启整个电脑。尝试切换到文本终端按CtrlAltF3F3到F6通常都可以会进入一个纯黑屏的登录界面。用你的用户名和密码登录。登录后你可以查看图形界面进程并重启它。对于GNOME桌面可以尝试sudo systemctl restart gdm3如果是GDM显示管理器或sudo systemctl restart lightdm如果是LightDM。重启图形服务后按CtrlAltF2或F1切回图形界面。如果不行也可以在文本终端里安全重启sudo reboot。6.5 误删了重要文件怎么办预防永远大于治疗使用rm时尤其是rm -r先pwd确认当前目录再用ls确认要删除的目标。可以给rm设置一个别名放到~/.bashrc里让它先移动到“回收站”一个特定目录而不是直接删除alias rmmv -t ~/.Trash/需要真正删除时使用/bin/rm。如果真的删了如果文件还在被某个进程打开有时还能恢复。用lsof | grep deleted查找被删除但还被占用的文件进程重启前可以尝试从/proc/PID/fd/目录下复制出来。对于已卸载分区的文件误删需要立即停止向该分区写入数据并使用extundelete、testdisk等专业工具尝试恢复成功率取决于被覆盖情况。7. 打造你的效率环境终端、编辑器与开发栈系统稳定运行后可以着手配置一个顺手的开发环境这能让你后续的学习和工作事半功倍。7.1 终端美化与强化默认的终端GNOME Terminal不错但可以更好。zshshell加上Oh My Zsh框架是很多人的选择。它提供了强大的自动补全、主题和插件系统。# 1. 安装zsh sudo apt install zsh # 2. 将zsh设置为默认shell chsh -s $(which zsh) # 注销并重新登录生效 # 3. 安装Oh My Zsh需先安装curl或wget sh -c $(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)安装后配置文件在~/.zshrc。你可以修改ZSH_THEME来更换主题如agnoster需要安装Powerline字体在plugins中添加插件如git、z快速跳转目录。7.2 编辑器的选择Vim与VSCodeVim终端内的编辑器之神学习曲线陡峭但效率无敌。即使你不打算精通也建议学会基本操作i插入Esc退出插入模式:wq保存退出:q!强制退出不保存因为在服务器上编辑配置文件时它几乎总是可用的。sudo apt install vim # 打开文件 vim filename.txtVSCode微软出品的现代化编辑器对新手友好插件生态丰富。可以通过Snap或直接下载.deb包安装# 方法1Snap安装自动更新 sudo snap install --classic code # 方法2下载.deb包安装 wget -O code.deb https://code.visualstudio.com/sha/download?buildstableoslinux-deb-x64 sudo apt install ./code.deb7.3 开发环境快速搭建PythonUbuntu通常预装了Python 3。管理不同项目依赖强烈推荐使用venv虚拟环境。# 创建虚拟环境 python3 -m venv my_project_env # 激活虚拟环境 source my_project_env/bin/activate # 激活后提示符前会出现环境名此时用pip安装的包只在此环境内 # 退出虚拟环境 deactivateNode.js不要安装系统仓库里可能较旧的版本。使用NodeSource仓库安装LTS版本curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt install -y nodejsDocker用于容器化部署。# 卸载旧版本 sudo apt remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt update sudo apt install ca-certificates curl gnupg # 添加Docker官方GPG密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg # 设置仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release echo $VERSION_CODENAME) stable | \ sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 将当前用户加入docker组避免每次用sudo sudo usermod -aG docker $USER # 注销并重新登录使组生效安装完成后运行docker --version和docker run hello-world来验证。走到这里你的Ubuntu系统已经从一个基础的安装盘变成了一个配备了强大命令行工具、稳定运行环境并初步个性化的生产力工具。记住Linux的精髓在于探索和定制。不要害怕终端多尝试命令结合man命令如man ls查看官方手册遇到问题善用搜索引擎和社区如Ask Ubuntu、Stack Overflow。这个系统现在完全听命于你随着你不断学习和配置它会变得越来越贴合你的工作流最终成为你手中无可替代的利器。
返回列表