本文将综合介绍AI科研服务器的一些工具的使用,供大家入门。如果在学习过程中,遇到一些问题,可以问问GPT/Deepseek这类AI工具或Google。若文章有错误,欢迎提issue指正 :D
- 1. Linux 常用命令与基础知识 - Basic Linux Commands
- 2. Git 与 GitHub 使用简明指南 - Git & GitHub Guide
- 3. Anaconda/Miniconda 安装与配置 - Installation & Setup
- 4. Hugging Face 配置 - Hugging Face Setup
为便于说明,以下示例中使用了通用占位符,如 {username}、{dirname} 等,表示你需要根据自己的实际情况进行替换。例如,如果你的用户名是 mazipei,则应将 {username} 替换为 mazipei。
为提升可读性,我会用花括号 {} 标注需要替换的内容,请根据实际情况进行修改。
ssh {username}@{ip}
# example: ssh [email protected]
如果没有设置过钥匙,第一次登陆时通常会有:
❯ ssh [email protected]
no such identity: /Users/mazipei/.ssh/id_rsa: No such file or directory
[email protected]'s password:输入密码即可(linux在输入密码时不会显示)
(可选)服务器免密登陆
每次登录服务器都需要输入密码,比较麻烦。可以通过设置 SSH 密钥实现免密登录:
-
在本地生成 SSH 密钥对
ssh-keygen -t rsa -b 4096 -C {"[email protected]"} # example: ssh-keygen -t rsa -b 4096 -C [email protected]回车后系统会提示你保存路径,默认是:
/Users/{username}/.ssh/id_rsa可以直接回车使用默认路径,或者输入你自定义的路径。接着提示你设置密码,可以直接回车跳过。
生成成功后,会看到两份文件:
- /Users/{username}/.ssh/id_rsa:私钥(不要泄露)
- /Users/{username}/.ssh/id_rsa.pub:公钥(可以共享给服务器)
-
将公钥上传到服务器 运行以下命令,把公钥追加到服务器的
/Users/{username}/.ssh/authorized_keys文件中:ssh-copy-id {username}@{ip}如果你使用的是自定义密钥路径,可以加
-i参数:ssh-copy-id -i {your_path}/id_rsa.pub {username}@{ip} -
测试免密登录
ssh {username}@{ip}如果不再提示输入密码,则说明配置成功。
🧠 附加技巧:多服务器共享一个 SSH 密钥
如果你有多台服务器,其实无需为每台都生成不同的密钥。只要将同一个公钥添加到每台服务器的 ~/.ssh/authorized_keys 中,即可通过 同一个私钥实现免密登录多个服务器。
为方便管理和免密登录,可以在本地的 ~/.ssh/config 文件中添加如下配置:
# ~/.ssh/config
Host {alias1}
HostName {ip_address1}
User {username1}
IdentityFile {private_key_path}
Host {alias2}
HostName {ip_address2}
User {username2}
IdentityFile {private_key_path}例如:
Host 3090
HostName 10.10.10.10
User mazipei
IdentityFile ~/.ssh/id_rsa
Host 4090
HostName 10.10.10.11
User zipeima
IdentityFile ~/.ssh/id_rsa然后你就可以通过以下命令直接登录:
ssh 3090
ssh 4090
或者用 VS Code:
ssh.mov
这一部分建议大家可以跟着一起在终端敲一遍。
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看当前路径 | pwd |
显示当前所在的目录(print working directory) |
| 列出文件 | ls |
列出当前目录下的文件和文件夹 |
| 列出详细信息 | ls -l |
显示包含权限、大小、时间等信息的文件列表 |
| 切换目录 | cd {dirname/} |
进入某个目录,比如 cd data/ 👉 注意:这里的 dirname 是你服务器实际文件夹名字,不是固定写法 |
| 返回上级目录 | cd .. |
返回到当前目录的上一级目录(父目录) |
| 当前目录 | . |
表示当前目录,常用于路径组合或执行脚本,例如 ./run.sh |
| 上级目录 | .. |
表示当前目录的上一级,例如 ../data/ 表示父目录下的 data 文件夹 |
| 创建目录 | mkdir {new_folder/} |
创建一个文件夹,名字可以自己起 👉 例如: mkdir results |
| 删除文件 | rm {file.txt} |
删除文件(不可恢复) |
| 删除目录 | rm -r {folder/} |
递归删除目录及其内容 |
| 复制文件 | cp {a.txt} {b.txt} |
将 a.txt 复制为 b.txt |
| 移动/重命名 | mv {a.txt} {b.txt} |
改名或移动文件 |
✏️ 补充:Vim 文件编辑器(最基本用法)
在服务器中,经常需要快速编辑配置文件或脚本,推荐使用轻量级编辑器 vim。
vim {filename}
# 例如:vim run.sh进入 vim 后,你会看到文件内容,但不能直接输入内容。Vim 有三个常用模式:
| 模式 | 功能 | 如何进入 |
|---|---|---|
| 普通模式 | 浏览 / 删除 / 复制等 | 打开 vim 默认就是普通模式 |
| 插入模式 | 输入文本 | 按 i 进入插入模式 |
| 命令模式 | 保存、退出等命令操作 | 按 Esc 回到普通模式,再输入 : |
| 操作 | 命令 | 说明 |
|---|---|---|
| 进入插入模式 | i |
开始输入内容 |
| 退出插入模式 | Esc |
返回普通模式 |
| 保存并退出 | :wq + Enter |
写入文件并退出 |
| 强制退出 | :q! + Enter |
不保存修改直接退出( |
| 仅保存 | :w + Enter |
保存但不退出 |
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看显卡信息 | nvidia-smi或 nvitop |
查看 GPU 状态;强烈推荐使用 nvitop,下文将说明 nvitop的安装 |
| 查看CPU信息 | top或 htop |
实时查看CPU/内存/进程占用 |
| 查看硬盘空间 | df -h . |
查看各挂载点的磁盘使用 |
| 查看当前路径下空间占用 | du -sh * |
各文件/文件夹大小(简洁) |
Tab自动补全命令或文件名Ctrl + C强制终止当前运行的命令
一般来说,服务器上会有两个常见的工作目录:
- 用户主目录:即
~,对应路径通常为/home/{username}或/User/{username},主要用于存放个人配置文件(如.bashrc、.ssh/等)以及轻量级的数据或脚本。 - 数据目录:用于存放数据、代码或实验结果等大型文件。该目录结构在不同实验室的服务器上可能有所不同,建议向实验室同学或管理员确认具体路径。
本文以 HDD_DISK/users/mazipei 为例,将其作为数据目录,用于存放项目代码和实验数据等文件。
Git 是一个分布式版本控制工具,用于追踪代码历史、协作开发。简单来说,它可以:
- 记录你对文件做的每一次修改
- 回退到之前的某个状态
- 与别人一起协作开发(配合 GitHub 使用)
GitHub 是一个基于 Git 的远程代码托管平台。你可以:
- 把本地代码上传到 GitHub 上备份
- 与他人协作开发项目
- 克隆别人的开源项目到本地使用
| 操作 | 命令 | 说明 |
|---|---|---|
| 初始化仓库 | git init |
在当前目录创建一个 Git 仓库 |
| 克隆项目 | git clone {repo_url} |
下载远程仓库到本地 |
| 查看状态 | git status |
查看当前修改了哪些文件 |
| 添加文件到暂存区 | git add {filename} 或 git add . |
将修改加入“待提交”列表 |
| 提交修改 | git commit -m "提交说明" |
提交修改并写入说明 |
| 查看历史记录 | git log |
查看提交记录 |
| 推送到远程仓库 | git push |
把本地修改推送到远程仓库 |
| 拉取远程更新 | git pull |
下载并合并远程仓库的内容 |
这里建议搭配 VS Code 的 Git 可视化功能使用,上述大部分命令在图形界面中都可以轻松完成。
在开始使用 Git 和 GitHub 之前,我们先来配置 SSH 连接。这样可以避免每次 push 代码时都需要输入用户名和密码,既安全又省心。
ssh-keygen -t rsa -b 4096 -C "{[email protected]}"一路回车,生成 ~/.ssh/id_rsa 和 id_rsa.pub
- 登录 GitHub
- 点击右上角头像 →
Settings - 选择
SSH and GPG keys→New SSH key - 把本地的
id_rsa.pub内容复制进去:
cat 查看 id_rsa.pub:
cat ~/.ssh/id_rsa.pubssh -T [email protected]如果出现 Hi {username}! You've successfully authenticated, but GitHub does not provide shell access. 则说明连接成功。
完成 SSH 配置后,现在我们来创建并使用自己的 Git 仓库:
-
在Github上创建一个仓库
- 点击右上角 "➕" → New repository
- 填写仓库名(比如:
my-first-repo),可以选择 Public 或 Private - 勾选 "Initialize with README",这样仓库中会有一个初始文件README.md
-
克隆仓库到本地
- 点击 "Code" -> "SSH" -> 复制链接(注意:现在我们使用 SSH 链接而不是 HTTPS)
- 用VS Code连接服务器,在终端执行:
git clone {repo_url} # example: git clone [email protected]:xiao10ma/my-first-repo.git
-
修改文件并上传
- 修改文件,比如在README.md中添加一行内容
- 在左侧栏,源代码管理处,点击加号,添加文件到暂存区
- 写好提交信息(比如:
修改了README文件),点击"✓提交" - 点击 "同步更改" 按钮,将提交内容推送至 GitHub
- 此时,在GitHub上,可以看到文件被修改了
为了避免不必要的文件上传到 GitHub(如模型权重、日志文件等),建议你在项目根目录添加 .gitignore 文件,例如:
*.pyc
*.log
*.pt
__pycache__/
checkpoints/VS Code 的 GitLens 插件可以方便地查看文件的修改历史、比较差异等。
编辑 ~/.gitconfig :
vim ~/.gitconfig添加以下内容:
[url "https://bgithub.xyz/"]
insteadOf = https://github.com/
[url "[email protected]:"]
insteadOf = [email protected]:在服务器上使用 Anaconda(或更轻量的 Miniconda)可以方便地管理 Python 环境和依赖库。由于不同项目通常依赖不同版本的 Python、PyTorch、CUDA 等组件,使用 Conda 环境进行隔离是一种推荐的做法。
深度学习项目常常依赖较大的包(如 torch、transformers、diffusers 等),安装体积可能达到数 GB。为了避免占用主目录空间(尤其是 /home/{username} 容量较小的情况),建议将 Conda 安装至数据目录。
-
下载 Miniconda 安装脚本
可在官网下载对应版本或使用
wget命令:wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
-
运行安装脚本
bash Miniconda3-latest-Linux-x86_64.sh
安装过程中会提示输入安装路径,建议填写你自己的数据目录路径:
/HDD_DISK/users/{username}/miniconda3其余一律回车。安装完成后,
source ~/.bashrc -
测试 Conda 是否安装成功
conda --version
会输出类似下面的内容,表示 Conda 已正常安装并可用:
conda 24.3.0
由于服务器访问 PyPI 官方源速度较慢,可能导致安装 Python 包时超时或下载缓慢,建议配置国内镜像源以提升安装速度。
# 升级 pip
python -m pip install --upgrade pip
# 设置 pip 使用清华源
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple你也可以查看配置是否生效:
pip config list| 镜像源 | 地址 |
|---|---|
| 清华大学 | https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple |
| 中科大 | https://pypi.mirrors.ustc.edu.cn/simple |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple/ |
配置项目环境的方式通常取决于该项目的 README.md 文档说明,建议每次都先通读一遍再动手。
以 PVG 项目 为例,配置环境:
conda create -n pvg python=3.9 -y
conda activate pvg
pip install -r requirements.txt
...项目中常常会指定特定版本的 torch,而该版本只能搭配某些 CUDA 版本使用。如果你的服务器上 CUDA 版本不兼容,可能会安装失败或运行报错。
✅ 如何查找对应关系?
请前往 PyTorch 官网版本选择页,查找项目要求的 torch 版本所支持的 CUDA 版本。
例如,PVG 项目的 requirements.txt 中要求:
torch==2.0.1查阅官网可知,torch==2.0.1 支持:
- CUDA 11.7
- CUDA 11.8
使用以下命令查看当前默认 CUDA 版本:
nvcc -V示例输出:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Fri_Dec_17_18:16:03_PST_2021
Cuda compilation tools, release 11.6, V11.6.55
Build cuda_11.6.r11.6/compiler.30794723_0说明当前默认版本是 CUDA 11.6,不满足 torch==2.0.1 的最低要求。
ls /usr/local输出示例:
bin cuda cuda-10.1 cuda-11.6 cuda-11.8 cuda-12.1 cuda-12.2 cuda-12.6 cuda-12.8 etc games include lib man sbin share src zed编辑 ~/.bashrc,添加以下内容:
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH执行 source ~/.bashrc 使配置生效,验证切换是否成功:
nvcc -V应输出:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Sep_21_10:33:58_PDT_2022
Cuda compilation tools, release 11.8, V11.8.89
Build cuda_11.8.r11.8/compiler.31833905_0根据查到的版本信息,在终端中运行:
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118如果服务器没有你需要的 CUDA 版本(如 11.8),你也可以将其安装到数据目录中。
-
下载安装包
cd /HDD_DISK/users/mazipei mkdir cuda_install cd cuda_install wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
-
运行安装程序(无需 sudo)
chmod +x cuda_11.8.0_520.61.05_linux.run ./cuda_11.8.0_520.61.05_linux.run \ --toolkit \ --toolkitpath=/HDD_DISK/users/{username}/cuda-11.8 \ --defaultroot=/HDD_DISK/users/{username}/cuda-11.8命令说明:
--toolkit表示只安装CUDA工具包--toolkitpath指定安装路径--defaultroot指定默认根目录
安装界面选项说明:
- 取消勾选 [ ] Driver(无 sudo 权限安装不了驱动)
- 保留 [X] CUDA Toolkit 和 [X] Documentation
- 用方向键选中 Install → 回车开始安装
-
安装完成后:配置环境变量
编辑
~/.bashrc,添加以下内容:export PATH=/HDD_DISK/users/{username}/cuda-11.8/bin:$PATH export LD_LIBRARY_PATH=/HDD_DISK/users/{username}/cuda-11.8/lib64:$LD_LIBRARY_PATH export CUDA_HOME=/HDD_DISK/users/{username}/cuda-11.8
执行
source ~/.bashrc使配置生效。nvcc -V查看是否切换成功。
-
nvitop,方便查看GPU使用情况:
pip install nvitop
效果如下,可以实时查看GPU, CPU, 内存使用情况:
-
ExpOven,方便提醒实验进度:
具体安装见 ExpOven 的
README.md文件。
Hugging Face 是一个流行的模型与数据集共享平台,但由于服务器访问其官网速度较慢,默认的下载路径也可能占用主目录空间。因此建议进行以下配置。
-
设置下载缓存目录到数据盘 Hugging Face 默认将模型、数据集等缓存到 ~/.cache/huggingface,可能占用主目录空间较大。你可以将其重定向到数据目录:
export HF_HOME=/HDD_DISK/users/{username}/huggingface将这行添加到你的
~/.bashrc或~/.zshrc中,并执行:source ~/.bashrc
这样下载的模型和数据将会缓存在
/HDD_DISK/users/{username}/huggingface下,避免挤满系统盘。 -
设置国内镜像加速 如果你访问 Hugging Face 较慢,可以尝试配置国内镜像:
export HF_ENDPOINT=https://hf-mirror.com同样建议将其加入
~/.bashrc或~/.zshrc,以便永久生效。





