Linux 命令笔记
创建于 2026-05-09
目录
Linux 命令笔记
Summary
Linux 是后端部署的主战场。MeetYou 的 Core、systemd、Nginx/Caddy、PostgreSQL、Docker/Compose 都更适合跑在 Linux 上。本笔记重点围绕 Ubuntu 服务器、云服务器、SSH 运维、项目部署和排错。相关:00-MOC-命令行与部署知识库总览|04-Docker-相关知识笔记|05-Git-SSH-GitHub-命令笔记|06-MeetYou-Core-部署运维手册
1. Linux 的几个基本观念
- 一切皆文件:配置、日志、设备、进程信息大多以文件形式呈现。
- 区分普通用户和 root:普通命令先用普通用户,需要权限时再
sudo。 - 路径大小写敏感:
MeetYou和meetyou是两个不同目录。 - 服务长期运行交给 systemd 或 Docker:不要只靠 SSH 窗口手动挂着。
- 日志优先:Linux 排错先看日志,不要凭感觉猜。
2. 基础导航
pwd # 当前目录
ls # 列出文件
ls -la # 详细显示,包括隐藏文件
cd /opt/meetyou/MeetYou # 进入目录
cd .. # 上一级
cd ~ # 当前用户家目录
clear # 清屏
路径:
/ 根目录
/home/ubuntu ubuntu 用户家目录
/opt 常放额外部署的服务程序
/etc 系统配置
/var/log 日志
/tmp 临时目录
3. 文件与目录操作
mkdir logs # 新建目录
mkdir -p /opt/meetyou # 递归创建目录
touch app.log # 新建空文件
cp a.txt b.txt # 复制文件
cp -r src dst # 复制目录
mv old.txt new.txt # 移动/重命名
rm a.txt # 删除文件
rm -rf dist # 删除目录,极度谨慎
Danger
`rm -rf` 没有回收站。执行前先 `pwd` 和 `ls`,确认自己在正确目录。4. 查看文件
cat .env # 一次性输出整个文件
less app.log # 分页查看,按 q 退出
head -n 20 app.log # 前 20 行
tail -n 50 app.log # 后 50 行
tail -f app.log # 实时跟踪日志
编辑文件:
nano .env
nano user/config.json
nano 保存退出:
Ctrl + O -> Enter -> Ctrl + X
5. 搜索文件与文本
grep "ERROR" app.log
grep -R "TODO" .
grep -R "MEETYOU_DATABASE_URL" /etc/meetyou /opt/meetyou 2>/dev/null
find . -name "*.py"
find /opt/meetyou -name "*.service"
常用组合:
journalctl -u meetyou-core -n 200 --no-pager | grep ERROR
6. 权限、用户与 sudo
whoami # 当前用户
id # 当前用户和组
sudo command # 以管理员权限执行
sudo -i # 切到 root shell,不建议长期使用
chmod +x script.sh # 给脚本执行权限
chown ubuntu:ubuntu file # 改所有者
chown -R ubuntu:ubuntu dir # 递归改所有者
常见权限位:
r = read
w = write
x = execute
示例:
chmod 600 ~/.ssh/id_ed25519
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
7. 软件包管理 apt
sudo apt update
sudo apt upgrade -y
sudo apt install -y git curl vim nano python3 python3-venv
sudo apt install -y postgresql postgresql-contrib
sudo apt remove 包名
区别:
apt update:更新软件源索引,不安装。apt upgrade:升级已安装软件。apt install:安装新软件。
8. 进程与资源
ps aux | grep python # 查进程
top # 实时资源
htop # 更好用,需安装
kill PID # 结束进程
kill -9 PID # 强制结束,谨慎
df -h # 磁盘空间
free -h # 内存
du -sh * # 当前目录各项大小
端口:
ss -lntp # 查看监听端口
sudo lsof -i :8000 # 查看占用 8000 的进程
9. systemd 服务管理
sudo systemctl status meetyou-core
sudo systemctl start meetyou-core
sudo systemctl stop meetyou-core
sudo systemctl restart meetyou-core
sudo systemctl enable meetyou-core
sudo systemctl disable meetyou-core
状态页卡住时按:
q
查看日志:
sudo journalctl -u meetyou-core -n 100 --no-pager
sudo journalctl -u meetyou-core -f
sudo journalctl -u meetyou-core --since "1 hour ago"
10. 网络与 HTTP
curl http://127.0.0.1:8000/health
curl -I https://core.maziteng.cn
ping github.com
nslookup github.com
ip addr
带 Authorization:
TOKEN="不要把真实 token 写进普通笔记"
curl -H "Authorization: Bearer $TOKEN" https://core.maziteng.cn/health
11. SSH / SCP / rsync
ssh ubuntu@服务器IP
ssh ubuntu@core.maziteng.cn
scp local.txt ubuntu@服务器IP:/tmp/local.txt
scp ubuntu@服务器IP:/tmp/remote.log .
rsync -avz ./dist/ ubuntu@服务器IP:/tmp/dist/
断开 SSH:
exit
或者按:
Ctrl + D
12. PostgreSQL 基础命令
安装:
sudo apt install -y postgresql postgresql-contrib
sudo systemctl status postgresql
进入控制台:
sudo -u postgres psql
创建用户和库:
CREATE USER meetyou WITH PASSWORD '改成强密码';
CREATE DATABASE meetyou OWNER meetyou;
GRANT ALL PRIVILEGES ON DATABASE meetyou TO meetyou;
\q
测试连接:
psql -h 127.0.0.1 -U meetyou -d meetyou
13. Python 虚拟环境
cd /opt/meetyou/MeetYou
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements-core.txt
退出虚拟环境:
deactivate
14. MeetYou Core 常用命令
cd /opt/meetyou/MeetYou
source .venv/bin/activate
python -m service_runtime
systemd 方式:
sudo systemctl restart meetyou-core
sudo systemctl status meetyou-core --no-pager
sudo journalctl -u meetyou-core -f
安全更新:
cd /opt/meetyou/MeetYou
git fetch origin
git pull --ff-only
source .venv/bin/activate
python -m pip install -r requirements-core.txt
sudo systemctl restart meetyou-core
sudo systemctl status meetyou-core --no-pager
15. 安全基线
sudo ufw status
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
建议:
- SSH 尽量用 key 登录。
- 禁用 root 密码登录。
- 安装
fail2ban。 - 不公开数据库端口。
.env、token、私钥不要提交到 GitHub。
16. 常见坑
| 问题 | 原因 | 处理 |
|---|---|---|
Permission denied |
权限不足 | 用 sudo 或修正 chown/chmod |
command not found |
未安装或 PATH 不对 | which 命令,再 apt install |
systemctl status 卡住 |
进入 pager | 按 q |
curl /health 不通 |
服务没起/端口没监听/反代错误 | systemctl status、journalctl、ss -lntp |
psql 登录失败 |
用户/密码/库名/host 错 | 检查 MEETYOU_DATABASE_URL |
17. 自测题
systemctl status进入状态页后怎么退出?- 如何实时查看
meetyou-core日志? apt update和apt upgrade有什么区别?- 为什么服务要交给 systemd,而不是一直开着 SSH 窗口跑?
我的新增记录
反向链接:00-MOC-命令行与部署知识库总览|04-Docker-相关知识笔记|06-MeetYou-Core-部署运维手册|07-常见排错与小点整合