Linux入门指南:从零基础到掌握核心命令与系统管理
1. 从零开始:为什么你需要了解Linux?
如果你刚接触计算机,或者一直生活在Windows或macOS的图形界面里,第一次听说“Linux”这个词,可能会觉得它既神秘又遥远。它听起来像是那些穿着格子衫、盯着黑色屏幕敲打神秘代码的程序员专属领域。但我想告诉你的是,Linux早已无处不在,它远比你想象的更贴近你的生活。你每天刷的短视频、用的手机App、甚至很多智能家电的背后,很可能就运行着Linux系统。它就像互联网世界的“地基”,虽然不常被普通用户直接看到,却支撑着绝大部分的网络服务。
那么,作为一个“超级小白”,我们为什么要花时间学习它呢?原因很简单:理解力与控制力。在图形化操作系统里,你点击一个图标,电脑就执行一个操作,这很便捷,但你并不知道背后发生了什么。而Linux,尤其是它的命令行界面,就像给了你一台机器的设计图纸和维修手册。通过学习它,你不仅能学会如何“使用”电脑,更能理解电脑“如何工作”。这对于任何想深入技术领域,无论是软件开发、网络安全、数据分析还是系统运维的人来说,都是一项不可或缺的基础技能。它让你从被动的“用户”转变为主动的“构建者”和“管理者”。
别被那些复杂的命令吓到。学习Linux基础,并不是要你一夜之间成为系统管理员。我们的目标很明确:建立信心,掌握核心概念,学会完成基本但关键的任务。比如,你能在Linux系统里自由地浏览文件、安装软件、管理进程、配置网络,这就已经超越了90%的普通电脑使用者。这篇指南就是为你设计的,我会假设你没有任何相关背景,从最根本的概念讲起,手把手带你走过最初的、也是最关键的几步。
2. Linux世界全景图:内核、发行版与哲学
在真正动手操作之前,我们需要先理清几个最核心的概念,这能帮你构建一个清晰的知识地图,避免后续学习中的混淆。
2.1 Linux内核:系统的“心脏”
首先,要分清“Linux”这个词的两种含义。狭义上,Linux特指Linux内核。你可以把内核想象成汽车发动机。它负责最底层、最核心的工作:管理CPU(计算)、内存(临时存储)、磁盘(永久存储)和网络设备(通信)等硬件资源,为上层软件提供一个稳定、统一的运行环境。没有内核,任何软件都无法直接和硬件打交道。Linux内核是由林纳斯·托瓦兹在1991年发起并持续维护的开源项目,其源代码对全世界公开,任何人都可以查看、修改(在遵守许可协议的前提下)和贡献。正是这种开放性,奠定了Linux繁荣的生态基础。
2.2 Linux发行版:完整的“汽车”
只有发动机(内核)是开不走的。我们需要给它装上方向盘、座椅、轮胎和外壳,再加上空调、音响等应用软件,才能组成一辆能上路的车。在Linux世界里,这个完整的“汽车”就是发行版。
一个典型的Linux发行版包含:
- Linux内核:提供核心驱动和资源管理。
- GNU工具集:包括
bash(最常用的命令行解释器)、grep(文本搜索)、cp/mv(文件操作)等成百上千个基础命令工具。严格来说,很多发行版应该叫“GNU/Linux”系统。 - 软件包管理系统:用于搜索、安装、升级和卸载软件的标准化工具,这是不同发行版之间最显著的区别之一。
- 桌面环境(可选):如图形化界面(GUI),例如GNOME、KDE Plasma、XFCE等,让习惯Windows/macOS的用户也能通过鼠标操作。
- 预装的应用软件:如浏览器、文本编辑器、办公套件等。
注意:初学者常犯的一个错误是混淆不同发行版的命令和软件管理方式。记住,你选择的“发行版”决定了你后续学习和使用的主要工具链。
2.3 主流发行版选择指南
面对数百个发行版,新手该如何选择?这里我根据应用场景和上手难度,为你梳理了三个最主流的方向:
1. Ubuntu / Linux Mint:新手友好之选
- 特点:基于Debian,拥有最庞大的社区和最丰富的在线教程。安装过程图形化程度高,硬件兼容性好,遇到问题几乎都能搜到解决方案。
- 包管理工具:
apt(apt-get) - 适合人群:绝对初学者。想快速上手,专注于学习Linux概念和命令本身,而不想被系统安装和驱动问题困扰。
- 个人建议:对于纯小白,我强烈推荐从Ubuntu LTS(长期支持版)或Linux Mint开始。它们提供了最平滑的入门体验。
2. Fedora / CentOS Stream / Rocky Linux:前沿与稳定的平衡
- 特点:Fedora以集成最新技术著称,是很多新特性的“试验场”;CentOS Stream和Rocky Linux则与Red Hat Enterprise Linux (RHEL)高度兼容,更强调企业级的稳定性。
- 包管理工具:
dnf(Fedora, CentOS Stream) /yum(旧版,现多为dnf的别名) - 适合人群:有一定基础,或明确未来要从事企业级服务器运维、开发的用户。Fedora适合想体验最新特性的爱好者,Rocky Linux则适合需要稳定环境的学习者。
3. Arch Linux / Manjaro:DIY爱好者的乐园
- 特点:Arch Linux采用“滚动更新”模式,软件永远是最新的。它推崇“KISS”(保持简单和愚蠢)原则,安装过程需要大量手动配置,但能让你对系统有极其深刻的理解。Manjaro是基于Arch的衍生版,安装更友好。
- 包管理工具:
pacman - 适合人群:不推荐纯小白直接尝试。适合那些不畏惧命令行、享受从头构建系统、并希望完全掌控系统每一个细节的学习者。
实操心得:如何迈出第一步?对于99%的初学者,我的建议是:不要在你的主力电脑(尤其是唯一电脑)上直接安装Linux来学习。一个错误的命令可能导致数据丢失或系统无法启动。最佳实践是使用虚拟机。
- 工具:在Windows或macOS上安装VirtualBox或VMware Workstation Player(个人免费)。它们就像在你的电脑里模拟出另一台独立的“虚拟电脑”。
- 好处:你可以在虚拟机里任意“折腾”Linux系统,即使玩坏了,也只需几分钟就能恢复一个干净的快照,完全不影响你宿主机(真实电脑)的正常使用。这是学习系统类知识最安全、最高效的方式。
3. 第一次亲密接触:安装与初体验
让我们以最流行的Ubuntu 22.04 LTS在VirtualBox中的安装为例,完成你的第一次实战。
3.1 准备工作:获取系统镜像与创建虚拟机
- 下载Ubuntu镜像:访问 Ubuntu 官网,找到 22.04 LTS 版本的 “Desktop image” 进行下载。你会得到一个后缀为
.iso的文件,这就是系统的“安装光盘”镜像。 - 安装并打开VirtualBox:从官网下载安装,过程与普通软件无异。
- 创建新虚拟机:
- 点击“新建”,输入一个易于识别的名称(如
MyUbuntu),类型选择“Linux”,版本选择“Ubuntu (64-bit)”。 - 内存分配:建议分配2048 MB (2GB)或以上。这是虚拟机的“运行内存”,分得太少会卡顿,分得太多会影响宿主机的性能。
- 创建虚拟硬盘:选择“现在创建虚拟硬盘”,类型用默认的VDI,动态分配即可。大小建议25 GB以上。动态分配意味着它最初只占用很少的物理磁盘空间,随着虚拟机内文件增多而逐渐增大,但最大不会超过你设定的这个值。
- 点击“新建”,输入一个易于识别的名称(如
3.2 安装过程详解与关键选项
创建好虚拟机后,选中它,点击“设置”。
- 系统 -> 处理器:如果你的CPU核心数较多,可以分配2个核心,能提升虚拟机性能。
- 存储:在“控制器: IDE”的光盘图标处,点击“选择磁盘文件”,然后找到你下载的Ubuntu
.iso文件并加载。 - 网络:确保网络适配器是“启用”状态,连接方式为“网络地址转换(NAT)”。这样虚拟机可以共享宿主机的网络上网,但宿主机网络中的其他设备无法直接访问虚拟机,对初学者最安全。
启动虚拟机,安装程序会自动从ISO镜像引导。
- 语言选择:选择中文(简体),后续步骤会以中文显示。
- 键盘布局:保持默认。
- 安装类型:这是关键一步!你会看到“正常安装”和“最小安装”选项。对于新手,务必勾选“正常安装”,它会安装图形界面、办公套件、媒体播放器等常用软件,方便你立即使用。同时,一定要勾选“为图形或无线硬件安装第三方软件”,这包含了许多闭源的硬件驱动(如某些网卡、显卡驱动),能极大提高硬件兼容性。
- 安装类型(磁盘):由于是在全新的虚拟硬盘上安装,直接选择“清除整个磁盘并安装Ubuntu”即可,安装程序会自动为你分区,最省心。
- 时区与用户:设置你所在的时区(如Shanghai)。创建你的第一个用户账号和密码,请务必记住这个密码,在Linux中,进行系统级操作(如安装软件)时需要用它进行权限验证。
安装过程大约需要15-30分钟,完成后重启。重启后,VirtualBox可能会提示你“请移除安装介质后按回车”,此时你需要进入虚拟机的设置,将之前加载的ISO镜像“弹出”,然后按回车,系统就会从虚拟硬盘正常启动了。
3.3 登录后的第一件事:熟悉桌面与终端
首次登录后,你会看到一个清爽的GNOME桌面环境。界面布局与Windows/macOS有差异,但核心逻辑相通:顶部栏、应用菜单、可放置快捷方式的桌面。
对于学习Linux而言,我们最重要的工具不是图形界面,而是“终端”或“命令行”。你可以通过快捷键Ctrl+Alt+T快速打开一个终端窗口。打开后,你会看到一个提示符,通常像这样:username@computername:~$。
username:你当前登录的用户名。computername:你的计算机名。~:波浪号代表你当前所在的目录是家目录,每个用户都有一个独立的家目录,用于存放个人文件和配置,路径通常是/home/username。$:提示符,表示你当前是普通用户。如果看到#,则表示你是拥有最高权限的root用户(超级管理员),需格外小心。
现在,尝试输入你的第一个命令:ls,然后按回车。你会看到当前目录(家目录)下的文件和文件夹列表(初始可能是空的)。恭喜,你已经成功向Linux系统发出了第一条指令!
4. 生存必备:文件系统与基础命令实战
Linux的一切皆文件,包括硬件设备、目录、甚至进程信息。理解文件系统结构并熟练使用基础命令,是你在Linux世界中行走的“双腿”。
4.1 Linux文件系统树:一切从“/”开始
与Windows的“C盘”、“D盘”不同,Linux的文件系统是一个单一的树形结构,根目录是/。所有分区、设备、甚至网络存储,都“挂载”到这棵树的某个目录下,成为它的一个分支。
你需要记住几个最关键的核心目录:
/:根目录,所有目录的起点。/home:用户家目录的所在地。你的个人文件、下载、桌面等都在这里,例如/home/yourname。/etc:系统配置文件的集中地。网络配置、软件配置、用户信息等都在这里。修改这里的文件需要管理员权限。/var:存放经常变化的文件,如日志 (/var/log)、缓存、数据库文件等。/usr:存放用户安装的应用程序和只读数据,可以理解为“用户软件资源”。/bin和/sbin:存放系统最基础的命令。sbin下的命令通常需要管理员权限才能执行。/tmp:临时文件目录,所有用户都可读写,系统重启后内容可能会被清除。
实操心得:路径的两种写法
- 绝对路径:从根目录
/开始的完整路径,如/home/yourname/Documents/report.txt。无论你在哪个目录,使用绝对路径都能准确定位到同一个文件。 - 相对路径:相对于你当前所在目录的路径。
.代表当前目录,..代表上一级目录。例如,你在/home/yourname下,Documents/report.txt就是一个相对路径。灵活使用相对路径可以简化命令输入。
4.2 核心命令四部曲:浏览、操作、查看、管理
下面这组命令,请你务必反复练习,形成肌肉记忆。
1. 浏览与导航
pwd:打印当前工作目录。当你不知道自己在哪里时,就用它。ls:列出目录内容。ls -l:以长格式列出,显示文件权限、所有者、大小、修改时间等详细信息。ls -a:列出所有文件,包括以.开头的隐藏文件(通常是配置文件)。ls -lh:以人类可读的格式(如K, M, G)显示文件大小,结合-l使用。
cd:切换目录。cd /home:切换到/home目录。cd ..:切换到上一级目录。cd或cd ~:直接回到家目录。cd -:切换到上一个所在的目录,非常实用。
2. 文件与目录操作
mkdir myfolder:创建名为myfolder的目录。touch myfile.txt:创建一个名为myfile.txt的空文件,或更新已存在文件的时间戳。cp source.txt destination/:将source.txt复制到destination目录下。-r参数用于递归复制目录。mv oldname.txt newname.txt:将文件重命名或移动到其他目录。Linux没有专门的“重命名”命令,移动和重命名都是mv。rm myfile.txt:删除文件。这个命令非常危险,删除后通常无法恢复!rm -r myfolder:递归删除目录及其内部所有内容。rm -i myfile.txt:在删除前进行交互式确认,建议新手养成加-i参数的习惯。
cat myfile.txt:查看文件全部内容,适合小文件。less myfile.txt:分页查看文件内容,适合大文件。进入后,按空格键向下翻页,按q键退出。
3. 文件内容查看与搜索
head -n 10 myfile.log:查看文件开头10行。tail -n 20 myfile.log:查看文件末尾20行。-f参数可以实时追踪文件新增内容,常用于监控日志:tail -f /var/log/syslog。grep "error" myfile.log:在文件中搜索包含“error”字符串的行。grep是文本处理的神器,支持强大的正则表达式。
4. 系统信息与进程管理
ps aux:查看当前系统中所有进程的详细信息。top或htop(需安装):动态、交互式地查看系统资源(CPU、内存)占用情况和进程列表。按q退出。df -h:查看磁盘空间使用情况,-h参数以人类可读格式显示。free -h:查看内存和交换空间使用情况。uname -a:查看系统内核版本、主机名等详细信息。
重要警告:在Linux中,尤其是使用
rm、mv命令,以及编辑系统配置文件时,务必先确认路径和文件名。一个常见的灾难性错误是:本想删除/tmp/oldfiles/*,却误输入为rm -rf / tmp/oldfiles/*(/后面多了一个空格),这将导致删除根目录下的所有文件!因此,对于重要操作,可以先使用ls命令列出目标,确认无误后再执行。
5. 权限与用户管理:理解“谁可以做什么”
Linux是一个多用户系统,严格的权限机制是系统安全的核心。理解它,你才能游刃有余。
5.1 解读文件权限:ls -l的秘密
执行ls -l,你会看到类似这样的输出:
-rwxr-xr-- 1 alice developers 2048 Jan 10 14:30 myscript.sh drwxr-x--- 2 bob staff 4096 Jan 10 14:25 myfolder/我们来拆解第一段-rwxr-xr--:
- 第一个字符:
-表示普通文件,d表示目录,l表示链接文件。 - 后面9个字符,每3个一组,分别代表所有者(u)、所属组(g)、其他用户(o)的权限。
r:读权限(4)。对于文件,意味着可以查看内容;对于目录,意味着可以列出目录内容(ls)。w:写权限(2)。对于文件,意味着可以修改内容;对于目录,意味着可以在其中创建、删除、重命名文件。x:执行权限(1)。对于文件,意味着可以作为一个程序来运行(如脚本、二进制程序);对于目录,意味着可以“进入”该目录(cd)。
- 所以
rwxr-xr--解读为:所有者可读、写、执行;所属组可读、执行;其他用户仅可读。
5.2 修改权限:chmod命令
权限可以用数字或符号两种方式修改。
- 数字模式(最常用):将每组权限视为一个3位二进制数,
rwx=7(4+2+1),r-x=5(4+0+1),r--=4。chmod 755 myscript.sh:将权限设置为rwxr-xr-x。常用于可执行脚本或程序,所有者全权,其他人可读可执行。chmod 644 myfile.txt:将权限设置为rw-r--r--。常用于普通数据文件,所有者可读写,其他人只读。
- 符号模式:
u(所有者),g(组),o(其他),a(所有);+(添加),-(移除),=(设置)。chmod u+x myscript.sh:给所有者添加执行权限。chmod go-w myfile.txt:移除组和其他用户的写权限。
5.3 用户与组管理基础
whoami:查看当前登录的用户名。groups:查看当前用户属于哪些组。sudo:超级用户执行。普通用户在执行需要管理员权限的命令前加上sudo,并输入自己的密码(不是root密码),即可临时获得root权限。这是Ubuntu等系统推荐的管理方式,避免直接使用root账户。- 例如:
sudo apt update(更新软件源列表)。
- 例如:
su:切换用户。su -切换到root用户(需要root密码),su - alice切换到alice用户(需要alice的密码)。
实操心得:关于sudo与su日常操作中,应始终使用自己的普通账户。仅在需要安装软件 (sudo apt install)、修改系统配置 (sudo vim /etc/xxx.conf) 等特定操作时,才使用sudo。这遵循了“最小权限原则”,即使误操作或遭遇恶意脚本,损害也能被限制在最小范围。尽量避免使用su -长期在root shell下工作,那是非常危险的习惯。
6. 软件包管理:让系统“活”起来
学会了基本操作,你一定会想安装新软件。Linux发行版强大的软件包管理系统,让这一切变得高效且安全。
6.1 理解软件仓库与包管理工具
软件包管理系统就像一个高度组织化的“应用商店”。系统维护者将编译好的软件(包含程序本身、依赖库、配置文件等)打包成.deb(Debian/Ubuntu) 或.rpm(Fedora/RHEL) 格式的“软件包”,集中存放在官方或第三方的“软件仓库”里。包管理工具 (apt,dnf,pacman) 则负责从仓库搜索、下载、安装、升级和解决依赖关系。
依赖关系是包管理的核心概念。例如,软件A的运行需要库B和C,那么B和C就是A的依赖。包管理工具会自动帮你安装所有必需的依赖,形成一个完整的软件运行环境。
6.2 Ubuntu/Debian系 (apt) 实战
apt是当前最常用的命令,它整合了老旧的apt-get和apt-cache的功能。
更新软件源列表:在安装任何软件前,最好先更新本地软件包索引,这能获取到仓库中最新的软件信息。
sudo apt update注意:
update是更新软件列表,不是更新软件本身。这步只是刷新目录。升级已安装的软件包:将系统中所有已安装的软件升级到仓库中的最新版本。
sudo apt upgrade执行此命令前,它会列出所有可升级的包并询问是否继续,按
Y确认。搜索软件:如果你不知道软件包的确切名称,可以先搜索。
apt search wireshark安装软件:
sudo apt install vim htop git可以一次性安装多个软件,用空格分隔。
vim是强大的文本编辑器,htop是增强版进程查看器,git是版本控制工具,都是开发者的必备利器。卸载软件:
sudo apt remove vim这会删除软件包,但通常保留配置文件。如果想连配置文件一起清除,使用
sudo apt purge vim。清理无用包:在安装和卸载过程中,系统可能会残留一些不再被需要的依赖包(称为“孤儿包”)。定期清理可以释放磁盘空间。
sudo apt autoremove
6.3 其他发行版快速参考
- Fedora/RHEL/CentOS/Rocky (dnf):
sudo dnf update # 更新软件包列表并升级所有包(相当于 apt update && apt upgrade) sudo dnf install vim # 安装 sudo dnf remove vim # 卸载 - Arch/Manjaro (pacman):
sudo pacman -Syu # 同步软件数据库并升级所有包(-S 同步, -y 更新数据库, -u 升级) sudo pacman -S vim # 安装 sudo pacman -R vim # 卸载
常见问题与排查技巧实录
- 问题1:
sudo apt update报错,提示“无法连接上...”或“Hash校验和不符”。- 排查:这通常是网络问题或软件源服务器暂时不可用/被墙。首先检查虚拟机网络是否正常(
ping 8.8.8.8)。对于国内用户,建议更换为国内镜像源以加速访问。 - 解决:备份原源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup,然后编辑源列表sudo vim /etc/apt/sources.list,将archive.ubuntu.com和security.ubuntu.com替换为mirrors.aliyun.com或mirrors.tuna.tsinghua.edu.cn等国内镜像地址。保存后再次执行sudo apt update。
- 排查:这通常是网络问题或软件源服务器暂时不可用/被墙。首先检查虚拟机网络是否正常(
- 问题2:安装软件时提示“无法定位软件包”。
- 排查:可能是软件包名称输入错误,或者该软件不在默认的官方仓库中。
- 解决:先用
apt search确认准确的包名。如果确实不在官方源,可能需要添加第三方PPA(Ubuntu)或EPEL(RHEL系)仓库。对于新手,建议优先使用官方仓库或信誉良好的第三方源。
7. 文本处理三剑客:grep,sed,awk
当你需要从日志中提取错误信息、批量修改配置文件、或者分析结构化数据时,命令行下的文本处理能力将让你事半功倍。grep、sed、awk是三个功能强大且使用频繁的工具,合称“三剑客”。
7.1grep:全局搜索正则表达式并打印
grep的核心功能是搜索。它在文件或标准输入中查找匹配指定模式的行。
- 基础搜索:
grep "error" /var/log/syslog在系统日志中查找所有包含“error”的行。 - 忽略大小写:
grep -i "warning" file.txt - 显示行号:
grep -n "pattern" file.txt - 递归搜索目录:
grep -r "TODO" /home/myproject/在项目目录下所有文件中搜索“TODO”。 - 反向搜索:
grep -v "^#" config.conf查找所有不以#开头的行(常用于查看有效配置,过滤注释)。 - 正则表达式:
grep "^[0-9]" file.txt查找以数字开头的行。grep "\.log$"查找以.log结尾的行(.需要转义)。
7.2sed:流编辑器
sed的核心功能是编辑。它按行读取输入,根据脚本指令进行处理,然后输出。它特别适合批量替换和删除操作。
- 替换文本:
sed 's/old/new/g' file.txt将文件中所有的“old”替换为“new”。s表示替换,g表示全局(一行内所有匹配项)。- 实操示例:将文件中的所有“foo”替换为“bar”,并直接修改原文件(危险!建议先不加
-i测试):sed -i.bak 's/foo/bar/g' file.txt-i.bak表示直接修改原文件,并同时创建一个备份文件file.txt.bak。这是非常实用的安全操作习惯。
- 实操示例:将文件中的所有“foo”替换为“bar”,并直接修改原文件(危险!建议先不加
- 删除行:
sed '/^#/d' config.conf删除所有以#开头的行(删除注释)。d表示删除。 - 打印特定行:
sed -n '10,20p' file.txt仅打印文件的第10到20行。-n抑制默认输出,p命令打印。
7.3awk:文本分析报告生成器
awk更像一门编程语言,功能最强大,尤其擅长处理按列(字段)组织的文本数据(如CSV、日志)。它自动将每一行按分隔符(默认是空格)分割成多个字段($1,$2, ...$NF表示最后一个字段,$0表示整行)。
- 打印特定列:打印
/etc/passwd文件的第一列(用户名)和第三列(用户ID),该文件以冒号:分隔。awk -F: '{print $1, $3}' /etc/passwd-F:指定字段分隔符为冒号。 - 条件过滤:打印系统进程列表中,CPU使用率超过5.0的进程名和CPU使用率(假设
ps aux输出中,CPU在第3列)。
这里从ps aux | awk '$3 > 5.0 {print $11, $3}'ps aux的输出中,筛选出第三列数值大于5.0的行,然后打印第11列(命令名)和第三列。 - 简单计算:计算一个文件中所有数字的总和(假设每行一个数字)。
awk '{sum += $1} END {print sum}' numbers.txt
三剑客组合使用示例:查找最近一次系统启动相关的日志,并提取时间戳和事件。
grep "systemd\[1\]: Started" /var/log/syslog | tail -5 | awk '{print $1, $2, $3, $11}'这条命令管道 (|) 连接了三个命令:1.grep从系统日志中筛选出包含“Started”的行;2.tail取最后5行(最近发生的);3.awk打印出前三个字段(时间戳)和第十一个字段(启动的服务名)。
掌握这三者的基础用法,你处理文本文件的效率将远超图形界面下的手动操作。初期不必追求精通所有高级特性,从上述常用例子开始练习,逐步积累。
8. 网络配置与远程连接
让Linux系统接入网络并能够被远程管理,是走向实际应用的关键一步。
8.1 基础网络检查命令
ip addr show或ifconfig(较老):查看所有网络接口的IP地址、MAC地址等信息。ip命令更现代,功能更强大。ping -c 4 8.8.8.8:向Google的公共DNS服务器发送4个ICMP回显请求包,测试网络连通性。如果能通,说明你的虚拟机可以访问外网。curl ifconfig.me或curl ip.sb:从外部服务获取你当前的公网IP地址(在NAT模式下,这是宿主机的公网IP)。netstat -tulnp:查看当前系统监听的网络端口以及对应的进程。-tTCP,-uUDP,-l监听,-n数字形式,-p显示进程名。这对于排查“端口被占用”问题非常有用。
8.2 配置静态IP地址(以Rocky Linux为例)
在虚拟机或服务器环境中,我们通常希望IP地址固定不变,而不是由DHCP动态分配。配置静态IP需要编辑网络配置文件。
注意:不同发行版的网络配置文件位置和工具不同。Ubuntu 18.04+ 使用
netplan, CentOS/RHEL/Rocky 7+ 使用NetworkManager或直接编辑/etc/sysconfig/network-scripts/下的文件。以下以Rocky Linux 9为例,使用nmcli命令行工具(NetworkManager)配置。
查看当前连接名:
nmcli connection show找到你正在使用的连接,通常是以太网连接,名字可能是
ens33、eth0或Wired connection 1等。修改连接为手动配置并设置静态IP:假设连接名为
ens33,想设置IP为192.168.1.100/24,网关为192.168.1.1,DNS为8.8.8.8和8.8.4.4。sudo nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4"ipv4.method manual:设置为手动(静态)。ipv4.addresses:IP地址和子网掩码(用CIDR表示法,/24对应255.255.255.0)。ipv4.gateway:默认网关。ipv4.dns:DNS服务器,多个用空格分隔。
重启网络连接使配置生效:
sudo nmcli connection down ens33 && sudo nmcli connection up ens33或者使用
sudo systemctl restart NetworkManager。验证:使用
ip addr show ens33查看IP是否已变更为192.168.1.100,并用ping 192.168.1.1测试能否ping通网关。
8.3 使用SSH进行远程连接
SSH是远程安全连接Linux服务器的标准协议。你几乎不可能每次都跑到机房去操作服务器,SSH就是你的“远程桌面”。
在Linux服务器上安装SSH服务端(Ubuntu为例):
sudo apt install openssh-server sudo systemctl enable --now ssh # 启用并立即启动服务从客户端连接:
- Linux/macOS客户端:直接在终端使用
ssh命令。
首次连接时会提示确认主机密钥,输入ssh username@192.168.1.100yes,然后输入服务器上对应用户的密码即可。 - Windows客户端:推荐使用PuTTY或Windows Terminal(内置了OpenSSH客户端,Win10 1809+ 和 Win11 通常已自带)。命令与上述相同。
- Linux/macOS客户端:直接在终端使用
更安全的方式:使用密钥对认证密码认证有被暴力破解的风险。更安全的方法是使用公钥-私钥对。
- 在本地客户端生成密钥对(如果还没有):
一路回车,会在ssh-keygen -t ed25519 -C "your_email@example.com"~/.ssh/目录下生成id_ed25519(私钥,绝不可泄露)和id_ed25519.pub(公钥)。 - 将公钥上传到服务器:
输入一次密码后,你的公钥就会被添加到服务器的ssh-copy-id username@192.168.1.100~/.ssh/authorized_keys文件中。 - 此后连接:再次使用
ssh username@192.168.1.100时,将不再需要输入密码,直接通过密钥认证,既安全又方便。
- 在本地客户端生成密钥对(如果还没有):
实操心得:关于防火墙如果无法SSH连接,除了检查网络和SSH服务状态 (sudo systemctl status ssh),很可能是防火墙阻止了22端口(SSH默认端口)。在Rocky/CentOS上,可以使用sudo firewall-cmd --add-service=ssh --permanent && sudo firewall-cmd --reload来放行。在Ubuntu上,如果使用ufw,则用sudo ufw allow ssh。
