Skip to content

Linux 运维知识点

一、Linux 简介

1. 什么是 Linux?

Linux 是一种开源的操作系统内核,由 Linus Torvalds 于 1991 年创建。它是 Unix 操作系统的一个克隆,具有稳定、安全、高效的特点,广泛应用于服务器、嵌入式设备和个人计算机。

2. Linux 的优势

  • 开源免费:源代码公开,可自由修改和分发
  • 稳定性:长时间运行不崩溃
  • 安全性:内置安全机制,较少受到病毒攻击
  • 可定制性:可以根据需要定制系统
  • 高性能:资源占用低,适合服务器环境
  • 丰富的软件:拥有大量开源软件
  • 强大的命令行:提供强大的命令行工具

3. 常见的 Linux 发行版

  • Ubuntu:基于 Debian,用户友好,适合桌面和服务器
  • CentOS:基于 Red Hat Enterprise Linux (RHEL),稳定,适合服务器
  • Debian:稳定,注重自由软件,适合服务器
  • Fedora:由 Red Hat 支持,前沿技术,适合开发者
  • Arch Linux:滚动更新,轻量级,适合高级用户
  • SUSE:企业级 Linux,适合服务器和桌面

二、Linux 基本操作

1. 系统启动与关闭

  • 启动系统:按下电源按钮,系统会自动启动
  • 关闭系统shutdown -h nowpoweroff
  • 重启系统rebootshutdown -r now
  • 暂停系统systemctl suspend

2. 用户管理

  • 创建用户useradd username
  • 设置密码passwd username
  • 删除用户userdel username
  • 切换用户su - username
  • 查看当前用户whoami
  • 查看登录用户whow

3. 文件系统操作

  • 查看当前目录pwd
  • 切换目录cd directory
  • 列出文件lsls -l 详细信息,ls -a 显示隐藏文件)
  • 创建目录mkdir directorymkdir -p 创建嵌套目录)
  • 删除目录rmdir directory(空目录)或 rm -rf directory(递归删除)
  • 创建文件touch fileecho content > file
  • 编辑文件vim filenano file
  • 查看文件内容cat fileless filemore file
  • 复制文件cp source destination
  • 移动文件mv source destination
  • 删除文件rm file
  • 查找文件find path -name "pattern"
  • 搜索文件内容grep pattern file

4. 权限管理

  • 查看权限ls -l
  • 修改权限chmod permissions file(如 chmod 755 file
  • 修改所有者chown user:group file
  • 修改所属组chgrp group file
  • 权限表示:r(读,4)、w(写,2)、x(执行,1)

5. 进程管理

  • 查看进程psps aux 所有进程,ps -ef 进程树)
  • 查看进程树pstree
  • 终止进程kill pidkill -9 pid 强制终止)
  • 查看进程资源tophtop
  • 后台运行command &
  • 查看后台进程jobs
  • 前台运行fg %job
  • 后台暂停bg %job

三、Linux 网络配置

1. 网络接口配置

  • 查看网络接口ifconfigip addr
  • 配置网络接口:编辑 /etc/network/interfaces(Debian/Ubuntu)或 /etc/sysconfig/network-scripts/ifcfg-eth0(CentOS/RHEL)
  • 重启网络服务systemctl restart networking(Debian/Ubuntu)或 systemctl restart network(CentOS/RHEL)

2. 网络连接

  • 测试网络连接ping hostname
  • 查看路由表route -nip route
  • 添加路由route add -net network netmask mask gw gateway
  • 删除路由route del -net network netmask mask
  • 查看网络状态netstat -tulnss -tuln
  • 查看 DNS 配置cat /etc/resolv.conf
  • 设置 DNS:编辑 /etc/resolv.conf

