夜雨聆风学习资料网

ARTICLE · 1290039

想玩 AI,先别被 Linux 吓跑:从企鹅到命令行,一篇入门

想玩 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 基于 Debianapt
Fedora社区发行版,新技术更新较积极dnf
RHEL、Rocky Linux、AlmaLinux常见于企业和服务器环境dnf;部分旧系统使用 yum
openSUSE、SUSE Linux Enterprise另一套常见的发行版及工具链zypper
Arch Linux更新节奏与管理方式不同,需要更多自行配置pacman

这些工具都负责管理软件包,但命令、软件源和默认配置并不完全一样。看到教程第一步写着 apt install,先别急着粘贴:先确认自己用的是哪一套系统。

三、Linux、macOS 和 Windows 是什么关系?

它们都是操作系统,但不是同一个系统换了三套主题。

比较项Linux 发行版macOSWindows
内核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。记住两步就能完成最常见的操作:

  1. 保存:按 Ctrl + O(字母 O),确认屏幕下方显示的文件名,再按回车。

  2. 退出:按 Ctrl + X。如果还有没保存的修改,Nano 会询问是否保存,按照界面提示选择。

保存之后,可以用 cat notes.txt 看看内容。要退出时如果发现 Ctrl + C 没把编辑器关掉,别着急,它也不是 Nano 的退出键。

方式二:Vim,先分清“输入”和“指挥”

vim notes.txt

Vim 打开后通常处于普通模式,这时按字母键可能是在执行操作,不是往文件里打字。先记住这套最小流程:

  1. 按 i,进入插入模式,然后输入或修改文字。

  2. 输入完按 Esc,回到普通模式。

  3. 输入 :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。

这次,大家先确认机器,再开始干活。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料