01-Linux 基础与高级
对应原始资料:
项目一前置课b/day09-Linux基础、day10-Linux高级
一、为什么 Java 工程师要学 Linux
- 服务几乎都部署在 Linux(云服务器、容器)。
- 排查问题、看日志、运维部署都依赖命令行。
二、基础命令
1. 目录与文件
bash
pwd # 当前路径
ls -l / ls -a # 列出文件
cd /home # 切换
mkdir -p a/b/c # 多级创建
touch a.txt # 新建文件
cp -r src dst # 递归拷贝
mv a b # 移动/重命名
rm -rf dir # 强制递归删除(危险,慎重)2. 文件查看
bash
cat a.txt # 全部
more a.txt / less a.txt # 分页
head -10 a.txt # 前 10 行
tail -f app.log # 实时追踪日志(排查问题必用)3. 文本处理三剑客
bash
grep "error" app.log # 过滤
grep -n "error" app.log # 带行号
grep -rn "TODO" . # 递归带行号
find / -name "*.log" # 按名查找
find . -mtime -1 # 1 天内修改
tar -zcvf a.tar.gz dir/ # 压缩
tar -zxvf a.tar.gz # 解压
| 管道:把前一个的输出作为后一个的输入
ps -ef | grep java4. 权限
bash
chmod 755 a.sh # rwx rx rx
chmod +x a.sh # 加执行权限
chown user:group file # 改所有者权限数字:r=4 w=2 x=1。
5. 进程 / 端口
bash
ps -ef | grep java # 看进程
top # 实时进程/内存
kill -9 <pid> # 强杀
netstat -anp | grep 8080 # 看端口
lsof -i:80806. 网络
bash
ip addr / ifconfig
ping baidu.com
curl http://localhost:8080/api
wget url三、高级 —— 软件安装
1. 包管理器
- CentOS:
yum install -y nginx。 - Ubuntu:
apt install。
2. systemctl 服务管理
bash
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx
systemctl enable nginx # 开机自启3. 解压安装(如 JDK、Tomcat)
bash
# 下载、解压、配置环境变量
tar -zxvf jdk-8.tar.gz -C /usr/local/
vim /etc/profile
# export JAVA_HOME=/usr/local/jdk
# export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile四、Vim 编辑器
bash
vim a.txt
# 命令模式 → i/a/o 插入模式 → Esc 回到命令模式 → :wq 保存退出常用:
i插入、o下一行插入。yy复制行、dd剪切行、p粘贴。u撤销、Ctrl+r重做。:进入底行,wq保存退出、q!强制不保存退出、/word搜索。
五、Shell 脚本(了解)
bash
#!/bin/bash
# 变量、条件、循环
name=$1
echo "hello $name"
if [ -f /etc/passwd ]; then echo exists; fi
for f in *.log; do echo $f; done赋予执行权限后 ./a.sh 执行。
六、网络与快照(扩展资料)
原始资料 Linux-扩展-网络-快照.md 涵盖:
- 虚拟机网络模式(桥接、NAT、仅主机)。
- VMware 快照 / 克隆,方便随时回滚实验环境。
- 静态 IP 配置、防火墙
firewall-cmd。
七、Java 工程师常用工作流
bash
# 1. 上传 jar
scp app.jar user@server:/opt/app/
# 2. 后台启动
nohup java -jar app.jar --spring.profiles.active=prod > app.log 2>&1 &
# 3. 看日志
tail -f app.log | grep -i error
# 4. 重启
ps -ef | grep app.jar | grep -v grep | awk '{print $2}' | xargs kill -9
nohup java -jar app.jar > app.log 2>&1 &练习建议
- 买一台云服务器(或装虚拟机),跑通基础命令。
- 在 Linux 上安装 JDK、MySQL、Tomcat。
- 把一个 SpringBoot jar 部署到 Linux 并后台运行。
- 用
tail -f排查一个运行时日志。 - 写一个 shell 脚本实现「备份 MySQL 数据库到指定目录」。