Linux 命令笔记

Linux Ubuntu 服务器 命令行 MeetYou
创建于 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 的几个基本观念

  1. 一切皆文件:配置、日志、设备、进程信息大多以文件形式呈现。
  2. 区分普通用户和 root:普通命令先用普通用户,需要权限时再 sudo
  3. 路径大小写敏感MeetYoumeetyou 是两个不同目录。
  4. 服务长期运行交给 systemd 或 Docker:不要只靠 SSH 窗口手动挂着。
  5. 日志优先: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 statusjournalctlss -lntp
psql 登录失败 用户/密码/库名/host 错 检查 MEETYOU_DATABASE_URL

17. 自测题

  1. systemctl status 进入状态页后怎么退出?
  2. 如何实时查看 meetyou-core 日志?
  3. apt updateapt upgrade 有什么区别?
  4. 为什么服务要交给 systemd,而不是一直开着 SSH 窗口跑?

我的新增记录


反向链接:00-MOC-命令行与部署知识库总览04-Docker-相关知识笔记06-MeetYou-Core-部署运维手册07-常见排错与小点整合