Linux 常用指令整理为面试/实战版本,涵盖权限管理、文件操作、Git 版本控制、Conda 环境管理、Docker 容器化以及 SSH 远程连接,助你轻松搞定服务器开发全流程。
1. sudo(管理员权限)
Linux 默认普通用户权限受限,涉及系统级操作(如安装软件、修改配置)时需使用 sudo 提权。
1.1 sudo -i
- 使用场景:需要连续执行多条管理员命令,避免反复输入
sudo。 - 实际例子:
sudo -i# 提示符变为 root@server:~#,此时拥有最高权限apt install docker.io
- 注意事项:Root 权限极大,操作需极其谨慎,误删系统文件可能导致系统崩溃。
1.2 sudo apt update
- 作用:更新软件包索引列表(从远程仓库获取最新软件版本信息)。
- 使用场景:安装新软件前,或想查看有哪些软件可以升级时。
- 注意事项:这只是“刷新目录”,并不会真正下载或升级软件。
1.3 sudo apt upgrade
- 作用:根据更新后的索引,下载并安装所有可升级的软件包。
- 使用场景:系统维护,修复漏洞,升级内核或工具版本。
- 实际例子:
sudo apt update # 先更新索引sudo apt upgrade # 再执行升级
1.4 sudo apt install
- 使用场景:部署环境时安装 Git、Vim、Curl、Docker 等工具。
- 实际例子:
sudo apt install git # 安装 Gitsudo apt install python3 # 安装 Python3sudo apt install wget # 安装下载工具
2. ls(查看目录内容)
ls (list) 用于列出当前目录下的文件和文件夹。
2.1 ls
- 实际例子:
ls# 输出:data model test.py README.md
2.2 ls -a
- 使用场景:查看
.git 目录、.env 配置文件或 .bashrc。 - 注意事项:Linux 中以
. 开头的文件默认为隐藏文件。
2.3 ls -l
- 参数含义:
-l (long) 显示权限、所有者、大小、修改时间。 - 实际例子:
ls -l# 输出:-rwxr-xr-x 1 root root 1024 Jul 30 10:00 test.py
3. cd(切换目录)
cd (Change Directory) 用于在文件系统中导航。
3.1 cd ..
- 使用场景:层级跳转,例如从
/home/user/project 返回 /home/user。
3.2 cd ~
3.3 cd /
- 注意事项:
cd ~ 是回家目录,cd / 才是进系统根目录(包含 bin, etc, usr 等文件夹的地方)。
4. vi / vim(文本编辑器)
Linux 服务器通常无图形界面,vi 或 vim 是必备的命令行编辑器。
- 作用:编辑代码、配置文件(如
.conf, .py, .sh)。 - 编辑模式:按
i 进入,左下角显示 -- INSERT --,可输入代码。 - 底行模式:按
Esc 退出编辑模式,输入 : 执行命令。
5. rm(删除文件)
⚠️ 高危指令:删除后通常不可恢复,请务必确认路径。
5.1 rm 文件名
5.2 rm -r 目录名
5.3 rm -rf 目录名
- 注意事项:严禁执行
rm -rf /,这会清空整个系统!
6. mkdir(创建目录)
mkdir -p a/b/c:-p 参数用于递归创建多级嵌套目录(若父目录不存在则自动创建)。
7. git(版本控制工具)
AI 项目协作与代码管理的核心工具。
7.1 git clone
- 使用场景:获取团队代码或开源项目(如 Llama3, ChatGLM)。
- 实际例子:
git clone https://github.com/test/demo.git
7.2 git lfs pull
- 作用:拉取 Git LFS(大文件存储)管理的大文件。
- 使用场景:AI 项目中,模型权重(.bin, .pt)通常很大,普通 git 只下载指针,需此命令下载实体文件。
- 关联命令:
git lfs ls-files(检查大文件是否完整)。
8. conda(虚拟环境工具)
解决 Python 版本和依赖包冲突的神器。
8.1 conda create
- 实际例子:
conda create -n myenv python=3.10# 创建名为 myenv,Python 版本为 3.10 的环境
8.2 conda init
- 作用:初始化 Conda,使其在 Shell 中生效。
- 注意事项:通常安装完 Miniconda 后执行一次,需重启终端。
8.3 conda activate
- 实际例子:
conda activate myenv(提示符前会出现 (myenv))。
9. pip(Python 包管理器)
pip install torch:安装 PyTorch。pip install -r requirements.txt:根据依赖文件批量安装(项目部署必备)。
- 国内加速:建议使用清华源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名。
10. python(执行脚本)
- 注意事项:Linux 中建议用
python3 而非 python,后者可能指向已停止维护的 Python 2。
11. docker(容器化工具)
将应用、环境、依赖打包,实现“一次构建,到处运行”。
11.1 基础查看
docker ps -a:查看所有容器(含已停止)。docker images:查看本地镜像(类似安装包)。docker --version:查看版本,验证安装。
11.2 容器生命周期
docker run <镜像名>:创建并启动新容器。- 例子:
docker run alpine echo "Hello World"(下载 alpine 镜像并运行 echo 命令)。
docker start/stop <容器ID>:启动/停止指定容器。docker restart <容器ID>:重启容器。- 技巧:
docker restart $(docker ps -q) 可重启所有运行中的容器。
docker rm <容器ID>:删除容器(需先停止)。
11.3 docker-compose(多容器编排)
- 作用:通过
docker-compose.yml 文件管理多个服务(如 Web + DB + Redis)。 docker-compose up -d:后台启动所有服务。docker-compose down:停止并删除服务。docker-compose restart:重启所有服务。
12. ssh(远程连接与隧道)
12.1 SSH 登录
- 实际例子:
ssh -p 33736 root@region-45.autodl.pro# -p 指定端口(非默认22端口时必选)
12.2 SSH 隧道(端口转发)
- 作用:将远程服务器的内部端口映射到本地,用于访问 Web 服务(如 TensorBoard, Jupyter)。
- 实际例子:
ssh -CNg -L 6006:127.0.0.1:8501 root@region-45.autodl.pro -p 33736
-L:本地端口转发(本地6006 -> 远程8501)。
- 效果:本地浏览器访问
localhost:6006 即可看到远程服务器 8501 端口的服务。
AI 开发服务器常用流程总结
- 安装依赖:
pip install -r requirements.txt - 启动服务:
docker-compose up -d 或 python3 app.py - 查看状态:
docker ps 或 nvidia-smi