3. 防火墙配置

  • 查看防火墙状态systemctl status firewalld(CentOS/RHEL)或 ufw status(Ubuntu)
  • 开启防火墙systemctl start firewalldufw enable
  • 关闭防火墙systemctl stop firewalldufw disable
  • 添加防火墙规则firewall-cmd --add-port=80/tcp --permanent(CentOS/RHEL)或 ufw allow 80/tcp(Ubuntu)
  • 重载防火墙firewall-cmd --reloadufw reload

四、Linux 系统管理

1. 软件包管理

  • Debian/Ubuntu

    • 更新软件包列表:apt update
    • 安装软件包:apt install package
    • 升级软件包:apt upgrade
    • 移除软件包:apt remove package
    • 清理缓存:apt clean
  • CentOS/RHEL

    • 更新软件包列表:yum updatednf update
    • 安装软件包:yum install packagednf install package
    • 升级软件包:yum upgradednf upgrade
    • 移除软件包:yum remove packagednf remove package
    • 清理缓存:yum clean alldnf clean all

2. 系统服务管理

  • 查看服务状态systemctl status service
  • 启动服务systemctl start service
  • 停止服务systemctl stop service
  • 重启服务systemctl restart service
  • 启用服务systemctl enable service(开机自启)
  • 禁用服务systemctl disable service(禁止开机自启)
  • 查看所有服务systemctl list-units --type=service

3. 系统监控

  • 查看系统负载uptimew
  • 查看内存使用free -h
  • 查看磁盘使用df -h
  • 查看磁盘 I/Oiostat
  • 查看网络流量iftopnethogs
  • 查看系统日志tail -f /var/log/syslog(Debian/Ubuntu)或 tail -f /var/log/messages(CentOS/RHEL)

4. 系统备份与恢复

  • 备份文件tar -czvf backup.tar.gz directory
  • 恢复文件tar -xzvf backup.tar.gz
  • 备份 MBRdd if=/dev/sda of=mbr.backup bs=512 count=1
  • 恢复 MBRdd if=mbr.backup of=/dev/sda bs=512 count=1
  • 使用 rsync 同步rsync -av source destination

五、Linux 高级操作

1. Shell 脚本

  • 创建脚本vim script.sh
  • 添加执行权限chmod +x script.sh
  • 运行脚本./script.shbash script.sh

脚本示例

bash
#!/bin/bash
# 备份脚本
date=$(date +%Y-%m-%d)
tar -czvf /backup/www_$date.tar.gz /var/www/html
echo "Backup completed: /backup/www_$date.tar.gz"

2. 定时任务

  • 编辑定时任务crontab -e
  • 查看定时任务crontab -l
  • 删除定时任务crontab -r

定时任务格式

* * * * * command
- - - - -
| | | | |
| | | | +----- 星期几 (0-7) [0和7都表示星期日]
| | | +------- 月份 (1-12)
| | +--------- 日期 (1-31)
| +----------- 小时 (0-23)
+------------- 分钟 (0-59)

示例

# 每天凌晨 1 点备份
0 1 * * * /root/backup.sh

# 每小时执行一次
0 * * * * /root/check.sh

3. 系统调优

  • 修改内核参数:编辑 /etc/sysctl.conf
  • 修改文件描述符限制:编辑 /etc/security/limits.conf
  • 优化磁盘 I/O:调整 vm.swappiness 参数
  • 优化网络:调整 net.core.somaxconn 等参数

4. 故障排查

  • 查看系统日志journalctltail -f /var/log/syslog
  • 检查硬件状态smartctl -a /dev/sda(硬盘)
  • 检查内存memtest86+
  • 检查网络traceroute hostnamemtr hostname
  • 检查进程ps aux | grep process
  • 检查磁盘fsck /dev/sda1(未挂载状态)

六、Linux 服务器配置

1. Web 服务器

  • 安装 Apacheapt install apache2yum install httpd
  • 安装 Nginxapt install nginxyum install nginx
  • 配置虚拟主机:编辑 /etc/apache2/sites-available/(Apache)或 /etc/nginx/conf.d/(Nginx)
  • 启动服务systemctl start apache2systemctl start nginx

