Linux 基础与运维(兜底方向)
用大白话说:这一页帮你搞懂——怎么把你的视频检测系统稳稳地跑在服务器上,出了毛病自己能查、能救。
目标:服务器几乎都跑 Linux(说人话:一种常用的服务器操作系统,像 Windows,但更适合作服务器)。你部署 TensorRT / ffmpeg / agent 服务,最终都落在 Linux 上。这一章让你不止会写代码,还能把东西稳稳跑起来、出问题能查——这是运维/管理岗的兜底能力,也方便你日常使用。
学习原则:别背命令表,按「场景」学——「我要看 GPU 占用」「我要让服务开机自启」「端口被占了我怎么查」。每个场景记 2–3 条命令就够用。就像记菜谱:你不用背整本字典,只要记住「今晚做番茄炒蛋需要哪几步」。
一、必会基础命令(日常 80% 用这些)
这部分就像你的「常用工具箱」。下面每张表左边是你想干的事,右边是对应的命令,照着抄就行。
| 你想干啥 | 命令 | 说明 |
|---|---|---|
| 看当前在哪 | pwd | 打印工作目录(说人话:告诉我现在站在哪个文件夹里) |
| 列文件 | ls -lh | -l 详情,-h 人类可读大小 |
| 进目录 | cd /path / cd .. | 进/退回上级 |
| 看文件内容 | cat a.txt / less a.txt | less 可翻页(q 退出) |
| 看头尾 | head -n 20 / tail -n 20 | 看前/后 N 行 |
| 实时跟日志 | tail -f app.log | 持续刷新,查线上问题神器 |
| 搜内容 | grep "error" app.log | 配合 -i 忽略大小写、-n 行号(说人话:在一大堆文字里找带「error」的那几行) |
| 找文件 | find /path -name "*.py" | 按名搜 |
| 复制/移动/删 | cp / mv / rm | ⚠️ rm -rf / 灾难,慎用 |
| 建目录/文件 | mkdir dir / touch a.txt |
二、权限与用户(运维基本功)
权限就像家里门锁:谁(主人/家人/外人)能对某个东西做啥(看/改/用)。Linux 把文件权限分成三类人。
ls -l第一列rwxr-xr-x:分 属主/属组/其他 三类,r 读 w 写 x 执行。chmod 755 script.sh:数字法(r=4 w=2 x=1),755 = 属主全权、其他读执行。chown user:group file:改属主/属组。sudo cmd:以管理员身份执行(日常用普通用户,必要时 sudo)。
三、进程与资源(查卡顿/查占用)
进程就是「正在跑的程序」。电脑卡了,多半是某个进程吃光了 CPU 或内存。下面几条帮你抓出「罪魁祸首」。
ps aux | grep python:看进程。top/htop:实时看 CPU/内存(q 退出)。kill -9 PID:强杀进程;pkill -f name按名杀。nvidia-smi:看 GPU 占用/显存(你跑 TensorRT 必看)。df -h磁盘、free -h内存。
四、网络(查端口/连通)
端口(说人话:程序对外开门的「门牌号」)。两个程序抢同一个门牌,就会「端口被占」。下面帮你查谁占了门。
ping host:连通性(说人话:试试对方在不在、通不通)。ss -ltnp/netstat -ltnp:看监听端口和占用进程(查「端口被占」)。curl http://localhost:8000/wget url:发请求/下载。ip a:看网卡 IP。
五、让服务跑起来(部署核心)
部署(说人话:把你写好的程序放到服务器上,让它一直干活、别人能访问)。下面几种方式,从简单到正式。
- 后台运行:
nohup python app.py > app.log 2>&1 &(退出终端也不停)。 - 终端复用:
tmux/screen,断线重连不丢会话。 - 系统服务(开机自启):写
/etc/systemd/system/myapp.service,然后systemctl enable --now myapp(start/status/restart)。 - 包管理:Ubuntu
apt install;CentOSyum/dnf install;Python 用pip install。
六、远程与同步
远程(说人话:你坐家里,敲键盘却能操作机房里的那台服务器)。同步就是「让两台机器的文件保持一致」。
ssh user@host:登远程服务器。scp file user@host:/path:传文件。rsync -avz src/ user@host:/dst:增量同步(部署更新常用)。
七、定时任务与容器(进阶)
定时任务就是「让电脑每天自动帮你干一件事」,像定闹钟。容器(说人话:把程序和它要的环境打包成一个「随身行李箱」,到哪台机器都能原样跑,不挑环境)。
crontab -e:写定时任务,如0 3 * * * /opt/backup.sh每天 3 点备份。- Docker 入门:
docker ps看容器、docker images看镜像、docker run -d -p 8080:80 img起容器、docker logs -f id看日志。
八、和你项目的结合(直接能用)
上面那些命令,落到你的视频检测系统上,就是下面这些活。照表对号入座就行。
| 你要做的事 | 命令 |
|---|---|
| 看 GPU 是否够跑模型 | nvidia-smi |
| 查推流端口被谁占 | ss -ltnp | grep 1935 |
| 让视觉服务开机自启 | 写 systemd service + systemctl enable |
| 实时看 agent 日志 | tail -f /var/log/myagent.log |
| 更新代码不中断 | rsync 同步 + systemctl restart |
安全第一:生产机慎用
rm -rf、慎用 sudo;改配置前先备份;端口别裸奔公网。运维的底线是「别把服务搞挂、别把数据删了」。
九、🔧 练习(部署兜底能力)
- 在一台 Linux(或 WSL / 虚拟机)上,用
nohup起一个 Python 服务并curl通。 - 把它改成 systemd 服务,实现重启/开机自启。
- 用
tail -f+grep模拟查一次线上报错。