下面是最常用的 Linux 命令,建议保存备用:
# 列出所有文件(含隐藏)
ls -la
# 查看目录占用
du -sh /var/log
# 递归搜索关键字
grep -r "error" /var/log/
# 按名称查找文件
find / -name "*.conf" 2>/dev/null
# 修改文件权限
chmod 755 script.sh
# 查看进程
ps aux | grep nginx
# 实时查看资源占用
top
掌握这些命令,日常服务器排查基本够用。
代码改错了不要慌,记住这几条命令:
# 撤销工作区修改
git checkout -- file.txt
# 撤销暂存区的修改
git reset HEAD file.txt
# 撤销最近一次提交,保留修改
git reset --soft HEAD~1
# 彻底回退到上一个版本
git reset --hard HEAD~1
# 生成一个反向提交(远程协作推荐)
git revert HEAD
# 找回误删的提交
git reflog
reset --hard 会丢失修改,执行前务必确认。
配置免密登录后,就不用每次输密码了:
# 1. 本地生成密钥
ssh-keygen -t ed25519 -C "your@email.com"
# 2. 复制公钥到服务器
ssh-copy-id user@192.168.1.100
# 3. 配置别名(~/.ssh/config)
Host my-server
HostName 192.168.1.100
User root
Port 22
IdentityFile ~/.ssh/id_ed25519
# 4. 之后直接连接
ssh my-server
服务器端要确保 ~/.ssh/authorized_keys 权限为 600。
现代 Linux 发行版都用 systemd 管理服务:
# 查看服务状态
systemctl status nginx
# 启动 / 停止 / 重启
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
# 设置开机自启并立即启动
systemctl enable --now nginx
# 查看日志
journalctl -u nginx -f
自定义服务可编写 /etc/systemd/system/myapp.service,然后执行 daemon-reload。
定时任务格式:分 时 日 月 周 命令。
# 编辑当前用户的任务
crontab -e
# 查看已有任务
crontab -l
# 每天凌晨 3 点执行备份脚本
0 3 * * * /opt/backup.sh
# 每 5 分钟同步一次数据,并记录日志
*/5 * * * * /opt/sync.sh >> /var/log/sync.log 2>&1
# 每周一早上 6 点重启服务
0 6 * * 1 systemctl restart myapp
建议把输出重定向到日志文件,方便排查任务是否执行成功。
出问题时先看日志,常用排查命令:
# 实时跟踪日志
tail -f /var/log/nginx/error.log
# 查看最后 100 行
tail -n 100 app.log
# 过滤错误关键字
grep "ERROR" app.log | tail -20
# 查看 systemd 服务日志
journalctl -u nginx -f
# 按时间过滤
journalctl --since "10 minutes ago"
先用 tail -f 观察实时输出,再用 grep 缩小范围。