Linux 基本操作与服务器部署

发布于:2025-07-17 ⋅ 阅读:(23) ⋅ 点赞:(0)
一、Linux 系统基础

Linux 是开源的类 Unix 操作系统内核,广泛应用于服务器、云计算和嵌入式设备。核心特点:

  • 开源免费:可自由修改和分发
  • 多用户多任务:支持多用户同时操作
  • 安全性高:完善的权限管理机制
  • 稳定性强:服务器可长期运行不重启
1.1 Linux 发行版比较
发行版 特点 适用场景
Ubuntu 用户友好,社区支持强 开发环境、初学者
CentOS 企业级稳定,兼容 RHEL 生产服务器
Debian 极其稳定,软件丰富 服务器、嵌入式
Alpine 轻量级(仅 5MB) 容器环境
1.2 终端基础操作
# 查看系统信息
uname -a  # 显示所有系统信息
lsb_release -a  # 显示发行版信息

# 文件目录操作
pwd       # 显示当前目录
cd ~      # 进入用户主目录
ls -l     # 详细文件列表
mkdir demo && cd demo  # 创建并进入目录
二、文件系统与权限管理
2.1 Linux 文件系统结构

Linux 文件系统采用树形层级结构,所有目录从根目录 / 开始。这种设计遵循 FHS(Filesystem Hierarchy Standard) 标准,核心目录的作用如下:


        核心系统目录
目录 全称 作用 示例内容
/ Root 文件系统的起点 所有目录的父目录
/bin Binary 基础命令(所有用户可用) lscpbashcat
/sbin System Binary 系统管理命令(需 root 权限) fdiskifconfigreboot
/etc Etcetera 系统配置文件 nginx.confpasswdhosts
/lib Library 共享库文件(32 位系统) libc.so.6, 内核模块
/lib64 Library (64-bit) 64 位共享库(64 位系统特有) ld-linux-x86-64.so.2
/boot Boot 启动文件 vmlinuz(内核), initramfs, GRUB
/dev Device 设备文件 sda(硬盘), tty(终端), null
/proc Process 内核和进程的虚拟文件(实时生成) cpuinfomeminfo1/(PID 1 的进程信息)
/tmp Temporary 临时文件(自动清理,通常 10 天) 缓存文件、安装包
/var Variable 可变数据(日志、缓存等) /var/log/var/cache

        用户相关目录
目录 作用 示例路径
/home 普通用户的家目录(每个用户独立子目录) /home/john//home/sara/
/root root 用户的家目录(超级管理员专用) /root/.ssh/
/usr 用户程序资源(User System Resources)
├─ /usr/bin 用户级命令(比 /bin 更多) python3gitvim
├─ /usr/sbin 系统管理命令(非核心) useraddsshd
├─ /usr/lib 用户级库文件 Python 库、Java JAR
├─ /usr/local 手动安装的软件(优先级最高) nginx/mysql/
└─ /usr/share 共享数据(文档、图标等) man/icons/

        运行与数据目录
目录 作用 重要子目录
/run 运行时数据(系统启动后生成) /run/lock/(锁文件)
/var 动态数据(Variable Data)
├─ /var/log 系统/应用日志(关键!) syslognginx/access.log
├─ /var/cache 应用缓存 APT 包缓存
├─ /var/lib 数据库、Docker 镜像等 mysql/docker/
├─ /var/mail 用户邮箱
└─ /var/spool 队列数据(打印任务、cron 任务等)

        其他重要目录
目录 作用 使用场景
/opt 第三方大型软件(可选软件包) /opt/google/chrome/
/srv 服务数据(Service Data) Web 站点的 /srv/www/
/mnt 临时挂载点(手动挂载设备) mount /dev/sdb1 /mnt/usb
/media 自动挂载点(U 盘、光盘等自动挂载) /media/cdrom/
/lost+found 文件系统修复后的残留文件 fsck 后恢复的文件
2.2 权限系统详解

权限表示:-rwxr-xr--

  • 第1位:文件类型(- 普通文件,d 目录)
  • 2-4位:所有者权限(rwx)
  • 5-7位:所属组权限(r-x)
  • 8-10位:其他用户权限(r--)

