ARTICLE · 1290039
想玩 AI,先别被 Linux 吓跑:从企鹅到命令行,一篇入门
周总租了一台带显卡的服务器,准备让小零跑个 AI 模型。
服务商发来一封邮件:服务器地址、用户名、登录方式,一应俱全。
周总看了半天,问老王:“桌面呢?”
“这台没装图形桌面。”
“那我怎么点开始菜单?”
“不用点。你可以远程连上去,输入命令。”
周总又问:“一定得用 Linux?”
“也不一定。Windows 和 Mac 都能做不少 AI 工作,只是很多服务器环境、部署教程和工具链都围绕 Linux 准备。”
“行,那你把它教会小零。”
小零举起手:“周总,我也是运行在这台服务器上的。”
办公室里安静了一会儿。
今天这篇,就从一台刚拿到手的 Linux 服务器开始。不要求你背完所有命令,但希望你看懂:系统是什么、命令往哪里输、文件和权限怎么管、如何远程登录,以及复制网上的安装命令之前先看什么。
阅读约定:命令示例面向常见的 Linux 发行版,通常在 Bash 命令行中使用。不同发行版、系统版本和管理员配置会有差异。本文的安装、升级和 SSH 命令依据官方文档整理,没有在你的服务器上执行;请先在自己的测试环境核对。文中路径、IP、用户名都是示例。
一、先认识 Linux:企鹅从哪儿来的?
1991 年,芬兰学生 Linus Torvalds 开始开发 Linux 内核。它后来与 GNU 项目提供的工具、编译器、库等软件组合,逐渐形成大家熟悉的完整系统。很多人把这样的系统简称“Linux”,也有人称它为“GNU/Linux”。
Linux 的吉祥物是一只企鹅,叫 Tux。不过,企鹅负责可爱,真正负责跟硬件打交道的是内核。

