☰
Linux安装配置实战:从发行版选型到开发环境搭建
2026/10/6 3:27:28 网站建设 项目流程

Linux装在什么机器上其实不重要,重要的是你装完以后敢不敢把它当主力系统用。大多数人的流程是:下载ISO镜像、刻盘、下一步下一步、进桌面看一眼、拍照发朋友圈,然后回到Windows。真正把安装和配置当成一门手艺来对待的人,装完系统之后会花两个小时把软件源、用户权限、SSH、开发环境全部收拾利索,之后这台机器三五年不用重装。这篇文章不聊那些玄乎的内核源码,就讲一套我反复用过很多次的落地流程:从选发行版、准备镜像,到虚拟机/物理机安装、分区方案,再到初始化配置、常用运维命令,最后把MySQL、JDK、Tomcat、Node.js这些开发环境一次配齐。适合刚接触Linux的人,也适合那些已经装过但每次装完就吃灰的人。

1. 发行版选择与镜像准备

1.1 选哪个发行版不纠结

很多新手死在第一步:Ubuntu、CentOS、Debian、deepin、麒麟,到底装哪个。我的建议很简单,看场景。

服务器环境首选Debian或者Ubuntu Server。CentOS Stream虽然还在更新,但地位已经比较微妙,新项目没必要踩这个坑。Debian的优势是稳,软件源里什么都有,升级不激进,跑个三五年不带坏的。Ubuntu Server说白了就是Debian加了一层更频繁的更新节奏和更友好的生态,很多云厂商默认镜像就是它,上手成本低。

桌面环境看需求。想省心的直接Ubuntu Desktop,驱动、输入法、办公软件基本开箱即用。想折腾的可以试试Manjaro或者Fedora,但这俩不适合当长期主力,滚动更新的魅力在于追新,风险也在于追新——哪天更新完启动器崩了,你会非常怀念那个十年不更新的Debian。

国产Linux最近热度不低。统信UOS、麒麟、openEuler这些,日常办公、跑跑国产化项目完全能胜任。如果你所在的环境有国产化替代的要求,直接上UOS就行,适配做得比很多人想象中好。但从技术学习的角度,我仍然建议先把Debian系玩明白,因为绝大多数教程、软件包、问题排查方案都是基于Debian/Ubuntu写的。

这里给一个简单的选型对照表:

发行版适合场景软件包管理更新策略上手难度
Debian服务器、长期稳定环境apt保守低
Ubuntu桌面、云服务器、开发机apt适中低
CentOS Stream兼容RHEL生态的服务器dnf滚动中
openEuler国产化、信创替代dnf保守中
UOS国产化替代、日常办公apt保守低
Fedora追新、桌面尝鲜dnf激进中

选定了发行版,下载镜像的时候有个容易被忽略的细节:去官方源或者镜像站下载,别在搜索引擎随便找个链接就下。清华TUNA、阿里云镜像站、华为云镜像站都有完整ISO,下载完顺手做一下校验,把官方发布的SHA256和本地算出来的比对一下。这一步能避免两种问题:一是下载过程文件损坏导致安装失败,二是被篡改过的镜像带来的安全隐患。

1.2 镜像站不只是用来下载的

镜像站这个词在热搜词里出现了好几次,但很多人对它的理解停留在“下载ISO的地方”,这是不够的。镜像站真正的价值在于安装完系统之后,它是你apt源、pip源、npm源的基础。

以清华TUNA为例,它的镜像目录里有Ubuntu、Debian、CentOS的软件仓库镜像,还有Python的PyPI、Node.js的npm、Docker的registry等,全都同步了官方源。把系统源和编程语言的源都指向镜像站之后,下载速度能提升一个量级,这是在国内用Linux最值得做的一步优化。

后面配置软件源的时候我会详细写操作步骤,这里先记住一个思路:只要是和网络下载相关的基础组件,都存在镜像源可选。与其在官方源里等一个几十MB的包等五分钟,不如花两分钟把源换成镜像,一笔很划算的买卖。

2. 安装方式与前期准备工作

2.1 虚拟机、双系统、物理机怎么选

