Linux 实战技术博客:从基础命令到 Shell 脚本自动化
Linux 作为服务器领域的霸主,是运维、开发、测试人员必备技能。本文从零开始,覆盖常用命令、文件操作、权限管理、进程管理、日志排查、Shell 脚本自动化 六大核心模块,全是可直接运行的代码案例,新手也能快速上手,学完即可应对日常工作 90% 场景。
一、Linux 基础必备命令(高频使用)
1.1 系统信息查询
bash
# 查看系统版本
cat /etc/os-release
hostnamectl
# 查看内核版本
uname -a
# 查看 CPU 信息
lscpu
cat /proc/cpuinfo | grep "model name"
# 查看内存使用
free -h
top -b -n 1 | grep Mem
# 查看磁盘空间
df -h
# 查看文件夹大小
du -sh /home
1.2 目录与文件导航
bash
# 进入目录
cd /home
# 返回上一级
cd ..
# 查看当前目录
pwd
# 列出文件(详细+隐藏)
ls -al
# 创建文件夹
mkdir -p test/demo1
# 删除空目录
rmdir test
二、文件操作实战(增删改查)
2.1 文件创建/删除/复制/移动
bash
# 创建空文件
touch test.txt
# 复制文件
cp test.txt test.bak.txt
# 移动/重命名
mv test.bak.txt test2.txt
# 删除文件(强制删除)
rm -f test2.txt
# 递归删除文件夹
rm -rf test/
2.2 文件内容查看
bash
# 查看全部内容
cat test.txt
# 分页查看
less test.txt
# 查看前 10 行
head -10 test.txt
# 查看最后 20 行(常用看日志)
tail -20 test.txt
# 实时刷新日志
tail -f /var/log/messages
2.3 文件内容搜索(grep 神器)
bash
# 在文件中搜索关键词
grep "error" test.txt
# 忽略大小写
grep -i "error" test.txt
# 显示行号
grep -n "error" test.txt
# 递归搜索目录下所有文件
grep -r "root" /etc/
三、权限管理(Linux 核心机制)
3.1 查看权限
bash
ls -l test.txt
输出示例:
-rw-r--r-- 1 root root 12 Mar 9 10:00 test.txt
rw-r--r--:所有者/组/其他用户权限root root:所属用户、所属组
3.2 修改权限(chmod)
bash
# 给文件所有者添加执行权限
chmod u+x test.txt
# 给所有用户读、写、执行权限(慎用)
chmod 777 test.txt
# 常用权限:脚本可执行
chmod +x run.sh
3.3 修改所有者(chown)
bash
# 将文件归属改为 user1 用户
chown user1 test.txt
# 递归修改目录归属
chown -R user1:user1 /home/user1
四、进程与服务管理
4.1 查看进程
bash
# 查看所有进程
ps -ef
# 过滤进程
ps -ef | grep nginx
# 动态查看进程(任务管理器)
top
4.2 杀死进程
bash
# 正常杀死
kill 12345
# 强制杀死
kill -9 12345
# 杀死所有 nginx 进程
pkill -9 nginx
4.3 系统服务管理(systemd)
bash
# 启动 nginx
systemctl start nginx
# 停止 nginx
systemctl stop nginx
# 重启
systemctl restart nginx
# 设置开机自启
systemctl enable nginx
# 查看服务状态
systemctl status nginx
五、网络与端口管理
5.1 查看端口占用
bash
# 查看所有端口
netstat -tuln
# 查看 80 端口
netstat -tuln | grep 80
# 新式命令
ss -tuln | grep 80
5.2 测试网络
bash
# ping 测试
ping www.baidu.com
# 查看路由
traceroute www.baidu.com
# 下载文件
wget https://www.baidu.com/index.html
# 端口连通性测试
telnet 192.168.1.100 22
六、Shell 脚本自动化(超多实战案例)
6.1 第一个脚本:Hello World
bash
#!/bin/bash
echo "Hello Linux Shell!"
运行:
bash
chmod +x hello.sh
./hello.sh
6.2 自动备份脚本
bash
#!/bin/bash
# 备份 /home 目录到 /backup
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup"
SOURCE="/home"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 打包压缩
tar -zcvf $BACKUP_DIR/home_$DATE.tar.gz $SOURCE
# 输出日志
echo "备份完成:$BACKUP_DIR/home_$DATE.tar.gz"
6.3 监控磁盘使用率脚本
bash
#!/bin/bash
# 获取磁盘使用率
USE=$(df -h | grep /dev/vda1 | awk '{print $5}' | sed 's/%//g')
# 判断是否超过阈值 80%
if [ $USE -gt 80 ]; then
echo "磁盘空间不足!当前使用率:$USE%"
else
echo "磁盘正常:$USE%"
fi
6.4 自动清理日志脚本
bash
#!/bin/bash
# 清理 7 天前的日志
find /var/log -name "*.log" -mtime +7 -delete
echo "旧日志清理完成"
6.5 一键部署项目脚本
bash
#!/bin/bash
echo "停止旧服务..."
pkill -9 java
echo "备份旧包..."
cp app.jar app.jar.bak
echo "启动新服务..."
nohup java -jar app.jar > app.log 2>&1 &
echo "启动成功!"
tail -20 app.log
七、Linux 工作常用神器
7.1 查找文件
bash
# 全局查找 nginx 文件
find / -name "nginx"
# 查找大于 100M 的文件
find / -size +100M
7.2 解压缩
bash
# 解压 tar.gz
tar -zxvf file.tar.gz
# 压缩
tar -zcvf test.tar.gz test/
7.3 软链接(快捷方式)
bash
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
八、总结
本文覆盖 Linux 命令 + 文件操作 + 权限 + 进程 + 网络 + Shell 脚本自动化 ,所有代码可直接复制运行,适合:
- 运维人员日常工作
- 后端开发部署项目
- 测试人员环境操作
- 学生学习 Linux 实战
Linux 核心就是多敲命令、多写脚本,坚持练习一周就能熟练掌握。