Linux 命令实战:AI 开发者必备的终端操作手册
上一篇搭好了 CentOS 虚拟机、配通了 FinalShell 远程连接------环境就绪,接下来要把命令行操练熟。这篇覆盖 Linux 目录结构、文件增删改查、VI 编辑器、tar 打包压缩等高频命令,全部围绕 AI 开发者的日常操作展开。
前言
上一篇我们把 VMware 虚拟机装好、CentOS 跑起来、FinalShell 连上了。但连上终端之后呢?面对一个黑底白字的命令行窗口,很多从 Windows 转过来的开发者会愣住------没有桌面图标,没有右键菜单,一切操作都要靠键盘敲命令。
这篇就解决这个问题:把 Linux 命令行里最常用的那几十个命令讲清楚------目录怎么跳、文件怎么创建和删除、内容怎么查看、VI 编辑器怎么用、压缩包怎么打。这些命令你每天都会用到,熟不熟练直接决定工作效率。
一、Linux 目录结构:一棵倒长的树
1 只有一个根,不像 Windows 有 C/D/E 盘
Windows 的文件系统是"多根"结构------C 盘一个根、D 盘一个根,各自独立。Linux 完全不同:整个系统只有一个根目录 /,所有文件、所有磁盘分区、所有外接设备,全部挂载在这棵树下。
bash
/ ← 根目录,一切从这里开始
├── bin/ ← 最常用的命令(ls、cp、mv 等)
├── boot/ ← 系统启动文件
├── dev/ ← 设备文件(硬盘、光驱、U 盘)
├── etc/ ← 系统配置文件(网络、用户、服务)
├── home/ ← 普通用户的家目录
│ └── zhangsan/ ← 用户 zhangsan 的个人空间
├── lib/ ← 系统共享库(类似 Windows 的 DLL)
├── mnt/ ← 临时挂载点(插 U 盘、挂光驱)
├── opt/ ← 第三方软件安装目录(如 MySQL)
├── proc/ ← 内核和进程信息(虚拟文件系统)
├── root/ ← root 用户的家目录
├── sbin/ ← 管理员专用命令
├── tmp/ ← 临时文件(重启后可能清空)
└── usr/ ← 用户软件目录(类似 Program Files)
两个最重要的目录记住就行:
/home/用户名:你的个人空间,代码、数据、模型文件放这里/etc:系统配置,改 IP、改环境变量、配服务都在这里
2 绝对路径 vs 相对路径
路径描述有两种方式:
| 方式 | 写法 | 含义 | 举例 |
|---|---|---|---|
| 绝对路径 | 以 / 开头 |
从根目录出发 | /home/zhangsan/models/bert |
| 相对路径 | 不以 / 开头 |
从当前目录出发 | models/bert(当前在 /home/zhangsan) |
两个特殊符号:
.代表当前目录..代表上一级目录
bash
cd ./data # 进当前目录下的 data 文件夹
cd ../models # 退回上一级,再进 models
cd ../../ # 退回两级
二、文件与目录操作:看和走
1 基础四命令:ls / cd / pwd / clear
这四个命令是你每天敲得最多的,没有之一:
bash
# ls:看当前目录下有什么
ls # 普通列表
ls -a # 显示隐藏文件(.开头的是隐藏文件)
ls -l # 详细信息(权限、大小、时间)------可简写为 ll
ls -lh # 人性化显示文件大小(KB/MB/GB)
# cd:切换目录
cd /home/zhangsan # 去指定目录(绝对路径)
cd models # 去当前目录下的 models(相对路径)
cd ~ # 回家目录(~ 可省略,直接 cd 回车也行)
cd - # 回到上一次所在的目录
# pwd:打印当前路径
pwd # 输出如 /home/zhangsan/projects
# clear:清屏
clear # 快捷键 Ctrl+L 效果一样
两个提效技巧:
Tab键自动补全文件名 / 目录名------敲一半按 Tab,省一半打字量history或上下箭头翻看历史命令------重复操作不用重新敲
2 帮助手册:--help 和 man
记不住参数很正常,Linux 自带说明书:
bash
ls --help # 简洁版帮助,列出常用参数
man ls # 详细版手册(manual),按 q 退出
--help 适合快速扫一眼,man 适合深入查某个参数的细节。遇到不认识的命令,先 --help,不行再 man。
三、文件与目录操作:增删改
1 mkdir 和 touch:创建目录和文件
bash
# mkdir:创建目录
mkdir projects # 创建一个目录
mkdir data models logs # 一次创建多个同级目录
mkdir -p a/b/c/d # 级联创建嵌套目录(-p = parents)
# touch:创建空文件
touch config.yaml # 创建一个文件
touch a.py b.py c.py # 一次创建多个文件
2 cp、mv、rm:复制、移动、删除
这三个命令名字就是英文单词的缩写,很好记:
bash
# cp(copy):复制------源文件还在
cp hello.py backup/hello.py # 复制文件到指定位置
cp -r models/ models_backup/ # 复制整个文件夹(-r = recursive)
# mv(move):移动 / 重命名------源文件消失
mv old_name.py new_name.py # 重命名:目标不存在就当改名
mv script.py /home/user/scripts/ # 移动:目标目录必须存在
# rm(remove):删除------不可逆,谨慎!
rm file.txt # 删除文件
rm -r folder/ # 删除文件夹(-r 递归)
rm -rf folder/ # 强制删除(-f 不提示确认)
rm -rf 是 Linux 世界最危险的命令之一,没有回收站,删了就没了。执行前一定确认路径。
四、文件查看:cat / more / head / tail
1 cat 和 more:看小文件 vs 看大文件
bash
# cat:一次显示全部内容,适合小文件
cat config.yaml # 打印全部内容
cat -n app.py # 带行号显示
# more:分页显示,适合大文件(比如日志)
more train.log # 空格翻下一页,b 翻上一页,q 退出
more -20 train.log # 每页只显示 20 行
2 head 和 tail:看头看尾
bash
# head:看文件前几行------默认 10 行
head app.py # 前 10 行
head -5 app.py # 前 5 行
# tail:看文件末尾几行------默认 10 行
tail app.py # 后 10 行
tail -f train.log # 实时追踪文件末尾(看日志神器)
tail -f 是 AI 开发者的高频操作------模型训练时用它实时看 loss 变化、推理服务启动时用它看日志报错。
五、echo 与重定向:输出不只是打印
bash
# echo:打印到终端
echo "hello world" # 输出到屏幕
# > :覆盖写入文件
echo "model: gpt-4o" > config.yaml # 把内容写进文件(覆盖旧内容)
# >> :追加写入文件
echo "model: claude-3" >> config.yaml # 追加到文件末尾
# 重定向的常见用法:快速写配置文件
echo '{"host": "0.0.0.0", "port": 8000}' > server_config.json
六、tar:打包与压缩
Linux 上最通用的归档格式是 .tar.gz,tar 命令参数记忆口诀:创建用 cvf,解压用 xvf,加 z 就是 gzip 压缩。
bash
# 普通打包(不压缩)
tar -cvf backup.tar /home/user/projects/ # 打包
# gzip 压缩打包(推荐)
tar -zcvf models.tar.gz /home/user/models/ # 压缩打包
tar -zxvf models.tar.gz -C /target/path/ # 解压到指定目录
# 参数含义:
# -c: create 创建
# -x: extract 解压
# -v: verbose 显示过程
# -f: file 指定文件名(必须放最后)
# -z: gzip 压缩
# -C: 指定解压目标目录
七、VI / VIM 编辑器:终端里的记事本
1 三种模式:这是理解 VIM 的关键
VIM 有三种模式,新手最容易懵的就是"怎么输入不了字"------答案是你还在命令模式。
| 模式 | 进入方式 | 作用 | 提示 |
|---|---|---|---|
| 命令模式 | 启动 VIM 就是,或按 ESC |
移动光标、复制粘贴、删除行 | 不能打字 |
| 插入模式 | 命令模式下按 i |
正常编辑文本 | 和记事本一样用 |
| 底线命令模式 | 命令模式下按 : |
保存、退出、查找替换 | 输入命令回车执行 |
记忆方法:打开文件 → 按 i 进入编辑 → 编辑完按 ESC → 输入 :wq 保存退出。
2 入门案例:创建并编辑一个 Python 文件
bash
# 在终端里直接创建并编辑文件
[root@localhost ~]# vim hello.py
# 按 i 进入插入模式,输入内容:
print('hello AI')
print('VIM is not that hard!')
# 按 ESC 回到命令模式
# 输入 :wq 保存并退出
:wq
常用底线命令速查:
| 命令 | 作用 |
|---|---|
:w |
保存(write) |
:q |
退出(quit) |
:wq |
保存并退出 |
:q! |
不保存强制退出 |
:wq! |
强制保存并退出(只读文件用) |
3 实战:用 VIM 修改固定 IP
虚拟机 DHCP 自动分配的 IP 可能每次重启都变,开发时很烦。用 VIM 把它改成静态 IP:
bash
vim /etc/sysconfig/network-scripts/ifcfg-ens33
需要改两处:
bash
# ① 把 dhcp 改成 static
BOOTPROTO="static"
# ② 文件末尾添加以下四行
IPADDR="192.168.88.3" # 固定 IP 地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.88.2" # 网关
DNS1="8.8.8.8" # DNS 服务器
改完保存退出,重启网络服务:
bash
systemctl restart network # 新版命令
# 或
service network restart # 旧版命令
# 验证 IP 是否生效
ifconfig
常见问题
Q1:ls -l 出来的那些 rwx 是什么?
那是 Linux 的文件权限。rwx 分别代表读(read)、写(write)、执行(execute),三组分别对应文件所有者、所属组、其他用户。chmod 命令可以改权限,后面会细讲。
Q2:cd 和 cd ~ 有什么区别?
cd 不带参数默认回家目录,和 cd ~ 效果一样。~ 是家目录的快捷符号。
Q3:VIM 里粘贴代码缩进全乱了怎么办?
在命令模式下输入 :set paste 进入粘贴模式,再按 i 粘贴,就不会自动缩进了。编辑完 :set nopaste 恢复。
Q4:tar -zcvf 的参数顺序能换吗?
-f 必须放在最后,因为它后面紧跟文件名。其他参数可以换顺序,比如 tar -cvzf 和 tar -zcvf 效果相同。
Q5:删错了文件怎么办?
Linux 命令行没有回收站,rm 删了就真没了。唯一的保险是提前备份,或者用 alias rm='rm -i' 让每次删除前都提示确认。 生产环境建议用 trash-cli 工具模拟回收站。
和 AI 大模型开发的关系
1. 服务器文件管理:模型权重、数据集、配置
AI 开发中经常需要管理大文件------模型权重动辄几个 GB,训练数据集几十 GB。以下命令是日常操作:
bash
# 查看磁盘空间(模型下载前必看)
df -h
# 查看某个目录占了多少空间
du -sh /home/user/models/
# 把训练好的模型打包发给同事
tar -zcvf llama-finetuned.tar.gz /home/user/models/llama-output/
# 在服务器上解压同事发来的数据集
tar -zxvf dataset.tar.gz -C /home/user/data/
2. 训练日志监控:tail -f 实时追踪
bash
# 训练脚本把日志写到文件
python train.py > train.log 2>&1 &
# 另一个终端窗口实时看 loss 变化
tail -f train.log | grep "loss"
# 只看最后 50 行
tail -50 train.log
3. 批量处理脚本:用 VIM 写 shell
AI 开发中经常需要写批量处理脚本,比如批量下载模型、批量预处理数据。VIM 是写 shell 脚本最直接的工具:
bash
vim batch_download.sh
# 按 i 进入编辑,写入:
#!/bin/bash
# 批量下载 HuggingFace 模型
models=("bert-base" "gpt2" "t5-small")
for model in "${models[@]}"; do
echo "Downloading $model..."
huggingface-cli download "$model" --local-dir ./models/"$model"
done
echo "All done!"
# :wq 保存退出
# 加执行权限
chmod +x batch_download.sh
# 运行
./batch_download.sh
4. 配置文件管理:快速修改服务参数
大模型推理服务(vLLM、Ollama 等)的配置通常以 YAML 或 JSON 文件形式存在。不用开 IDE,VIM 直接改:
bash
# 快速修改推理服务端口
vim server_config.yaml
# 在 VIM 中 /port 搜索到 port 字段
# 按 i 修改,:wq 保存
# 重启服务
systemctl restart vllm-service
小结
这篇把 Linux 命令行的核心操作串了一遍:目录结构(/ 根目录 + 关键目录的作用)、文件增删改查(ls/cd/mkdir/touch/cp/mv/rm)、文件查看(cat/more/head/tail -f)、重定向(>/>>)、打包压缩(tar -zcvf/-zxvf)、VIM 编辑器(i 编辑 / ESC 退出 / :wq 保存)。这些命令每天都会用到,熟练之后手指自己就会敲,不需要过脑子。
#Linux #Linux命令 #VIM #终端 #AI开发 #命令行 #服务器运维