外观
Linux基础 学习笔记
复习速查:汇总 Linux 常用命令与简单项目部署的核心要点,考前过一遍即可上手。
1. 常用命令的学习
【重点要点】
- 文件与目录:
pwd、ls、cd、mkdir、cp、mv、rm;rm -rf慎用,删除前先确认路径 - 查看文件:
cat/less看全文,head/tail看首尾,tail -f实时跟踪日志 - 权限管理:
chmod(数字法 7=rwx、6=rw-、5=r-x、4=r--)、chown、chgrp;目录至少需要 x 权限才能进入 - 进程与端口:
ps/top查进程,kill结束进程;ss/lsof查端口占用(新系统优先用ss) - 服务管理:
systemctl start|stop|restart|status|enable管理 systemd 服务 - 压缩与网络:
tar打包解包、curl/wget请求与下载
易错点:①
rm -rf误删无回收站;② 混淆chmod 755与644的属主/属组/其他位;③ 端口占用先ss -tlnp定位再kill,别乱杀进程;④ 新旧系统命令差异(ifconfig→ip、netstat→ss)。
bash
# 文件与目录
pwd && ls -la
mkdir -p /data/logs && cd /data/logs
cp -r app /backup/app.bak && mv app.conf app.conf.bak
# 查看文件
head -n 20 /etc/nginx/nginx.conf
tail -f /var/log/nginx/access.log
# 权限:文件 644 / 目录 755 / 修改属主
chmod 644 config.ini
chmod 755 deploy.sh
chown -R www:www /var/www
# 进程与端口
ps -ef | grep java
top -b -n 1 | head -20
kill -9 12345
ss -tlnp | grep :8080
# 服务管理
systemctl status nginx
systemctl restart nginx
systemctl enable --now nginx
# 压缩与网络
tar -zcvf app.tar.gz app/
tar -zxvf app.tar.gz -C /opt/
curl -I http://127.0.0.1:80802. 简单项目的部署
【重点要点】
- 部署流程:上传代码 → 安装依赖 → 配置环境 → 启动服务 → 验证端口与日志
- Node 项目:
npm install --production装依赖,pm2守护进程并设置开机自启 - 静态站点:nginx 配置
root+server_name,nginx -t校验后reload - Java 项目:
java -jar直接跑,或写 systemd unit 实现托管与自启 - 环境变量:写入
~/.bashrc并source,注意 PATH 重启后失效的问题 - 防火墙:
firewall-cmd(CentOS)/ufw(Ubuntu)放行端口;云服务器还需在控制台安全组放行
易错点:① 访问 403 多为目录缺 x / 文件缺 r 权限;② 端口被占用或防火墙未放行导致连不上;③ pm2 忘记
pm2 save && pm2 startup,重启后服务丢失;④ 修改 systemd unit 后必须daemon-reload;⑤ 前端打包产物要传到root指向的目录而不是项目根目录。
bash
# Node 项目部署
cd /opt/myapp
npm install --production
pm2 start app.js --name myapp
pm2 save && pm2 startup
# Nginx 静态站点
vi /etc/nginx/conf.d/blog.conf
# server {
# listen 80;
# server_name blog.example.com;
# root /var/www/blog;
# index index.html;
# }
nginx -t && systemctl reload nginx
# systemd 托管 Java 服务
vi /etc/systemd/system/myapp.service
# [Unit]
# Description=myapp
# [Service]
# ExecStart=/usr/bin/java -jar /opt/myapp/app.jar
# Restart=on-failure
# [Install]
# WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now myapp
# 防火墙放行端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
# 环境变量持久化
echo 'export JAVA_HOME=/usr/lib/jvm/java-17' >> ~/.bashrc
source ~/.bashrc