当前位置: 首页 > news >正文

Linux 基本操作与服务器部署

一、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文件系统的起点所有目录的父目录
/binBinary基础命令(所有用户可用)lscpbashcat
/sbinSystem Binary系统管理命令(需 root 权限)fdiskifconfigreboot
/etcEtcetera系统配置文件nginx.confpasswdhosts
/libLibrary共享库文件(32 位系统)libc.so.6, 内核模块
/lib64Library (64-bit)64 位共享库(64 位系统特有)ld-linux-x86-64.so.2
/bootBoot启动文件vmlinuz(内核), initramfs, GRUB
/devDevice设备文件sda(硬盘), tty(终端), null
/procProcess内核和进程的虚拟文件(实时生成)cpuinfomeminfo1/(PID 1 的进程信息)
/tmpTemporary临时文件(自动清理,通常 10 天)缓存文件、安装包
/varVariable可变数据(日志、缓存等)/var/log/var/cache

        用户相关目录
目录作用示例路径
/home普通用户的家目录(每个用户独立子目录)/home/john//home/sara/
/rootroot 用户的家目录(超级管理员专用)/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

总结

http://www.lryc.cn/news/589366.html

相关文章:

  • 第二章 OB 存储引擎高级技术
  • C/C++宏定义中do{}while(0)的妙用
  • 4-Nodejs模块化
  • 国内第一梯队终端安全产品解析:技术与场景实践
  • Video Python(Pyav)解码一
  • 如何解决 Spring Boot 使用 Maven 打包后运行失败的问题(附详细排查步骤)
  • 【GEOS-Chem模拟教程第一期上】气溶胶专用/碳气体/全化学模拟
  • [锂电池]锂电池入门指南
  • Altium Designer 25 安装与配置完整教程
  • C 语言(二)
  • 期权做空怎么操作?
  • 软文营销怎么打造口碑扩散,让品牌声量快速增长
  • 极限状态下函数开根号的计算理解(含示意图)
  • 李宏毅《生成式人工智能导论》 | 第11讲-第14讲:大型语言模型的可解释性、能力评估、安全性
  • AUTOSAR进阶图解==>AUTOSAR_SWS_FlexRayARTransportLayer
  • 【Unity】MiniGame编辑器小游戏(十四)基础支持模块(游戏窗口、游戏对象、物理系统、动画系统、射线检测)
  • HarmonyOS从入门到精通:自定义组件开发指南(八):组件插槽 (Slot) 的魅力
  • 【matlab】三维路面谱生成代码
  • Halcon双相机单标定板标定实现拼图
  • 【QT】实现应用程序启动画面
  • 封装---统一处理接口与打印错误信息
  • 2025/7/15——java学习总结
  • 网页源码保护助手 海洋网页在线加密:HTML 源码防复制篡改,密文安全如铜墙铁壁
  • 全局 WAF 规则:构筑 Web 安全的坚固防线
  • 【12】MFC入门到精通——MFC 消息对话框 MessageBox()和AfxMessageBox() 解析 示例 及 应用实例
  • Kafka与Flink打造流式数据采集方案:以二手房信息为例
  • C++ Filesystem Library 全解
  • 20250715正面看MIPI接口的LCD屏正常,侧面看发红是什么原因?
  • 12.6 Google黑科技GShard:6000亿参数MoE模型如何突破显存限制?
  • C++-linux系统编程 8.进程(三)孤儿进程、僵尸进程与进程回收