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.sh3. 系统调优
- 修改内核参数:编辑
/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:查找文件
bashfind /home -name "*.txt" -type f find /var -size +10Mgrep:搜索文本
bashgrep "error" /var/log/syslog grep -r "pattern" /homesed:流编辑器
bashsed 's/old/new/g' file.txt sed -i 's/old/new/g' file.txt # 直接修改文件awk:文本处理工具
bashawk '{print $1}' file.txt awk -F: '{print $1,$3}' /etc/passwdsort:排序
bashsort file.txt sort -n file.txt # 数值排序 sort -r file.txt # 反向排序uniq:去重
bashuniq file.txt sort file.txt | uniqcut:剪切文本
bashcut -d: -f1 /etc/passwd cut -c1-5 file.txtpaste:合并文件
bashpaste file1.txt file2.txttr:转换字符
bashtr '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 基础设施中发挥重要作用,为企业的稳定运行和业务发展提供有力支持。