Linux 运维速查指南¶
速查手册, 持续更新 ~
1. 用户与权限管理¶
日常协作, 文件权限分配的核心指令:
- 添加新用户:
sudo useradd -m username- 带
-m会自动创建用户主目录/home/username
- 带
- 设置/修改密码:
sudo passwd username- 改
username的密码
- 改
- 赋予管理员权限:
sudo usermod -aG sudo username(Ubuntu/Debian)- 在不改变该用户原有用户组的前提下, 将他追加到
sudo这个管理员组里 usermod: user modify, 修改用户属性-a: append, 追加;-G: group, 指定附加组
- 在不改变该用户原有用户组的前提下, 将他追加到
- 修改某用户的主 Shell:
sudo usermod -s /usr/bin/fish usernameusername的主shell变成fish
- 修改文件/目录所有者:
sudo chown user:group filename - 修改文件权限:
chmod 755 filename- 拥有者: 读+写+执行
- 所属组: 读+执行
- 其他人: 读+执行
- 递归修改整个目录权限:
chmod -R 755 /path/to/dir-R: recursive, 递归所有子文件和子文件夹
2. 系统信息与硬件架构¶
接手新服务器时的"摸底":
- 查看系统内核与架构:
uname -a(详细) 或uname -m(仅架构) - 查看发行版信息:
cat /etc/os-release - 查看 CPU 详情:
lscpu - 实时系统资源监控:
htop/btop - 查看内存占用:
free -h
3. Tmux 会话管理¶
聚焦"Session Management":
- 新建并命名会话:
tmux new -s <session_name> - 离开当前会话 (挂起): 按
Ctrl+b松开后, 按d - 查看所有现有会话:
tmux ls - 重新接入会话:
tmux attach -t <session_name> - 彻底杀死会话:
tmux kill-session -t <session_name> - 中断tmux所有服务:
tmux kill-session
4. 服务进程与排查¶
以 mihomo 为例
(1) p系列
- 模糊查找进程:
pgrep clash: 搜索并仅显示PIDBash 1 2
bxhu@ubuntu ~/p/SaTrinity (starpike) [1]> pgrep clash 2383825ps aux | grep clash: 显示进程具体信息Bash 1 2 3 4 5
bxhu@ubuntu ~/p/SaTrinity (starpike)> ps aux | grep clash root 2383823 0.0 0.0 16900 7512 pts/0 S+ 07:35 0:00 sudo ./clash-linux -d /home/bxhu/.config/mihomo/ root 2383824 0.0 0.0 16900 2544 pts/2 Ss 07:35 0:00 sudo ./clash-linux -d /home/bxhu/.config/mihomo/ root 2383825 0.1 0.0 1277384 36132 pts/2 Sl+ 07:35 0:04 ./clash-linux -d /home/bxhu/.config/mihomo/ bxhu 2392455 0.0 0.0 6544 2304 pts/6 S+ 08:43 0:00 grep --color=auto clash
- 按PID精准杀死进程:
kill -9 <PID>(-9 强制执行) - 按名称批量杀死进程:
pkill mihomo
(2) systemctl系列
- 查看某服务运行状况:
sudo systemctl status <SERVICE> - 重启某服务:
sudo systemctl restart <SERVICE> - 手动开启/停止某服务:
sudo systemctl start/stop <SERVICE> - 设置/关闭开机自启某服务:
sudo systemctl enable/disable <SERVICE>
5. SSH、SCP 与编辑器远程连接¶
- 远程登录:
ssh username@ip_address- 指定端口:
ssh -p <PORT> username@ip_address
- 指定端口:
- 配置免密登录:
- 生成新密钥对, 并将pubkey传到服务器上
Bash 1 2 3 4
# 生成新密钥对: id_ed25519_myserver && id_ed25519_myserver.pub ssh-keygen -t ed25519 -C "xxx@xxx.com" -f ~/.ssh/id_ed25519_myserver # 将指定公钥传给server: -i 指定 pubkey ssh-copy-id -i ~/.ssh/id_ed25519_myserver.pub username@ip_address - SSH Config 配置文件:
vim ~/.ssh/configText Only 1 2 3 4 5
Host lab-server # 给服务器起的简称 HostName 192.168.1.100 # 服务器IP User bxhu # 登录用户名 Port 22 # 登陆端口 (默认22) IdentityFile ~/.ssh/id_ed25519_myserver # 绝对路径指向上述私钥 - 丝滑连接:
ssh lab-server
- 生成新密钥对, 并将pubkey传到服务器上
- SCP
- 上传文件到服务器:
scp /local/file username@ip_address:/remote/path/ - 下载文件到本地:
scp username@ip_address:/remote/file /local/path/
- 上传文件到服务器:
- VS Code Remote-SSH 快速连接:
- 在本地 VS Code 安装 Remote-SSH 插件
- 配置
~/.ssh/config文件填入 Host、HostName 和 User 即可
- SSH 排错神器:
ssh -v username@ip_address-v: verbose, 详细模式
- 本地端口转发:
ssh -L 8080:localhost:80 username@ip_address- 常用: server上跑了jupyter, 用本地电脑打开链接访问
- 服务器的 80 端口跑着一个内部管理网页; 你在自己电脑的浏览器里输入
http://localhost:8080, 就能直接访问到服务器内网的 80 端口
6. Docker 容器管理 (防爆盘终极版)¶
(1) 安装与免 sudo 配置
- 一键安装: 看
https://docs.docker.com/engine/install/ - 设置开机自启:
sudo systemctl enable --now docker - 免 sudo 提权:
sudo usermod -aG docker $USER(执行后输入newgrp docker生效)
(2) 日志限制配置 (防撑爆硬盘)
修改或创建 /etc/docker/daemon.json, 写入以下内容, 全局限制日志大小:
| JSON | |
|---|---|
1 2 3 4 5 6 7 | |
这样一个 node 最多只有 30M 写日志的空间, 不会撑爆
重启生效: sudo systemctl daemon-reload 然后 sudo systemctl restart docker
(3) 镜像与容器高频指令
- 查看本地镜像:
docker images - 查看运行状态:
docker ps(加-a看所有容器) - 进入容器内部:
docker exec -it <container_name> /bin/bash(或sh) - 查看最新日志:
docker logs -f --tail 100 <container_name>
(4) 空间清理
- 查看 Docker 磁盘占用:
docker system df - 彻底清理垃圾 (慎用):
docker system prune -a --volumes- 清理所有停止的容器、未使用的镜像和网络
7. Python 环境管理¶
- Conda:
- 创建环境:
conda create -n env_name python=3.10 - 激活环境:
conda activate env_name/conda deactivate - 查看环境:
conda env list - 安装包:
conda install <PKT>: 安装包 [默认频道]conda install -c conda-forge <PKT>: 从开源社区频道拉取
- 换"源":
- 添加:
Bash 1 2 3 4 5 6
# 换tuna源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ # 安装时显示channel conda config --set show_channel_urls yes - 检验:
Bash 1 2
# 查看当前配置了哪些源 conda config --show channels
- 添加:
- pip 换"源":
- 将清华源写入全局配置:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple - 临时换源,
-i指定:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple <PKT>
- 将清华源写入全局配置:
- 创建环境:
- uv (新一代极速包管理器, see this):
- 创建环境:
uv venv - Bash/Zsh 激活:
source .venv/bin/activate - Fish 激活:
source .venv/bin/activate.fish - 极速安装依赖:
uv pip install <package_name>
- 创建环境:
8. 网络与端口排查¶
- 查看端口被谁占用:
lsof -i :8080- lsof: list open file
- 查看所有监听中的端口:
sudo ss -tulnp- ss: socket statistics
- 查看服务器网卡与 IP:
ip a/ifconfig - traceroute + ping:
mtr <IP>- mtr: my traceroute
9. 磁盘空间与终端快捷键¶
- 查看整块磁盘使用率:
df -h- df: disk free
- 查看当前目录下各文件夹大小:
du -sh *(配合排序:du -sh * | sort -h)- du: disk usage
- 历史命令搜索:
- Bash/Zsh 用
Ctrl + R - Fish Shell 直接输入命令前缀并按
↑键
- Bash/Zsh 用
10. Claude Code¶
一行代码安装搞定:
| Bash | |
|---|---|
1 2 3 4 5 | |