安装Linux的方式无外乎三种:虚拟机、双系统、裸机安装,三者的适用场景完全不同。

虚拟机是门槛最低、风险最小的方式。装个VMware Workstation或者VirtualBox,内存分4GB,磁盘分80GB,ISO挂载上去直接就能跑。缺点是性能有损耗,显卡性能基本别指望,不适合当作开发主力机,但用来学习命令、折腾搭建、测试配置完全够用。如果你是第一次接触Linux,强烈建议从虚拟机开始,因为装坏了随时可以删掉重来,没有任何心理负担。

双系统适合那些既离不开Windows某些软件,又想日常使用Linux的人。好处是硬件性能完全能用满,坏处是安装过程比虚拟机稍微复杂,而且分区、引导、系统更新都可能出问题。网上那个热搜词“虚拟机安装linux蓝屏”很能说明问题——Windows和Linux共存的时候,有些坑确实容易踩。

裸机安装适合已经有明确目标的场景:给一台旧电脑装个Linux当备份服务器、一台独立机器做NAS、或者你决定彻底切换到Linux工作流。裸机安装的性能和稳定性都是最好的,但前提是你已经对Linux有足够的熟悉度,否则装完连网都连不上时的心态会崩。

从学习路径的角度,我的建议是:先用虚拟机跑两周,把常用命令和软件源配置练熟;然后挑一台旧电脑或者闲置笔记本,走一遍物理机安装的完整流程;最后再决定要不要在自己的主力机上搞双系统。台阶式的递进,比一上来就动主力机的风险低得多。

2.2 硬件要求与ISO校验

Linux对硬件的要求比大部分人想的低。装个最小化的服务器版,1核CPU、1GB内存、10GB磁盘都够跑。桌面版的要求高一些,但也不离谱:4GB内存、20GB磁盘是能流畅用Ubuntu桌面的底线。如果你要在这台机器上跑MySQL、Tomcat、Node.js这些服务,内存尽量给到8GB以上,不然内存吃紧的时候系统会频繁用swap,体验非常难受。

下载ISO之后,先校验再安装是必须养成的习惯。以Ubuntu 24.04为例,官网下载页面会给出SHA256SUMS文件,在终端里执行:

sha256sum ubuntu-24.04-desktop-amd64.iso

然后把输出的哈希和官方公布的值比对,一致就说明文件完好。虚拟机安装的话,挂载ISO后启动虚拟机时按下任意键进入安装界面(有些版本需要按Enter),整个过程和装Windows没有本质区别,选择语言、时区、键盘布局,然后到了分区步骤——这一步是很多新手翻车的地方,我会重点讲。

3. 实战安装:虚拟机与物理机完整流程

3.1 虚拟机安装Linux的完整步骤

以VMware Workstation为例,新建虚拟机时选择“典型安装”,OS类型选“Linux”,版本选对应的Ubuntu/Debian/CentOS。磁盘大小给80GB,不用立刻全部占用,选“将虚拟磁盘拆分成多个文件”,这样以后挂快照、迁移都比较方便。内存给4GB以上,网络模式默认NAT即可,装完系统之后如果需要从宿主机直接访问虚拟机里的服务,再改成桥接或者加端口转发。

启动虚拟机后,进入安装界面。Ubuntu桌面版需要注意一个地方:初始界面会问你想不想“试用Ubuntu”或者“安装Ubuntu”,选安装。安装过程中选择“最小安装”可以省掉好多不需要的软件。分区那一步,如果对分区没有明确规划,直接选“使用整个磁盘”最省事,安装器会自动帮你分好。但如果你想自己控制分区,那就要用“自定义分区”选项,下面这个是我常用的方案:

  • /boot 分区:1GB,放在磁盘最前面,启动文件不需要大
  • / 根分区:剩余的全部空间,除非有特殊需求,否则不需要单独分太多区
  • swap 交换空间:RAM的1倍到1.5倍,如果内存很大(16GB以上),可以给8GB甚至不单独建swap分区