2. 数据库服务器

  • 安装 MySQL/MariaDBapt install mysql-serveryum install mariadb-server
  • 安装 PostgreSQLapt install postgresqlyum install postgresql-server
  • 启动服务systemctl start mysqlsystemctl start postgresql
  • 设置密码mysql_secure_installation(MySQL)或 passwd postgres(PostgreSQL)

3. SSH 服务器

  • 安装 SSHapt install openssh-serveryum install openssh-server
  • 启动服务systemctl start sshsystemctl start sshd
  • 配置 SSH:编辑 /etc/ssh/sshd_config
  • 生成密钥ssh-keygen
  • 复制密钥ssh-copy-id user@hostname

4. FTP 服务器

  • 安装 vsftpdapt install vsftpdyum install vsftpd
  • 启动服务systemctl start vsftpd
  • 配置 FTP:编辑 /etc/vsftpd.conf

七、Linux 安全

1. 安全最佳实践

  • 定期更新系统apt update && apt upgradeyum update
  • 使用防火墙:配置 firewalldufw
  • 禁用不必要的服务systemctl disable service
  • 使用强密码:设置复杂密码,定期更换
  • 使用 SSH 密钥:禁用密码登录,使用密钥认证
  • 限制 root 登录:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no
  • 使用 sudo:普通用户使用 sudo 执行特权命令
  • 定期备份:备份重要数据
  • 监控系统:使用监控工具监控系统状态

2. 常见安全威胁

  • 暴力破解:尝试猜测密码
  • DDoS 攻击:分布式拒绝服务攻击
  • 恶意软件:病毒、木马、勒索软件
  • SQL 注入:通过 SQL 语句漏洞攻击数据库
  • 跨站脚本:通过网页注入恶意脚本
  • 权限提升:利用系统漏洞提升权限

3. 安全工具

  • 防火墙firewalldufwiptables
  • 入侵检测fail2banOSSEC
  • 漏洞扫描NmapOpenVAS
  • 安全审计Lynis
  • 文件完整性AIDE

八、Linux 容器与虚拟化

1. Docker

  • 安装 Dockerapt install docker.ioyum install docker
  • 启动 Dockersystemctl start docker
  • 运行容器docker run -d --name container_name image_name
  • 查看容器docker ps
  • 管理容器docker start/stop/restart container_name

2. KVM 虚拟化

  • 安装 KVMapt install qemu-kvm libvirt-binyum install qemu-kvm libvirt
  • 启动 libvirtsystemctl start libvirtd
  • 管理虚拟机:使用 virsh 命令或 virt-manager 图形界面

九、Linux 存储管理

1. 磁盘分区

  • 查看磁盘fdisk -llsblk
  • 分区fdisk /dev/sda
  • 格式化mkfs.ext4 /dev/sda1
  • 挂载mount /dev/sda1 /mnt
  • 自动挂载:编辑 /etc/fstab

2. LVM(逻辑卷管理)

  • 创建物理卷pvcreate /dev/sda1
  • 创建卷组vgcreate vg_name /dev/sda1
  • 创建逻辑卷lvcreate -L 10G -n lv_name vg_name
  • 格式化mkfs.ext4 /dev/vg_name/lv_name
  • 挂载mount /dev/vg_name/lv_name /mnt

3. RAID 配置

  • 创建 RAIDmdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
  • 查看 RAIDmdadm --detail /dev/md0
  • 格式化mkfs.ext4 /dev/md0
  • 挂载mount /dev/md0 /mnt

十、Linux 监控与日志

1. 系统监控

  • top:实时查看进程和系统资源
  • htop:交互式进程查看器
  • vmstat:虚拟内存统计
  • iostat:磁盘 I/O 统计
  • netstat:网络连接统计
  • ss:socket 统计
  • free:内存使用统计
  • df:磁盘使用统计

