【Ubuntu】新服务器配置完全指南
新服务器配置
文章目录
- 新服务器配置
- 安装 fish
- 安装 NVIDIA 驱动
- 安装 Miniconda
- 初始化conda
- 配置 conda 国内源
- 配置pip国内源
- conda 创建/删除环境
- 安装 PyTorch
- 使用 tmux
- 常用命令(命令行)
- 快捷键速览(默认前缀 Ctrl+b)
- 服务器间文件传输
- 方法一:`scp`(一次性、简单)
- 方法二:`rsync`(增量/断点续传/大目录首选)
- SSH 基本配置(客户端免密登录)
- 1) A机器连接B
- 2) Windows客户端密钥登录vscode(免密)
- 1. 在Windows上生成密钥
- 2. 把公钥内容复制到服务器的 authorized_keys
安装 fish
sudo apt update
sudo apt -y install fish
fish --version# 设为默认 shell(可选)
which fish # 一般是 /usr/bin/fish
chsh -s /usr/bin/fish # 重新登录生效
MobaXterm 提示(否则 Remote monitoring 可能失效)
A. 保持 bash 为默认 shell,在 MobaXterm 的会话设置里把“Remote command / Execute command”设为:fish -l。
B. 或保持 bash 为默认,自动进入 fish:在~/.bashrc里追加(仅交互会话执行):if [[ $- == *i* ]] && command -v fish >/dev/null; then exec fish -l; fi这样
scp/rsync/非交互不会被影响。
C. 简单在~/.bashrc里追加fish
安装 NVIDIA 驱动
# 查看推荐版本
ubuntu-drivers devices# 以开源内核模块版为例
sudo apt install nvidia-driver-580-open
sudo reboot# 验证
nvidia-smi
安装 Miniconda
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
初始化conda
source ~/miniconda3/bin/activate
conda init --all
fish直接运行上面的命令会报错,切回bash再运行
配置 conda 国内源
最新内容请看清华 TUNA
nano ~/.condarc
粘贴:
channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
验证:
conda info
配置pip国内源
最新内容请看清华源
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
conda 创建/删除环境
# 创建
conda create -n xxx python=3.12 -y
conda activate xxx# 删除
conda remove -n xxx --all -y
安装 PyTorch
到官网选择对应 CUDA 版本;下面以 CUDA 13.0 的 pip 示例为例:
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu130
验证(保存为 check_torch.py 运行):
import torch, torch.backends.cudnn as cudnn
print("="*50, "\nPyTorch 环境检测\n", "="*50, sep="")
print("PyTorch版本:", torch.__version__)
print("CUDA可用:", torch.cuda.is_available())
if torch.cuda.is_available():print("CUDA版本:", torch.version.cuda)print("cuDNN版本:", cudnn.version())print("GPU数量:", torch.cuda.device_count())for i in range(torch.cuda.device_count()):print(f"GPU {i}: {torch.cuda.get_device_name(i)}")x = torch.randn(3,3, device="cuda"); y = torch.randn(3,3, device="cuda")z = x + yprint("GPU计算测试: 成功")
else:print("CUDA不可用,使用CPU模式")
print("="*50)
使用 tmux
常用命令(命令行)
# 会话(Session)
tmux # 新建会话(匿名)
tmux new -s work # 以名字新建
tmux ls # 列出会话
tmux attach -t work # 附着到会话
tmux rename-session -t work work2025 # 重命名会话
tmux switch -t work2025 # 在已连接内切换会话
tmux kill-session -t work2025 # 关闭会话# 窗口(Window)
tmux new-window -n dev # 新建窗口并命名
tmux rename-window -t 1 log # 重命名窗口
tmux kill-window -t 2 # 关闭窗口# 面板(Pane)
tmux split-window -h # 左右分屏
tmux split-window -v # 上下分屏
tmux select-pane -L # 光标切换到左侧面板(L/R/U/D)
tmux resize-pane -L 10 # 调整面板大小(向左扩 10)
tmux kill-pane # 关闭当前面板# 其他
tmux source-file ~/.tmux.conf # 重新加载配置
tmux set -g mouse on # 临时开启鼠标(当前会话)
tmux capture-pane -S -3000 -p > out.txt # 导出滚动缓冲到文件
快捷键速览(默认前缀 Ctrl+b)
会话 Sessiond 分离当前会话(detach)s 会话选择器$ 重命名会话(rename-session)窗口 Windowc 新建窗口(create-window), 重命名窗口(rename-window)& 关闭窗口(kill-window)n / p 下一个 / 上一个窗口l 返回上一次窗口w 窗口列表面板 Pane% 左右分屏(split -h)" 上下分屏(split -v)方向键 在面板间切换o 在面板间轮换焦点x 关闭面板(kill-pane)z 面板放大/还原(zoom)Alt+方向 调整面板大小(多数终端可用;或用 :resize-pane -L/R/U/D 5)编辑/复制 & 其他: 命令模式(等同输入 tmux 命令)[ 进入复制模式(上下滚动、搜索)] 粘贴复制缓冲
建议的
~/.tmux.conf片段(可选)
set -g mouse on
set -g history-limit 200000
set -g mode-keys vi
bind r source-file ~/.tmux.conf \; display-message "Reloaded ~/.tmux.conf"
服务器间文件传输
方法一:scp(一次性、简单)
# A -> B(推送文件/目录)
scp -P 22 /path/file user@B:/dest/
scp -P 22 -r /path/dir user@B:/dest/# B -> A(拉取)
scp -P 22 user@B:/path/file /dest/# 常用参数:-P 端口;-r 目录递归;-C 压缩;-i 指定私钥
scp -C -i ~/.ssh/id_ed25519 -P 2222 big.tar user@B:/data/
方法二:rsync(增量/断点续传/大目录首选)
# A -> B(保留权限/时间戳,显示进度,压缩)
rsync -avzP /path/file user@B:/dest/# 同步目录(只传变化部分)
rsync -avzP /data/ user@B:/data/# 断点续传 & 大文件更稳
rsync -avzP --partial --inplace big.img user@B:/data/# 过滤/限速/自定义端口
rsync -avzP --exclude "*.tmp" --bwlimit=20m -e "ssh -p 2222" /src/ user@B:/dst/# 远端→远端(本机发起,走 SSH)
rsync -avz -e ssh user@A:/src/ user@B:/dst/
提醒:
rsync -a为归档模式(权限、时间、软链等);需要目标与源完全一致时加--delete(谨慎)。
SSH 基本配置(客户端免密登录)
场景:windows电脑通过vscode访问服务器不用每次输入密码,AB服务器之间访问
原理:把A的公钥放到B的authorized_keys里
1) A机器连接B
# 在 A 上生成用户密钥(推荐 ed25519)
ssh-keygen -t ed25519 -C "yourname@A"# 把公钥拷到 B 上指定账户(会自动追加到 B: ~/.ssh/authorized_keys)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@B
# 如非 22 端口: ssh-copy-id -i ~/.ssh/id_ed25519.pub "-p 2222 user@B"# 测试免密登录
ssh user@B
2) Windows客户端密钥登录vscode(免密)
1. 在Windows上生成密钥
# 打开 PowerShell
ssh-keygen -t ed25519 -C "yourname@windows"
# 一路回车,默认保存到:C:\Users\<你>\.ssh\id_ed25519(.pub)