这里强调一下:不要盲目照搬网上那些“划一个单独的/home分区、一个单独的/tmp分区”的方案。给目录单独分区意味着哪个分区满了哪个就满了,彼此之间不能借用空间。对新手来说,一个/加一个swap是永远不会出大错的选择。后期如果/home空间不够,用软链接或者lvm扩展都能解决。

安装过程会要求设置用户名和主机名。用户名建议不要用“root”,日常操作使用普通用户,需要用管理员权限的时候再通过sudo提权。设置密码时注意不要过于简单,因为你之后可能把SSH服务打开暴露到外网——密码太弱等于门户大开。

3.2 物理机双系统安装的分区和引导细节

物理机安装如果是裸机,参考上面的分区方案就行。如果想搞Windows+Linux双系统,顺序上有个铁律:先装Windows再装Linux。因为Windows的引导程序不认Linux的分区,而Linux的GRUB引导程序可以识别Windows的启动项,后装Linux能帮你把所有引导都管好。

Windows下先腾出一块空白磁盘空间,不需要提前分区,Linux安装器的分区工具比Windows自带的磁盘管理好用得多。启动Linux安装介质后,在分区步骤选择“安装Ubuntu,与Windows共存”,安装器会自动找到Windows所在的分区并缩小它,腾出空间装Linux。

双系统装完之后,最容易出问题的就是引导。Ubuntu默认会用GRUB接管启动顺序,开机时会显示菜单让你选Windows还是Ubuntu。如果你发现开机直接进Windows,没有出现选择菜单,多半是引导程序还在Windows的Boot Manager手里,需要在BIOS里把启动顺序调整成UEFI引导优先,或者在终端里用efibootmgr命令查看并修复启动项。

这里说一个很常见的问题:很多人装完双系统,进Windows一切正常,进Linux的时候wifi打不开或者网卡不识别。这大概率是无线网卡驱动没装。Ubuntu Stéphane有些网卡的驱动在系统安装时没有被默认激活。解决办法是先用有线网络连上,然后执行:

sudo apt update sudo apt install linux-firmware sudo reboot

大多数Realtek或Intel网卡在装了这个firmware包之后都能正常工作。这个经验几乎每次实机安装都会遇到,特此记一笔。

3.3 安装过程中常见的三个坑

第一个坑是上次提到的“虚拟机安装linux蓝屏”。这个蓝屏出现在宿主机上,而不是虚拟机里。原因通常是Windows的Hypervisor和VMware的虚拟化功能冲突,或者是BIOS里的虚拟化技术(VT-x/AMD-V)没打开。排查步骤是:先把BIOS里的虚拟化开关打开,然后如果之前开过Hyper-V、Windows沙盒、内存完整性这类功能,先关掉再试。VMware和新版Windows的Hyper-V共存的问题,网上讨论很多,最简单的处理方式就是三选一:要么用VirtualBox,要么关掉Windows的Hyper-V相关功能,要么干脆开启WSL2就不用传统虚拟机了。这个热搜词后面提到的“windows linux更新子系统安装向导提前结束 由于错误”——装WSL2的流程如果中途报错提前结束,基本都是系统更新没有完全安装完,或者BIOS没打开虚拟化。先把Windows Update跑完,再执行WSL2的安装命令,一般就能解决。

第二个坑是安装过程中网络连接失败。这和软件源有关系:安装包需要从网上拉取,如果默认源连接不畅,安装过程会卡住或者显示“下载失败”。这个不用太担心,安装完成后换源能解决,安装界面上的“安装过程中下载更新”这个选项,直接取消勾选,等系统装好再补齐更新,能省不少时间。

第三个坑是UEFI和Legacy引导模式不匹配。很多老电脑默认BIOS是Legacy模式,而现在的Linux镜像默认制作成UEFI引导。如果你制作启动盘之后发现电脑完全不读盘,先检查启动模式是UEFI还是Legacy,然后使用Rufus这样的工具,在分区方案里选择“GPT分区方案 + UEFI模式”,重新制作一遍启动盘就好了。

4. 系统初始化配置:让你的Linux变得顺手

4.1 换源、更新系统与基础软件包