2. 日志管理

  • 系统日志/var/log/syslog(Debian/Ubuntu)或 /var/log/messages(CentOS/RHEL)
  • 安全日志/var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(CentOS/RHEL)
  • 应用日志/var/log 目录下的对应应用日志
  • 日志轮转logrotate 配置
  • 查看日志tail -fgrepless

3. 监控工具

  • Prometheus:开源监控系统
  • Grafana:数据可视化平台
  • Nagios:网络监控工具
  • Zabbix:企业级监控解决方案
  • ELK Stack:日志收集和分析(Elasticsearch, Logstash, Kibana)

十一、Linux 命令行技巧

1. 常用命令

  • find:查找文件

    bash
    find /home -name "*.txt" -type f
    find /var -size +10M
  • grep:搜索文本

    bash
    grep "error" /var/log/syslog
    grep -r "pattern" /home
  • sed:流编辑器

    bash
    sed 's/old/new/g' file.txt
    sed -i 's/old/new/g' file.txt  # 直接修改文件
  • awk:文本处理工具

    bash
    awk '{print $1}' file.txt
    awk -F: '{print $1,$3}' /etc/passwd
  • sort:排序

    bash
    sort file.txt
    sort -n file.txt  # 数值排序
    sort -r file.txt  # 反向排序
  • uniq:去重

    bash
    uniq file.txt
    sort file.txt | uniq
  • cut:剪切文本

    bash
    cut -d: -f1 /etc/passwd
    cut -c1-5 file.txt
  • paste:合并文件

    bash
    paste file1.txt file2.txt
  • tr:转换字符

    bash
    tr 'a-z' 'A-Z' < file.txt
    tr -d ' ' < file.txt  # 删除空格

2. 快捷键

  • Ctrl+C:终止当前命令
  • Ctrl+D:退出当前 shell
  • Ctrl+Z:暂停当前命令
  • Ctrl+A:光标移动到行首
  • Ctrl+E:光标移动到行尾
  • Ctrl+K:删除从光标到行尾的内容
  • Ctrl+U:删除从光标到行首的内容
  • Ctrl+L:清屏
  • Tab:自动补全
  • 上下箭头:查看命令历史
  • Ctrl+R:搜索命令历史

十二、Linux 常见问题与解决方案

1. 系统无法启动

  • 原因:引导加载程序损坏、文件系统损坏、内核问题等
  • 解决方案:使用救援模式修复,重新安装引导加载程序,修复文件系统

2. 网络连接问题

  • 原因:网络配置错误、防火墙阻止、硬件问题等
  • 解决方案:检查网络配置,检查防火墙规则,测试网络硬件

3. 磁盘空间不足

  • 原因:日志文件过大、临时文件过多、数据文件占用空间等
  • 解决方案:清理日志文件,删除临时文件,扩展磁盘空间

4. 服务启动失败

  • 原因:配置错误、依赖问题、权限问题等
  • 解决方案:检查服务配置,安装依赖,修复权限

5. 系统性能问题

  • 原因:资源不足、进程过多、配置不当等
  • 解决方案:增加资源,优化进程,调整系统配置

十三、总结

Linux 是一种强大、稳定、安全的操作系统,广泛应用于服务器、嵌入式设备和个人计算机。掌握 Linux 运维知识对于系统管理员、开发人员和 IT 专业人士来说至关重要。

通过学习 Linux 的基本操作、网络配置、系统管理、高级操作、服务器配置、安全管理、容器与虚拟化、存储管理、监控与日志以及命令行技巧,你可以成为一名合格的 Linux 运维工程师。

Linux 社区活跃,资源丰富,有大量的文档和教程可供参考。持续学习和实践是掌握 Linux 的关键,随着经验的积累,你将能够更高效地管理和维护 Linux 系统,解决各种复杂的问题。

作为一名 Linux 运维工程师,你将在现代 IT 基础设施中发挥重要作用,为企业的稳定运行和业务发展提供有力支持。

Released under the MIT License.