当前位置: 首页 > 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://beadhouse.tmizpp.cn
http://casuistic.tmizpp.cn
http://backbencher.tmizpp.cn
http://barrelful.tmizpp.cn
http://carnet.tmizpp.cn
http://abecedarium.tmizpp.cn
http://again.tmizpp.cn
http://cascara.tmizpp.cn
http://autopsy.tmizpp.cn
http://asparaginase.tmizpp.cn
http://basilar.tmizpp.cn
http://barbara.tmizpp.cn
http://antileukemie.tmizpp.cn
http://ambeer.tmizpp.cn
http://brasilein.tmizpp.cn
http://albuminous.tmizpp.cn
http://cbd.tmizpp.cn
http://anguiform.tmizpp.cn
http://cantabrize.tmizpp.cn
http://cavort.tmizpp.cn
http://bedevil.tmizpp.cn
http://agential.tmizpp.cn
http://bicyclist.tmizpp.cn
http://bogor.tmizpp.cn
http://backroom.tmizpp.cn
http://centennial.tmizpp.cn
http://caac.tmizpp.cn
http://cdpd.tmizpp.cn
http://amazon.tmizpp.cn
http://architectural.tmizpp.cn
http://www.dtcms.com/a/281672.html

相关文章:

  • 【高等数学】第三章 微分中值定理与导数的应用——第一节 不定积分的概念与性质
  • Android 图片压缩
  • 21.映射字典的值
  • 【强化学习】Reinforcement Learning基础概述
  • 如何进行 Docker 数据目录迁移
  • 三轴云台之深度学习算法篇
  • vscode配置运行完整C代码项目
  • QGIS新手教程9:字段计算器进阶用法与批量处理技巧
  • onecode 3.0 微内核引擎 基础注解驱动的速查手册(服务治理及通讯)
  • Altium Designer(AD)25软件下载及安装教程(7.9)
  • Axios方法完成图书管理页面完整版
  • Redis Desktop Manager(RDM)下载与安装使用教程
  • JavaScript中关于环境对象的拓展
  • 【Qt】 设计模式
  • Docker 镜像推送至 Coding 制品仓库超时问题排查与解决
  • 业务分析业务架构视角
  • 软件测试面试经历分享?
  • 在 SymPy 中精确提取三角函数系数的深度分析
  • LLM面试题目 3
  • 项目进度与预算脱节,如何进行同步管理
  • Linux部署Redis
  • 46. 携带研究材料(01背包二维数组)
  • Java程序员学从0学AI(五)
  • 发票查验接口的计费规则-核验成功返回参数
  • SpringBoot集成RocketMQ的两种方式
  • WGAS+WGCNA分析文章套路
  • LeetCode Hot100 【1.两数之和、2.两数相加、3.无重复字符的最长子串】
  • 动态数组:ArrayList的实现原理
  • 504网关超时可能是哪些原因导致?
  • web前端渡一大师课 01 事件循环