Skip to content

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:8080

2. 简单项目的部署 ​

【重点要点】

  • 部署流程:上传代码 → 安装依赖 → 配置环境 → 启动服务 → 验证端口与日志
  • 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

以「技术栈」为核心的个人知识库