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 now 或 poweroff
  • 重启系统:reboot 或 shutdown -r now
  • 暂停系统:systemctl suspend

2. 用户管理 ​

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

3. 文件系统操作 ​

  • 查看当前目录:pwd
  • 切换目录:cd directory
  • 列出文件:ls(ls -l 详细信息,ls -a 显示隐藏文件)
  • 创建目录:mkdir directory(mkdir -p 创建嵌套目录)
  • 删除目录:rmdir directory(空目录)或 rm -rf directory(递归删除)
  • 创建文件:touch file 或 echo content > file
  • 编辑文件:vim file 或 nano file
  • 查看文件内容:cat file、less file、more 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. 进程管理 ​

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

三、Linux 网络配置 ​

1. 网络接口配置 ​

  • 查看网络接口:ifconfig 或 ip 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 -n 或 ip route
  • 添加路由:route add -net network netmask mask gw gateway
  • 删除路由:route del -net network netmask mask
  • 查看网络状态:netstat -tuln 或 ss -tuln
  • 查看 DNS 配置:cat /etc/resolv.conf
  • 设置 DNS:编辑 /etc/resolv.conf

3. 防火墙配置 ​

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

四、Linux 系统管理 ​

1. 软件包管理 ​

  • Debian/Ubuntu:

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

    • 更新软件包列表:yum update 或 dnf update
    • 安装软件包:yum install package 或 dnf install package
    • 升级软件包:yum upgrade 或 dnf upgrade
    • 移除软件包:yum remove package 或 dnf remove package
    • 清理缓存:yum clean all 或 dnf 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. 系统监控 ​

  • 查看系统负载:uptime 或 w
  • 查看内存使用:free -h
  • 查看磁盘使用:df -h
  • 查看磁盘 I/O:iostat
  • 查看网络流量:iftop 或 nethogs
  • 查看系统日志: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
  • 备份 MBR:dd if=/dev/sda of=mbr.backup bs=512 count=1
  • 恢复 MBR:dd 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.sh 或 bash 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. 故障排查 ​

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

六、Linux 服务器配置 ​

1. Web 服务器 ​

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

2. 数据库服务器 ​

  • 安装 MySQL/MariaDB:apt install mysql-server 或 yum install mariadb-server
  • 安装 PostgreSQL:apt install postgresql 或 yum install postgresql-server
  • 启动服务:systemctl start mysql 或 systemctl start postgresql
  • 设置密码:mysql_secure_installation(MySQL)或 passwd postgres(PostgreSQL)

3. SSH 服务器 ​

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

4. FTP 服务器 ​

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

七、Linux 安全 ​

1. 安全最佳实践 ​

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

2. 常见安全威胁 ​

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

3. 安全工具 ​

  • 防火墙:firewalld、ufw、iptables
  • 入侵检测:fail2ban、OSSEC
  • 漏洞扫描:Nmap、OpenVAS
  • 安全审计:Lynis
  • 文件完整性:AIDE

八、Linux 容器与虚拟化 ​

1. Docker ​

  • 安装 Docker:apt install docker.io 或 yum install docker
  • 启动 Docker:systemctl start docker
  • 运行容器:docker run -d --name container_name image_name
  • 查看容器:docker ps
  • 管理容器:docker start/stop/restart container_name

2. KVM 虚拟化 ​

  • 安装 KVM:apt install qemu-kvm libvirt-bin 或 yum install qemu-kvm libvirt
  • 启动 libvirt:systemctl start libvirtd
  • 管理虚拟机:使用 virsh 命令或 virt-manager 图形界面

九、Linux 存储管理 ​

1. 磁盘分区 ​

  • 查看磁盘:fdisk -l 或 lsblk
  • 分区: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 配置 ​

  • 创建 RAID:mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
  • 查看 RAID:mdadm --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 -f、grep、less

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.