Linux 入门:从 WSL 到服务器部署
学后端到最后总要碰服务器部署,Linux 命令是绕不开的。这里记录一下我学 Linux 的过程,从 WSL 起步到能用命令操作服务器。
Linux 入门:从 WSL 到服务器部署
学完 JavaWeb 之后,做了一个学生管理系统,跑通前后端,觉得还挺有成就感的。
然后问题来了:怎么部署到服务器上?
本地跑得好好的,放到服务器上就各种问题。
这才意识到,不懂 Linux,做后端开发等于瘸了一条腿。
于是开始学 Linux,从装 WSL 开始,一路摸爬滚打,总算能把项目部署上去了。
先从 WSL 开始
Windows 上直接装 Linux 不太现实,大多数人选择用 WSL(Windows Subsystem for Linux)。
装了 WSL 之后,你就是在 Windows 上跑了一个完整的 Linux 环境,可以在终端里用 Linux 命令,效果和真服务器差不多。
# 安装 WSL(PowerShell 管理员运行)
wsl --install
# 装完之后启动
wsl
启动后就是 Ubuntu 的终端了,输入 uname -a 可以看到内核信息。
最常用的一批命令
Linux 命令挺多的,但不需要全部记住。
日常开发用到的大概就这些:
目录操作
ls # 列出当前目录
ls -la # 列出详细信息(含隐藏文件)
cd /path # 切换目录
mkdir dir # 创建目录
mkdir -p a/b/c # 递归创建多层目录
文件操作
cat file # 查看文件内容
less file # 分页查看大文件
head -n 10 file # 查看前 10 行
tail -f log # 实时追踪日志文件
grep "error" log # 搜索包含 error 的行
tail -f 这个命令在服务器上特别常用,部署完项目直接 tail -f 看日志,出问题一目了然。
压缩解压
tar -czvf archive.tar.gz dir/ # 压缩
tar -xzvf archive.tar.gz # 解压
zip -r out.zip dir/ # zip 压缩
unzip out.zip # zip 解压
.tar.gz 是最常用的格式,服务器上传下载项目包基本都用这个。
系统监控
df -h # 磁盘使用情况
free -h # 内存使用情况
top # 进程和 CPU 监控
ps aux # 查看所有进程
kill PID # 终止进程
部署完项目第一件事就是 df -h 看磁盘够不够,free -h 看内存够不够。
权限管理
chmod 755 file # 修改文件权限
chown user:group file # 修改所有者
sudo command # 以 root 权限执行
权限搞错了项目跑不起来,chmod +x script.sh 加执行权限是常做的事。
文本编辑器:vim 和 nano
服务器上改配置文件,基本离不开编辑器。
新手建议先学 nano,简单易用:
nano file.txt # 打开文件
Ctrl+O # 保存
Ctrl+X # 退出
底部有操作提示,直观多了。
vim 功能更强但学习曲线陡,熟练之后效率很高。三种模式要记一下:
- 普通模式(默认):移动光标、删除、复制
- 插入模式(按
i):编辑文本 - 命令模式(按
:):保存退出、查找替换
常用的几个:
i # 进入插入模式
Esc # 返回普通模式
dd # 删除当前行
:q! # 强制退出(不保存)
:wq # 保存并退出
:%s/old/new/g # 全文替换
SSH 远程连接服务器
学 Linux 绕不开的一个场景:连接远程服务器。
SSH(Secure Shell)就是干这个的,加密传输,安全连接。
# 连接服务器
ssh user@your-server-ip
# 指定端口(默认 22)
ssh -p 2222 user@your-server-ip
连接后就可以像本地一样操作服务器了。
为了安全,一般建议配置免密登录:
# 本地生成密钥对
ssh-keygen -t rsa
# 把公钥上传到服务器
ssh-copy-id user@your-server-ip
配好之后就不用每次输入密码了,而且比密码更安全。
Linux 发行版:Ubuntu 和 CentOS
服务器常用的 Linux 发行版主要是两类:
Debian 系(Ubuntu、Debian):用 .deb 包,包管理器是 apt
apt update
apt install nginx
Red Hat 系(CentOS、RHEL、Fedora):用 .rpm 包,包管理器是 yum 或 dnf
yum install nginx
# 或
dnf install nginx
新手推荐从 Ubuntu 入手,资料多,社区活跃,WSL 默认也是 Ubuntu。
项目部署流程
学了这些命令之后,就可以做项目部署了。
以我们的学生管理系统为例,部署流程大概是:
- 后端打包:
mvn clean package -DskipTests,生成 jar 包 - 前端构建:
npm run build,生成 dist 目录 - 上传到服务器:用
scp或sftp - 配置 Nginx:静态资源托管 + API 反向代理
- 启动服务:
java -jar app.jar &或用 systemd 管理
其中最关键的是 Nginx 配置,解决跨域和静态资源问题:
server {
listen 80;
server_name your-domain.com;
# 前端静态资源
location / {
root /var/www/myapp/dist;
try_files $uri $uri/ /index.html;
}
# API 反向代理
location /api/ {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
防火墙
服务器默认有防火墙,需要开放端口才能让外部访问。
Ubuntu 用 ufw:
sudo ufw allow 80/tcp # 开放 HTTP
sudo ufw allow 443/tcp # 开放 HTTPS
sudo ufw allow 22/tcp # SSH
sudo ufw enable # 启用防火墙
sudo ufw status # 查看状态
端口没开,网站打不开,这是新手经常踩的坑。
一句话总结
Linux 命令不用全部背,会用最常用的十几二十个就够了:
ls、cd、mkdir、rm、cat、less、tail、grep、tar、ssh、chmod、sudo
配合 WSL 本地练习,再用服务器真实操作,很快就能上手。
做后端开发,Linux 是基本功,绕不过去,早点学早点轻松。