内核是操作系统的核心部分:它管理进程、内存、设备和文件系统,也为应用提供访问系统资源的接口。你打开浏览器、运行程序、往硬盘写文件,背后都离不开内核参与。
但只有内核,还不是一套适合日常使用的完整系统。你通常还需要命令行工具、软件包、系统服务,有时还需要图形桌面。这就引出了下面两个容易混淆的版本。
二、内核版本和发行版:一个是核心,一个是一整套应用层框架
在服务器里,你可能会看到两个不同的版本:
uname -rcat /etc/os-release
第一条查看当前运行的内核版本;第二条通常能看到发行版及其版本。/etc/os-release 在主流发行版中常见,但特殊精简环境可能不同。
比如,你装的是 Ubuntu,发行版版本用来标识这一套 Ubuntu 系统;而 uname -r 显示的是当前启动的 Linux 内核版本。同一个发行版在更新后可以换用不同内核;不同发行版也可能使用相同的上游内核系列,并各自加入补丁。
发行版可以理解为:Linux 内核加上一套经过选择、整合和维护的软件、安装方式与更新机制。它不是简单地给内核换了个桌面皮肤。
常见选择有:
| 家族或发行版 | 新手先认识什么 | 常见包管理工具 |
|---|---|---|
| Ubuntu、Debian | 文档和教程较多;Ubuntu 基于 Debian | apt |
| Fedora | 社区发行版,新技术更新较积极 | dnf |
| RHEL、Rocky Linux、AlmaLinux | 常见于企业和服务器环境 | dnf;部分旧系统使用 yum |
| openSUSE、SUSE Linux Enterprise | 另一套常见的发行版及工具链 | zypper |
| Arch Linux | 更新节奏与管理方式不同,需要更多自行配置 | pacman |
这些工具都负责管理软件包,但命令、软件源和默认配置并不完全一样。看到教程第一步写着 apt install,先别急着粘贴:先确认自己用的是哪一套系统。
三、Linux、macOS 和 Windows 是什么关系?
它们都是操作系统,但不是同一个系统换了三套主题。
| 比较项 | Linux 发行版 | macOS | Windows |
|---|---|---|---|
| 内核 | Linux 内核 | Apple 的 XNU 内核 | Windows NT 系列内核 |
| 与 Unix 的关系 | 通常被称为类 Unix 系统 | 有 Unix 血缘,并有经过认证的版本 | 有自己的系统架构;也能运行类 Unix 环境 |
| 常见操作 | 图形桌面与命令行均可,服务器常用命令行 | 图形界面为主,也有终端 | 图形界面为主,也有 PowerShell 等命令行 |
| 软件兼容 | 取决于发行版、架构与软件支持 | 取决于 macOS 版本与芯片架构 | 取决于 Windows 版本与芯片架构 |
Mac 的终端里有不少和 Linux 相似的命令,比如 cd、ls。但 macOS 不是 Linux:内核不同,同名工具的参数、默认行为也可能不同。
Windows 原生支持的命令行叫做 DOS,命令和 linux不太一样,比如 dir 类似 linux 中的 ls,ipconfig 类似 linux 中的 ifconfig。
Windows 用户也可以通过 WSL(适用于 Linux 的 Windows 子系统)运行 Linux 环境;macOS 用户可以通过虚拟机或远程服务器接触 Linux。它们能帮你熟悉命令,但显卡、驱动和硬件支持仍要按实际机器检查。
四、为什么 AI 圈经常见到 Linux?
不是因为模型看见企鹅就跑得快,而是它常常出现在模型工作的那套环境里。
第一,服务器和云平台生态成熟。一台机器可以远程管理、运行后台任务,也方便用脚本重复部署。很多团队已经把训练、推理和监控放在这样的环境中。
第二,工具与资料积累多。深度学习框架、容器、GPU 驱动和 NVIDIA 的 CUDA 工具链,在 Linux 上都有相应支持。CUDA 是 NVIDIA 的并行计算平台;实际安装时,显卡、驱动、工具包、系统版本和硬件架构都要匹配,不能只看一条 pip install 就宣布万事大吉。
第三,开源与定制空间大。团队可以根据服务器需要选择发行版、软件包和运行方式;工具链也方便自动化。不过开源不代表所有软件和商业服务都免费。
Windows、macOS 同样能开发和运行 AI 应用。具体能跑什么、用哪种加速方式,要看硬件与软件支持。选择系统的标准是任务、环境和兼容性,而不是谁先发明了一只企鹅。
五、终端到底是什么?先学会看提示符
终端提供输入和显示的窗口;Shell 是读取并解释命令的程序,Bash 是常见的一种 Shell。
你在本机打开终端,输入命令是在本机执行;通过 SSH 远程登录后,命令通常是在远程那台机器执行。窗口看着差不多,执行位置可能差几百公里。
下面从不需要管理员权限的基本操作开始。带 # 的行是解释,不是要求你输入的内容。文件名和路径先用自己的测试文件替换。
六、先解决三个问题:我是谁?在哪?有什么?
whoami # 当前登录用户名pwd # 当前所在目录的完整路径ls# 列出当前目录中的项目ls-lah# 详细列出,包括隐藏项目;大小尽量用易读单位显示
Linux 的路径从 / 开始;自己的个人目录常用 ~ 表示,当前目录是 .,上一级目录是 ..。
cd ~ # 回到自己的个人目录cd /tmp # 进入 /tmpcd .. # 返回上一级目录cd-# 返回上一次所在目录
路径区分大小写:Data 和 data 可以是两个不同的目录。文件名里有空格时,用引号包住,例如 cd "我的文件"。按 Tab 往往可以补全路径,按方向键上键可查看之前输入的命令;行为依 Shell 设置而定。
七、新建、查看、复制和移动文件
先在自己的个人目录里创建一个练习目录,避免一上来就对真正的数据动手:
mkdir-p ~/linux-practicecd ~/linux-practiceprintf 'hello linux\n' > notes.txtcat notes.txt
mkdir -p 创建目录;printf 输出文字,> 把输出写进文件。如果目标文件已经存在,> 会覆盖内容,所以例子请在新建的练习目录里操作。想追加内容可以用 >>,但也要先确认文件名。
cp notes.txt notes-copy.txt # 复制文件mv notes-copy.txt renamed.txt # 移动或改名mkdir archive # 创建目录mv renamed.txt archive/ # 移入目录ls-lah archive/ # 看看结果
复制文件夹常用 cp -r 源目录 目标位置;移动和改名都是 mv,区别取决于目标位置。目标已有同名文件时可能覆盖,操作前先检查;可以查看本机 cp、mv 的帮助,按需使用交互确认选项。
删除文件用 rm 文件名,删除目录可能用到 rm -r。终端删除通常不会进入桌面废纸篓。尤其不要把带管理员权限的递归删除命令当作“万能清理”。不确定路径,就先 pwd、ls 看清楚,重要数据先备份。
八、文件太长?别用眼睛一行行数
cat notes.txt # 输出短文件less notes.txt # 分页查看;按 q 退出head -n20 notes.txt # 看前 20 行tail -n20 notes.txt # 看后 20 行grep-n'hello' notes.txt # 找包含 hello 的行,显示行号find . -name'*.txt'# 从当前目录向下查找名称匹配的文件
grep 是按内容搜索,find 主要按路径和文件属性查找。'*.txt' 加引号,是为了让匹配规则交给 find,避免先被 Shell 展开。
看日志时也会用到 tail -f 日志文件 持续观察新内容;按 Ctrl + C 停止查看。Ctrl + C 只是向当前前台程序发中断请求,不是“关闭服务器”。
怎么在终端里编辑文件?
查看文件会了,但总不能每次改一句话都重新创建。遇到没有图形桌面的服务器,可以直接在终端里打开文本编辑器。下面继续用自己的练习目录,不碰服务器的配置文件:
cd ~/linux-practice如果这个目录还没有,先执行 mkdir -p ~/linux-practice。下面的 notes.txt 是练习文件;文件不存在时,编辑器一般会打开一个新缓冲区,保存后才创建文件。
方式一:Nano,打开就能输入
nano notes.txt进入后直接用键盘输入、修改文字,方向键移动光标。屏幕下方通常有快捷键提示,里面的 ^ 表示 Ctrl。记住两步就能完成最常见的操作:
保存:按
Ctrl + O(字母 O),确认屏幕下方显示的文件名,再按回车。退出:按
Ctrl + X。如果还有没保存的修改,Nano 会询问是否保存,按照界面提示选择。
保存之后,可以用 cat notes.txt 看看内容。要退出时如果发现 Ctrl + C 没把编辑器关掉,别着急,它也不是 Nano 的退出键。
方式二:Vim,先分清“输入”和“指挥”
vim notes.txtVim 打开后通常处于普通模式,这时按字母键可能是在执行操作,不是往文件里打字。先记住这套最小流程:
按
i,进入插入模式,然后输入或修改文字。输入完按
Esc,回到普通模式。输入
:wq,再按回车,保存并退出。
如果只想保存但继续编辑,按 Esc 后输入 :w 并回车。如果确定不要本次未保存的修改,按 Esc 后输入 :q! 并回车,可以放弃修改退出;这些修改无法靠退出操作恢复。没有修改时,也可以用 :q 退出。
你可能听过“进 Vim 容易,退出 Vim 难”。其实主要是第一次进去时,它没有告诉你:你以为自己在打字,它以为你在给它下命令。
Nano 和 Vim 不一定都预装。输入 nano --version 或 vim --version 可以检查;没有的话,先确认发行版,再参考下文的软件安装方法。真实配置文件可能需要相应权限,修改前先了解用途并备份,不要为了消除权限报错就随手加 sudo。
九、软件怎么装?先看发行版,再选命令
Linux 发行版通常通过软件仓库提供软件包,包管理工具负责查询、下载、安装以及处理依赖。仓库来源和权限由系统配置决定;不要为了装一个软件,随便执行来历不明的一整行命令。
下面以 curl 这个常见的网络请求工具为例。安装和升级会修改系统;生产服务器先确认维护窗口、仓库、备份和团队流程。sudo 会以授权方式执行单条命令,通常需要当前用户有相应权限。
Ubuntu / Debian:apt
sudo apt update # 更新软件包索引,不等于安装更新apt list --upgradable# 查看可升级的软件包sudo apt install curl# 安装 curlsudo apt upgrade # 升级可升级的软件包;先审阅提示
apt update 刷新软件列表;真正安装升级的是后续升级命令。升级内核或关键服务后,是否需要重启要看实际系统和变更内容。
Fedora / RHEL 及常见兼容发行版:dnf
dnf check-update # 检查可用更新;有更新时可能返回特殊状态码sudo dnf install curl# 安装 curlsudo dnf upgrade # 更新软件包;先审阅提示
Fedora、Rocky Linux、AlmaLinux 和 RHEL 的仓库与软件版本各不相同,部分软件可能需要额外仓库或订阅。旧版本教程可能使用 yum,应以系统实际版本为准。
openSUSE / SUSE:zypper
sudo zypper refresh # 刷新仓库信息sudo zypper install curl# 安装 curlsudo zypper update # 安装适用的软件更新
Arch Linux:pacman
sudo pacman -Syu# 同步软件数据库并进行完整系统升级sudo pacman -Scurl# 安装 curl
Arch 通常采用滚动更新;-Syu 是整套系统升级,不只是刷新列表。操作前看官方公告和升级提示,不要套用其他发行版的习惯。
四套命令看着像亲戚,但不是一个身份证。最稳妥的顺序是:cat /etc/os-release → 看发行版文档 → 确认仓库 → 再安装。
十、权限:为什么我连自己的文件都动不了?
执行 ls -l 时,文件名前可能出现类似:
-rw-r----- 1 alice team 120 notes.txt这是一条示意:最前面的 - 表示普通文件;后面九位分成三组,依次是文件所有者、所属组、其他用户的权限。
r 是读取,w 是写入,x 是执行;- 表示该位置没有对应权限。上面的 rw- / r-- / --- 表示所有者可读写,所属组可读,其他用户没有这些权限。目录中的 x 含义更接近“允许进入和访问其中项目”,不等同于执行目录。
chmod u+x script.sh # 给文件所有者增加执行权限chmod640 notes.txt # 所有者读写,组可读,其他用户无权限
数字是每组权限相加:读 4、写 2、执行 1。所以 640 对应 rw- r-- ---。这只是例子;实际应按文件用途与团队需求设置,密钥文件尤其要限制访问。
chown 用来调整所有者或所属组,通常需要相应管理员权限;别在不理解目标目录归属时递归修改整个系统。sudo 不是修复一切的魔法前缀:它能放大正确操作,也能让打错的路径获得更大的破坏力。
十一、SSH:坐在自己的电脑前,操作另一台 Linux
SSH 是加密的远程登录协议。你需要区分两端:客户端是你正在使用的电脑,服务端是要连接的 Linux 服务器。
1. 在服务器上安装并启动服务
下面适用于使用 systemd 的常见安装;容器、WSL 或精简系统可能没有 systemctl,要查对应环境的文档。确保你有服务器的控制台或其他可用登录方式,避免修改远程配置后把自己锁在门外。
Ubuntu / Debian 常见做法:
sudo apt updatesudo apt install openssh-serversudo systemctl enable --nowsshsudo systemctl status ssh
Fedora / RHEL 家族常见做法:
sudo dnf install openssh-serversudo systemctl enable --now sshdsudo systemctl status sshd
注意服务名可能不同:Ubuntu 常见 ssh,另一组系统常见 sshd;以实际发行版为准。enable --now 会设置开机启动并立即启动服务;status 用来查看状态。服务启动成功,也不代表外部网络一定能连上。
2. 检查网络和防火墙
SSH 默认使用 TCP 22 端口,实际端口可能被管理员修改。你需要确认服务器监听、系统防火墙、云平台安全组以及 IP 地址都允许你预期的来源访问。云服务器仅开放系统防火墙还不够,安全组也可能挡住。
不要为了“先连上再说”关闭整个防火墙。具体放行方式依系统、防火墙工具和网络环境而异;先确认现有规则、维护入口和授权范围,再按服务商文档设置。对公网服务,优先限制来源并使用密钥认证。
3. 在自己的电脑上连接
在客户端终端中,把示例用户名和地址换成服务商给你的值:
ssh alice@192.0.2.10# 如果 SSH 使用其他端口:ssh-p2222 alice@192.0.2.10
这里的 192.0.2.10 是文档示例地址,不是可直接登录的服务器。第一次连接时,客户端会显示服务器的主机密钥指纹;应通过可信渠道向管理员或服务商核对,再决定是否接受。输入密码时屏幕通常不显示字符,这是正常现象。
日常建议使用 SSH 密钥。在客户端的终端里,如果还没有可用密钥,可以先生成:
ssh-keygen -t ed25519 -C"my-laptop"按提示选择保存位置和口令;已有同名密钥时不要覆盖,可以输入新的文件名。默认情况下,公钥文件名以 .pub 结尾,私钥留在客户端,不要发送给别人。
如果客户端有 ssh-copy-id、服务器允许当前账号以密码等方式登录,可以用下面的命令把公钥加入该账号的 authorized_keys(使用了非默认密钥路径时,先通过 -i 指定相应的 .pub 文件):
ssh-copy-id alice@192.0.2.10也可以按服务商文档在控制台配置公钥。确认新的密钥登录成功、保留原有会话或控制台后,再考虑按环境调整密码登录等设置。不要把私钥发到群里,也不要把登录凭据写进公众号截图。
退出远程会话用 exit。退出后想再跑命令,先看看提示符,确认自己已经回到本机,还是仍在服务器里。
十二、服务器忙不忙?这几条先认识
df -h# 各文件系统容量与剩余空间du -sh ~/linux-practice # 查看这个练习目录的大致占用free -h# 查看内存和交换空间;Linux 常用ps aux # 列出进程top# 动态查看进程;按 q 退出
有 NVIDIA GPU 且驱动与工具可用时,可以尝试 nvidia-smi,查看显卡和进程信息。但它依赖硬件与驱动,部分设备的某些字段也可能不支持,不能把没有显示的值自动当成零。
df 看文件系统整体,du 看指定目录估算占用,两者统计口径不同,不必强求数字一模一样。看到服务器磁盘快满了,先找清楚谁在占空间;不要第一反应就是给不认识的目录执行递归删除。
十三、遇到不认识的命令,先问系统
man ls# 查看手册;按 q 退出ls--help# 很多 GNU 工具支持 --helpcommand -v python3 # 查看命令是否能找到及其位置
不是所有程序都支持 --help,不同实现的参数也可能不同;在陌生命令上先查官方文档,尤其注意 sudo、覆盖、递归删除和联网下载执行这几类操作。
Linux 入门不需要第一天就背下一百个命令。先记住:我在哪台机器、当前在哪个目录、这条命令会读什么或改什么。这三个问题能回答,再按回车。
周总看完教程,又给老王发来消息:
“我已经学会看磁盘了。”
“挺好。”
“服务器还剩 90%。”
“那就可以继续部署。”
“但我刚才看的好像是我自己的 Mac。”
老王回了一个 hostname。
这次,大家先确认机器,再开始干活。















































