系统装好第一件事,把软件源换到镜像站。以Debian系为例,编辑源列表文件:

sudo nano /etc/apt/sources.list

把里面以http开头的行替换成镜像站的地址。以Debian 13(Trixie)为例,使用清华源的话主要更改前边的域名为mirrors.tuna.tsinghua.edu.cn,并且把行首的deb保留,注释掉非free和security源的情况要看清,一般来说直接覆盖为如下内容就行:

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-updates main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ trixie-security main contrib non-free non-free-firmware

修改完执行:

sudo apt update sudo apt upgrade -y

apt update是刷新软件包列表,apt upgrade是真正执行升级,两项都要跑。升级过程中如果遇到内核更新,可能会提醒你重启,建议直接重启一次,让系统在干净状态下继续。之后顺手装几个基础包,这些包几乎每次都会用到:

sudo apt install -y vim curl wget git net-tools lsof unzip zip

有人会问为什么系统里没有ifconfig,因为新版Debian/Ubuntu默认没装net-tools。装完上面这些再执行ifconfig就有输出了。

4.2 用户管理:为什么不要用root

很多刚接触Linux的人对root有一种执念,觉得用root干活才显得专业。实际上,任何时候都不要用root作为日常账户。原因是root权限是无条件的,一个误操作比如rm -rf /就能让整台机器废掉。日常用普通用户登录,需要管理权限时用sudo,这样每个操作都有一道确认机制在帮你把关。

新建一个用户并把它加到sudo组的命令:

sudo adduser yourname sudo usermod -aG sudo yourname

第一条命令会交互式地让你设置密码和用户信息,第二条把用户加入sudo组。之后用新用户登录,或者干脆把SSH登录用户改成这个普通用户。还有一个小习惯:不要频繁切换成root身份去操作,而是养成在每条需要权限的命令前加sudo的习惯。这样在写脚本或者运维的时候,能很清楚地控制哪些操作有最高权限,哪些没有。

4.3 SSH配置与远程连接的细节

服务器上的Linux基本都需要开启SSH远程管理。安装并启动SSH服务的命令:

sudo apt install -y openssh-server sudo systemctl enable ssh sudo systemctl start ssh

然后确认IP地址并测试连接:

ip addr ssh yourname@192.168.x.x

这里有个安全细节供参考:如果这台机器对公网开放,建议修改SSH默认端口、禁止root直接登录、使用密钥认证而不是密码认证。以禁用root登录为例,编辑/etc/ssh/sshd_config,找到PermitRootLogin这一行改成no,然后重启SSH服务即可生效。

SSH登录慢和连接断的问题经常被问。登录慢大多是DNS反向解析导致的,在/etc/ssh/sshd_config里设置UseDNS no能显著加快登录速度。连接断最常见的原因是网络不稳定或服务端空闲超时,客户端使用ServerAliveInterval参数可以保持心跳,比如:

ssh -o ServerAliveInterval=60 yourname@192.168.x.x

连接的需求不同,参数可以按需调整。用这种方式排查SSH问题比在Stack Overflow上瞎搜效率高得多。

4.4 时钟同步与系统日志初探

Linux服务器如果时间不准,日志排查和定时任务都会出问题。Debian系默认装了systemd-timesyncd,可以通过timedatectl查看状态:

timedatectl timedatectl set-ntp true

如果公司内部没有时间服务器,默认的ntp.ubuntu.com等就能用;如果是在局域网或受控环境,可以修改/etc/systemd/timesyncd.conf里的NTP=指定内部源。时间同步虽然不起眼,但数据库死锁、证书校验、日志对比这些地方,时间不准会给你带来非常诡异的故障。

日志是排查问题最重要的信息来源。系统日志在/var/log/目录下,常用的有syslog、kern.log、auth.log。查看最近的错误信息:

journalctl -xe sudo tail -f /var/log/syslog

养成出问题先看日志的习惯,能帮你省掉大量猜谜时间。

5. Linux常用命令:按场景归类记忆更高效

5.1 文件与目录操作

几个高频命令:

ls -lah # 查看目录文件,-h显示人类可读的大小 cd /var/log # 切换目录 cp -r /source /target # 复制目录要加-r mv file1 file2 # 移动或重命名 rm -rf /path/dir # 删除目录要慎重,-rf是递归加强制 mkdir -p a/b/c # 递归创建多级目录 chmod 755 script.sh # 修改权限,7=rwx 5=r-x chown user:group file # 修改属主和属组

chmod这里多说几句。三位数字分别对应所有者、用户组、其他的权限,每一位的数字是读(4)、写(2)、执行(1)之和。所以755就是所有者可读写执行,组和其他人可读可执行。开发环境里最常见的权限坑就是:文件能看但改不了,或者脚本能看但执行不了,基本都能通过ls -l查看权限并用chmod解决。

查找文件用find,最常用的场景:

find /var -name "*.log" -type f grep -rn "error" /var/log/syslog

一个是按名字找文件,一个是在文件内容里搜模式。这两个配合起来,排查问题的基本能力就有了。

5.2 系统状态与资源监控

服务器跑着跑着变卡,第一个反应是看资源。三件套命令:

top # 动态查看进程和资源占用 htop # top的友好版本,支持鼠标操作 free -h # 查看内存信息,-h人性化显示 df -h # 查看磁盘剩余空间 uname -a # 查看内核版本

top输出的第一行能看到平均负载(load average),三个数字分别对应1分钟、5分钟、15分钟的系统负载。如果负载长时间高于CPU核心数,说明系统有瓶颈。按P键按CPU排序、按M键按内存排序,快速定位哪个进程在吃资源。其实htop比起top更直观,排序、杀进程都可以直接用功能键,如果你需要长时间盯着系统状态,装一下htop准没错。

进程管理相关:

ps aux | grep java # 查看java相关进程 kill -9 PID # 强杀进程,-9是强制终止 sudo systemctl status sshd # 查看服务状态

“linux 修改进程名称”这个热搜词,其实操作起来就是把进程的comm字段改掉,通常在写Python或Shell脚本时用到。一个简单的办法是在启动命令前使用bash -c 'exec -a newname ./program',exec -a参数可以自定义进程名,这样在ps里看到的就是你指定的名字而不是脚本原名。不过要注意,进程名修改功能实际效果依赖于系统调用权限,特定情况下可能会不生效。

5.3 网络排查五板斧

网络问题是运维里最常见的故障来源,掌握下面五个命令基本能应付九成场景:

ping -c 4 baidu.com # 测试目标是否可达 ip addr # 查看本机IP和网卡状态 ip route # 查看路由表 curl -I https://example.com # 测试HTTP服务是否正常 traceroute baidu.com # 追踪数据包路径,定位断点

如果连外网不通,先ping网关,网关通了说明局域网正常,问题在出口;网关都不同说明网卡配置有问题。curl也是排查端口是否监听的利器——本地服务明明起了却访问不了,先curl localhost:8080看看,服务返回了说明服务没问题,问题在网络层面。

6. 开发环境安装与配置:JDK、Tomcat、MySQL、Node.js、Git

6.1 JDK与Tomcat:手动安装才能搞懂环境变量

装JDK网上教程多到爆炸,但很多人都是照着教程装完就把原理忘了。JDK的安装核心就两件事:二进制解压、配置环境变量。用包管理器可以装,但手动安装能帮你理解JAVA_HOME、PATH这些概念到底是怎么工作的。

从Oracle官网或Adoptium下载JDK的tar.gz包,放在/opt目录下并解压:

sudo tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /opt sudo mv /opt/jdk-21 /opt/jdk21

然后编辑环境变量文件:

sudo nano /etc/profile.d/java.sh

写入:

export JAVA_HOME=/opt/jdk21 export PATH=$JAVA_HOME/bin:$PATH

保存后执行source /etc/profile.d/java.sh,然后验证:

java -version

把环境变量文件放在/etc/profile.d/下,而不是直接改/etc/profile,是个好习惯。这样每个对应的软件一个文件,互不干扰,卸载的时候直接删文件就行。