权限修改:

# 权限数字表示法
chmod 755 script.sh  # rwxr-xr-x
chmod +x script.sh   # 添加执行权限

# 更改所有者
chown user:group file.txt
2.3 文件操作命令
# 文件查看
cat file.txt      # 显示全部内容
head -n 5 log.txt # 显示前5行
tail -f app.log   # 实时追踪日志

# 文件搜索
grep "error" *.log  # 在日志中搜索错误
find /var -name "*.log" -mtime -7  # 查找7天内修改的日志
三、用户与进程管理
3.1 用户管理
# 创建用户
sudo useradd -m -s /bin/bash john  # 创建用户并生成主目录
sudo passwd john                   # 设置密码

# 用户组管理
sudo groupadd developers     # 创建组
sudo usermod -aG developers john  # 添加用户到组
3.2 进程管理
# 进程监控
top        # 动态查看进程
htop       # 增强版top(需安装)
ps aux     # 查看所有进程

# 进程控制
kill 1234          # 终止进程
killall nginx      # 终止所有nginx进程
pkill -f "python"  # 终止匹配进程

# 后台进程管理
./server.sh &      # 后台运行
jobs               # 查看后台任务
fg %1              # 切换到前台
四、网络配置与服务管理
4.1 网络配置
# 查看网络信息
ifconfig    # 查看网络接口(旧版)
ip addr     # 新版IP查看
netstat -tuln  # 查看监听端口

# 网络测试
ping baidu.com
traceroute google.com
curl -I https://example.com  # 查看HTTP头
4.2 防火墙管理
# UFW防火墙(Ubuntu)
sudo ufw allow 22        # 允许SSH
sudo ufw allow 80/tcp    # 允许HTTP
sudo ufw enable          # 启用防火墙

# firewalld(CentOS)
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
4.3 服务管理
# systemd服务管理
sudo systemctl start nginx    # 启动
sudo systemctl stop nginx     # 停止
sudo systemctl restart nginx  # 重启
sudo systemctl enable nginx   # 设置开机启动
五、服务器部署实战
 Java 应用部署
# 1. 安装JDK
sudo apt install openjdk-17-jdk

# 2. 上传应用
scp app.jar user@server:/opt/myapp/

# 3. 创建systemd服务
sudo nano /etc/systemd/system/myapp.service

[Unit]
Description=My Java Application
After=network.target

[Service]
User=appuser
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar
SuccessExitStatus=143
Restart=always

[Install]
WantedBy=multi-user.target

# 4. 启动服务
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
六、安全加固
6.1 基础安全措施

        SSH 安全加固

sudo nano /etc/ssh/sshd_config

# 修改以下配置
Port 2222                  # 更改默认端口
PermitRootLogin no         # 禁止root登录
PasswordAuthentication no  # 禁用密码登录
AllowUsers john             # 只允许特定用户

sudo systemctl restart sshd

防火墙配置

sudo ufw default deny incoming  # 默认拒绝所有入站
sudo ufw default allow outgoing # 允许所有出站
sudo ufw allow 2222             # 只开放SSH端口
sudo ufw enable
定期维护任务
# Ubuntu
sudo apt update && sudo apt upgrade -y

# CentOS
sudo yum update -y

日志监控: 

# 查看失败登录尝试
sudo grep "Failed password" /var/log/auth.log

# 使用logrotate管理日志
sudo nano /etc/logrotate.conf
七、故障排查与监控
        常见问题排查
sudo journalctl -u nginx --since "1 hour ago"  # 查看日志
sudo nginx -t  # 测试配置

        磁盘空间不足

df -h                 # 查看磁盘使用
du -sh /var/log/*     # 检查日志目录
sudo journalctl --vacuum-size=100M  # 清理日志

        内存不足

free -h               # 查看内存
top                   # 检查内存占用进程
ps aux --sort=-%mem | head -10  # 查看内存占用TOP10
监控工具

        基础监控

# 实时监控
htop
nmon

# 网络监控
nload
iftop

总结


网站公告

今日签到

点亮在社区的每一天
去签到