Tomcat的安装更简单,解压即用,但注意要先装JDK,然后通过CATALINA_HOME环境变量指定Tomcat路径:

sudo tar -zxvf apache-tomcat-11.tar.gz -C /opt export CATALINA_HOME=/opt/apache-tomcat-11 sudo $CATALINA_HOME/bin/startup.sh

Tomcat默认端口是8080,如果想改端口,编辑$CATALINA_HOME/conf/server.xml,找到Connector标签里的port属性改掉就行。注意如果8080端口被占用,启动日志里会报Address already in use,这是最常见的端口占用问题。

6.2 MySQL安装与配置:从apt到安全加固

MySQL的安装我建议用apt源直接装,比自己下载二进制包省心得多:

sudo apt install -y mysql-server sudo systemctl start mysql sudo systemctl enable mysql

装完先做安全性配置:

sudo mysql_secure_installation

这个命令会引导你设置root密码、删除匿名用户、禁用root远程登录等。执行完再进入数据库验证:

sudo mysql -u root -p

这里有个新版本的坑:Ubuntu新装的MySQL,root用户默认使用auth_socket认证方式,也就是说只有在操作系统层面是root用户才能登录数据库的root账号。用sudo mysql能直接进去,但用mysql -u root -p输入密码会失败。如果你需要设置密码登录,需要改认证方式:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;

创建业务用数据库和用户的规范做法:

CREATE DATABASE app_db CHARACTER SET utf8mb4; CREATE USER 'app_user'@'localhost' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost'; FLUSH PRIVILEGES;

每天给数据库做备份比把密码复杂化重要得多。最简单的备份命令:

mysqldump -u root -p app_db > /backup/app_db_$(date +%F).sql

配合crontab定时任务,就能做到每天自动备份。

6.3 Node.js安装:nvm才是正解

安装Node.js的方法很多,最推荐的是用nvm(Node Version Manager)。它解决的核心痛点是:项目A需要Node 16,项目B需要Node 20,装一个全局Node永远没法同时满足两个项目。nvm允许系统里同时存在多个Node版本,随时切换。

安装nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc

然后用nvm装Node:

nvm install 20 nvm use 20 node -v npm -v

npm下载依赖慢的问题是国内开发者的日常,设置镜像源能提速很多:

npm config set registry https://registry.npmmirror.com

和apt源一样,npm把官方registry换到镜像站之后,npm install的速度变化是肉眼可见的。如果你装了yarn或者pnpm,同样有对应的镜像设置方式,可以一并处理好。

6.4 Git安装与配置

Git一般用apt装就够了,装完需要做的配全局用户信息:

sudo apt install -y git git config --global user.name "你的名字" git config --global user.email "你的邮箱" git config --global init.defaultBranch main

第三个配置是把默认分支名从master改成main,这是Git仓库初始化时的一个小习惯。生成SSH密钥并关联到GitHub或GitLab:

ssh-keygen -t ed25519 -C "你的邮箱" cat ~/.ssh/id_ed25519.pub

把输出的公钥粘贴到代码托管平台就能完成认证。用ed25519算法比老旧的rsa更安全更快,新项目建议直接用它。

6.5 Maven与Gradle:Java构建工具配置

Maven的安装配置和JDK类似,解压后设置环境变量:

sudo tar -zxvf apache-maven-3.9.x.tar.gz -C /opt export MAVEN_HOME=/opt/apache-maven-3.9.x export PATH=$MAVEN_HOME/bin:$PATH

然后配置阿里云镜像仓库,编辑/opt/apache-maven-3.9.x/conf/settings.xml,在<mirrors>标签里加入:

<mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <name>Aliyun Maven Mirror</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>

不配置镜像的话,Maven下载依赖的速度会让你怀疑人生。Gradle的配置思路类似,在~/.gradle/init.gradle里加阿里云的仓库地址,依赖也能加速。

7. 常见问题排查与运维心得

7.1 安装与启动问题速查表

症状大概率原因快速解法
虚拟机开启后宿主机蓝屏Hyper-V冲突 / 虚拟化未开启关闭Hyper-V或Windows沙盒,BIOS打开VT-x
安装界面卡在“检测光驱”ISO损坏 / 启动盘制作问题重新下载ISO并校验哈希,用Rufus以UEFI模式重做启动盘
装完系统没有无线网卡无线固件缺失sudo apt install linux-firmware后重启
开机只有Windows没有Linux引导顺序被Windows接管BIOS优先UEFI,或进入Linux修复GRUB
apt update报404源文件里的发行版版本号写错按/etc/os-release里的版本号重新配置源
服务启动失败端口被占用sudo lsof -i :端口号查找占用进程并处理

7.2 忘记root密码的急救方法

这个场景很多人早晚会遇到。启动时按住Shift进入GRUB菜单(如果是UEFI模式,可能需要反复按Esc),选择recovery mode(恢复模式),然后选择root shell,就能以root身份进入系统。执行:

mount -o remount,rw / passwd root reboot

一个看似土办法但极其好用。每次处理完这种问题,我都会提醒自己:日常用普通用户+sudo,忘密码的概率会低很多。

7.3 swap空间不够用怎么办

跑数据库或者编译大项目时,如果free -h看到swap已经用满,系统就会变得非常卡。这种情况加个swap文件比重新分区快得多——swap文件可以在不重装系统的情况下动态创建:

sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile

要持久化的话,把/swapfile none swap sw 0 0这行加到/etc/fstab即可。这个方案特别适合虚拟机场景,因为虚拟机磁盘就是个文件,扩展起来很容易,不用真的去动分区表。

7.4 共享上网与NAS挂载

热搜词里看到“linux 共享上网 办法”,在实际场景里其实就是配置网卡转发和NAT。Debian系用iptables做IP转发:

sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这块配置涉及具体的网络结构,本文不展开所有细节,但思路是:Linux作为网关,把内网网卡的流量转发到外网网卡。如果需要长期生效,把sysctl配置写入/etc/sysctl.conf,iptables规则保存为开机自启。

NAS挂载则更常见:把远端NAS的NFS或SMB目录挂载到本地目录:

sudo mkdir /mnt/nas sudo mount -t nfs 192.168.1.100:/volume1/data /mnt/nas

要开机自动挂载,在/etc/fstab里加一行,但注意NFS挂载如果网络不稳定,开机时可能会卡住系统。建议加_netdev参数表示网络设备就绪后再挂载,然后开启nofail属性避免挂载失败导致启动卡住。

8. 个人经验与最后分享

装Linux这些年踩过的坑很多,有几个心得值得分享。

第一个心得:学Linux不要贪多求快。从下载ISO到完成初始化配置,这套流程完整走三遍,基本能达到“遇到问题不慌”的水平。第一遍照着教程敲,第二遍脱离教程凭记忆敲,第三遍尝试不看任何笔记独立完成并且讲得出每个步骤在干什么。这个方法比闷头刷题有效得多。

第二个心得:日志是你最好的老师。很多新人遇到问题第一反应是问人,但journalctl -xe、/var/log/syslog里的信息往往已经提示得很清楚了。养成“先看日志再搜索”的习惯之后,你排查问题的速度会快一个量级。搜索的时候也尽量贴报错原文,比描述症状能找到更多有效答案。

第三个心得:系统备份和系统安装同样重要。装好一套环境之后,用虚拟机的话打个快照,物理机的话至少把配置文件集中整理到Git仓库里。我用了一个dotfiles仓库,把.bashrc、.vimrc、sshd配置、源列表全部存起来,任何一台新机器clone下来就能快速部署。这套工作需要花一些时间去铺,但一旦建立起来,以后重装系统不再是折磨,而是十几分钟的流程。

从“Linux安装及配置”这个起点延伸出去,你能学到的远不止装系统本身。分区规划背后是存储管理,环境变量背后是进程如何找到依赖,日志背后是系统如何告诉你它发生了什么。把这些点逐一吃透,你就会发现Linux不再是一个需要照着教程小心翼翼操作的黑盒子,而是一套逻辑清晰、管理优雅的基础设施。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询