Linux系统管理
Linux 是服务器领域最流行的开源操作系统,具有稳定、安全、开源免费等优势。
系统信息查看
# 查看系统版本
uname -a
lsb_release -a
# 查看 CPU 信息
cat /proc/cpuinfo
# 查看内存信息
cat /proc/meminfo
# 显示架构
arch
# 查看当前系统时间
date关机与重启
关机顺序
Linux 服务器一般不需要关机。必须关机时,正确的顺序是:sync > shutdown > reboot/halt
# 将内存数据同步到硬盘
sync
# 立刻关机
shutdown -h now
# 指定时间关机
shutdown -h 20:25
# 十分钟后关机
shutdown -h +10
# 系统重启
shutdown -r now
# 或
reboot
# 关闭系统
halt帮助命令
# 查看简要说明
whatis command
# 详细说明文档
man command
# 查询关键字
man -k keyword
# 查看程序路径
which command
# 查看程序搜索路径
whereis commandman 章节分类
man 手册分为 9 个章节,不同类型的命令位于不同章节:
| 章节 | 类型 | 说明 |
|---|---|---|
1 | 用户命令 | 普通用户可执行的命令 |
2 | 系统调用 | 内核提供的函数,如 fork、read |
3 | C 库函数 | C 标准库函数,如 printf、malloc |
4 | 设备文件 | /dev 下的设备文件 |
5 | 文件格式 | 配置文件的格式说明,如 passwd、fstab |
6 | 游戏 | 游戏相关 |
7 | 杂项 | 协议、标准等 |
8 | 系统管理 | 管理员命令,如 fdisk、mount |
9 | 内核 | 内核相关文档 |
指定章节查看:
# 指定查看第 3 章的 printf
man 3 printf
# 跨章节搜索
man -k printf # 搜索所有章节中的 printf查看命令章节
使用 whatis command 可以看到命令所在的章节。例如 whatis chown 会显示 chown (1),说明 chown 在第 1 章。
文件属性
Linux 是一种多用户系统,不同用户拥有不同权限。
文件类型
| 字符 | 类型 | 说明 |
|---|---|---|
- | 普通文件 | 文本、图片、可执行文件等 |
d | 目录 | 文件夹 |
l | 链接文件 | 快捷方式 |
b | 块设备 | 硬盘、U盘等 |
c | 字符设备 | 键盘、鼠标等 |
权限表示
rwx 三个字符为一组:
| 权限 | 数值 | 说明 |
|---|---|---|
| r | 4 | 可读 (read) |
| w | 2 | 可写 (write) |
| x | 1 | 可执行 (execute) |
# 查看文件属性
ll filename
ls -l filename管道与重定向
管道和重定向是 Linux 中非常重要的概念,用于组合命令、处理数据流。
管道 |
管道将前一个命令的输出作为后一个命令的输入:
# 查找进程并过滤
ps -ef | grep nginx
# 统计行数
ls -l | wc -l
# 排序并去重
cat file.txt | sort | uniq
# 查看前 10 行
ls -l /etc | head -10常见组合:
# 杀掉指定进程
ps -ef | grep msv8 | awk '{print $2}' | xargs kill -9
# 查找日志关键字并统计出现次数
grep "ERROR" app.log | wc -l
# 查看内存使用情况
free -h | grep Mem重定向
| 符号 | 说明 |
|---|---|
> | 输出重定向,覆盖 |
>> | 输出重定向,追加 |
< | 输入重定向 |
2> | 错误重定向 |
&> | 标准和错误重定向 |
# 将输出写入文件(覆盖)
echo "hello" > output.txt
# 追加到文件
echo "world" >> output.txt
# 将错误信息写入文件
command 2> error.log
# 标准和错误都重定向
command &> all.log
# 丢弃输出
command > /dev/null 2>&1标准文件描述符:
| 描述符 | 说明 |
|---|---|
0 | 标准输入 stdin |
1 | 标准输出 stdout |
2 | 标准错误 stderr |
# 将错误输出重定向到标准输出
command 2>&1
# 等价于
command > file.txt 2>&1here document
使用 here document 输入多行内容:
cat << EOF > config.txt
server {
listen 80;
server_name localhost;
}
EOFtee 命令
tee 可以在终端显示输出的同时写入文件:
# 同时输出到终端和文件
ls -l | tee list.txt
# 追加模式
ls -l | tee -a list.txt修改文件属性
# 更改文件属组(递归)
chgrp [-R] 属组名 文件名
# 更改文件属主
chown [-R] 属主名 文件名
# 同时更改属主和属组
chown [-R] 属主名:属组名 文件名
# 更改文件权限(数值方式)
chmod [-R] 755 filename
# rwx r-x r-x = 4+2+1 4+0+1 4+0+1 = 755
# 符号方式修改权限
chmod u=rwx,g=rx,o=r filename
chmod +x filename # 添加执行权限
chmod -x filename # 移除执行权限文件与目录管理
| 命令 | 说明 |
|---|---|
ls -a | 列出全部文件(含隐藏文件) |
ls -l | 长数据串列出,含属性和权限 |
cd | 切换目录 |
pwd | 显示当前目录 |
mkdir -p | 递归创建目录 |
rmdir | 删除空目录 |
cp -r | 递归复制目录 |
rm -rf | 强制递归删除 |
文件内容查看
| 命令 | 说明 |
|---|---|
cat | 从第一行开始显示 |
tac | 从最后一行开始显示 |
nl | 显示行号 |
more | 一页一页显示 |
less | 可往前翻页 |
head -n 10 | 只看头 10 行 |
tail -n 10 | 只看尾 10 行 |
文本处理
find 文件查找
# 按文件名查找
find . -name "*.txt"
# 正则匹配
find . -regex ".*\.list$"
# 按大小查找
find . -type f -size +2Mgrep 文本搜索
# 递归搜索
grep "class" . -R -n
# 显示行号
grep -n "keyword" file
# 反向匹配(不包含)
grep -v "keyword" filesed 文本替换
sed 是流编辑器,适合处理文本文件的批量替换。
# 替换(不修改原文件)
sed 's/text/replace_text/g' file
# 直接修改原文件
sed -i 's/text/replace_text/g' file
# 删除包含关键字的行
sed -i '/keyword/d' file
# 在指定行前插入内容
sed -i '3i\insert text' file
# 在指定行后插入内容
sed -i '3a\insert text' filesed 地址定位:
# 替换第 3 行的内容
sed '3s/old/new/' file
# 替换第 1-3 行
sed '1,3s/old/new/' file
# 替换所有包含 pattern 的行
sed '/pattern/s/old/new/' file
# 删除第 5 行
sed '5d' file
# 删除空行
sed '/^$/d' file
# 打印第 10-20 行
sed -n '10,20p' file备份文件
使用 -i 前加备份后缀:sed -i.bak 's/old/new/g' file 这会同时生成 file.bak 备份文件。
awk 数据处理
awk 是强大的文本分析工具,支持条件判断和计算。
# 打印第一列
awk '{print $1}' file
# 按分隔符处理(默认空格)
awk -F':' '{print $1}' /etc/passwd
# 杀掉指定进程
ps -fe | grep msv8 | awk '{print $2}' | xargs kill -9常用内置变量:
| 变量 | 说明 |
|---|---|
$0 | 整行内容 |
$1,$2...$n | 第 1,2,n 列 |
NF | 字段数量 |
NR | 行号 |
FNR | 当前文件的行号 |
FS | 字段分隔符 |
OFS | 输出字段分隔符 |
RS | 记录分隔符 |
ORS | 输出记录分隔符 |
# 打印第 1 和第 3 列
awk '{print $1, $3}' file
# 指定分隔符和输出分隔符
awk -F':' 'BEGIN{OFS=" - "} {print $1, $5}' /etc/passwd
# 打印行号和内容
awk '{print NR, $0}' file
# 打印最后一列
awk '{print $NF}' file
# 打印字段数大于 3 的行
awk 'NF > 3' file条件判断:
# 打印第 3 列大于 100 的行
awk '$3 > 100' file
# 多条件判断
awk '$3 > 100 && $4 == "active"' file
# 正则匹配
awk '/pattern/' file
# 如果条件
awk '{if($3 > 100) print $1}' file计算:
# 统计总和
awk '{sum += $3} END {print sum}' file
# 统计行数
awk 'END {print NR}' file
# 计算平均值
awk '{sum += $3} END {print sum/NR}' fileawk 格式化输出
使用 printf 进行格式化输出:
awk '{printf "%-10s %5d\n", $1, $3}' file用户和用户组管理
# 添加用户
useradd -s /bin/sh -g groupname username
# 删除用户
userdel -r username
# 修改用户
usermod -s /bin/ksh username
# 设置密码
passwd username
# 添加用户组
groupadd -g 101 groupname
# 修改用户组
groupmod -g 10000 groupname系统文件位置:
| 文件 | 说明 |
|---|---|
/etc/passwd | 用户信息 |
/etc/shadow | 密码信息 |
/etc/group | 组信息 |
磁盘管理
# 显示磁盘使用量
df -h
# 查看目录大小
du -sh *
# 查看当前目录大小
du -sh .
# 分区操作
fdisk -l进程管理
# 查看所有进程
ps -ef
# 查询进程 ID
pgrep -l process_name
# 查看端口占用
lsof -i:3306
# 分析线程栈
pmap PID
# 查看实时进程
top
# 杀掉进程
kill -9 PID系统监控
top 实时监控
# 交互式界面
top
# top 常用快捷键
# M 按内存使用排序
# P 按 CPU 使用排序
# q 退出
# 1 显示所有 CPU 核心
# c 显示完整命令路径
# k 杀死进程
# r 修改进程优先级# 非交互式查看
top -bn1 # 一次输出
top -bn2 -d 3 # 每 3 秒刷新一次,共 2 次
# 只看特定进程
top -p PIDsar 系统性能分析
sar 是最全面的性能监控工具,需要安装 sysstat 包:
# 安装
yum install sysstat
# 查看 CPU 使用
sar -u 1 3 # 每秒 1 次,共 3 次
# 查看内存使用
sar -r 1 3
# 查看 swap 使用
sar -S 1 3
# 查看 I/O 状况
sar -b 1 3
# 查看网络状况
sar -n DEV 1 3 # 查看网络设备
sar -n TCP 1 3 # 查看 TCP 连接
# 查看历史数据(默认保留一个月)
sar -u -f /var/log/sa/saXX常用选项:
| 选项 | 说明 |
|---|---|
-u | CPU 使用率 |
-r | 内存使用率 |
-b | I/O 和传输率 |
-n | 网络统计 |
-q | 队列长度和负载 |
-d | 磁盘使用 |
free 内存查看
# 查看内存(单位自动调整)
free -h
# 以 KB/MB/GB 显示
free -k # KB
free -m # MB
free -g # GB
# 显示总计行
free -t
# 周期性刷新
watch -n 1 free -hvmstat 虚拟内存统计
# 查看当前系统状态
vmstat
# 每秒刷新,共 3 次
vmstat 1 3
# 显示详细统计
vmstat -d # 磁盘
vmstat -p /dev/sda1 # 分区watch 定期执行
watch 用于定期执行命令并刷新显示:
# 每 2 秒执行一次
watch -n 2 command
# 高亮显示变化
watch -n 1 'ps -ef | grep nginx'
# 查看内存变化
watch -n 1 free -h
# 查看磁盘使用
watch -n 5 df -h打包与压缩
# 打包
tar -cvf etc.tar /etc
# 解包
tar -xvf demo.tar
# gzip 压缩
gzip demo.test
# 解压 gz 并解包
tar -xzvf demo.tar.gz
# 常用组合
tar -czvf archive.tar.gz /path # 压缩
tar -xzvf archive.tar.gz # 解压网络命令
netstat 网络连接状态
# 查看所有连接
netstat -a
# 查看 TCP 连接
netstat -at
# 查看 UDP 连接
netstat -au
# 查看监听端口
netstat -l
# 显示进程 ID
netstat -p
# 不解析主机名(加快速度)
netstat -n
# 查看端口占用
netstat -tlnp # 监听 TCP 端口
netstat -ulnp # 监听 UDP 端口
# 查看网络统计
netstat -s # 所有协议统计
netstat -st # TCP 统计
netstat -su # UDP 统计lsof 查看端口和文件
# 查看端口占用
lsof -i:3306
# 查看指定协议
lsof -i tcp
lsof -i udp
# 查看监听端口
lsof -i -sTCP:LISTEN
# 查看用户打开的文件
lsof -u username
# 查看进程打开的文件
lsof -p PID
# 恢复删除但未释放的文件
lsof +L1 # 查看链接数小于 1 的已删除文件route 查看路由表
# 查看路由表
route -n
# 添加默认网关
route add default gw 192.168.1.1
# 删除默认网关
route del default
# 添加静态路由
route add -net 192.168.2.0/24 gw 192.168.1.254
# 删除静态路由
route del -net 192.168.2.0/24scp 安全复制
# 下载文件
scp user@host:/path/file ./local/
# 上传文件
scp ./local/file user@host:/path/
# 复制目录
scp -r user@host:/path/dir ./local/
# 指定端口
scp -P 2222 file user@host:/path/
# 限制带宽
scp -l 1000 file user@host:/path/ # 限制 1000 Kbpssftp 安全文件传输
# 连接
sftp user@host
# 常用命令
get file.txt # 下载文件
get file.txt /tmp/ # 下载到指定目录
put file.txt # 上传文件
mget *.txt # 批量下载
mput *.txt # 批量上传
bye/exit/quit # 退出wget 下载工具
# 下载文件
wget https://example.com/file.tar.gz
# 后台下载
wget -b https://example.com/file.tar.gz
# 断点续传
wget -c https://example.com/file.tar.gz
# 下载并改名
wget -O newname.tar.gz https://example.com/oldname.tar.gz
# 限速下载
wget --limit-rate=300k https://example.com/file.tar.gz
# 后台运行并记录日志
wget -b -o download.log https://example.com/file.tar.gz
# 镜像网站
wget -r -p -np -k https://example.com/curl 请求工具
# GET 请求
curl https://api.example.com
# POST 请求
curl -X POST -d "name=test" https://api.example.com
# 带 Header
curl -H "Content-Type: application/json" https://api.example.com
# 下载并保存
curl -o file.tar.gz https://example.com/file.tar.gz
# 显示响应头
curl -I https://example.com
# 跟随重定向
curl -L https://example.com
# 跳过 SSL 验证
curl -k https://example.com
# 请求超时设置
curl --connect-timeout 10 --max-time 30 https://example.comvim 文本编辑器
vim 有三种主要模式:
- Normal(命令模式):默认模式,用于操作
- Insert(编辑模式):用于输入文本
- Visual(可视模式):用于选择文本
| 命令 | 说明 |
|---|---|
i | 进入编辑模式 |
Esc | 返回命令模式 |
:wq | 保存并退出 |
:q! | 不保存退出 |
/keyword | 搜索 |
:set nu | 显示行号 |
dd | 删除一行 |
yy | 复制一行 |
p | 粘贴 |
yum 包管理
# 安装
yum install package
# 删除
yum remove package
# 更新
yum update
# 搜索
yum search keyword
# 列出已安装
yum list installed国内 yum 源
# 备份原配置
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载阿里云源
wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
# 清理并重建缓存
yum clean all
yum makecachesystemd 服务管理
RHEL 7+ 采用 systemd 作为系统初始化进程,替代了 init。
systemd 优势:
- 服务并行启动,加快系统启动速度
- 按需启动服务,减少资源消耗
- 服务依赖管理更智能
- 支持日志统一管理
systemctl 常用命令:
# 启动/停止/重启
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
# 查看状态
systemctl status nginx
# 开机自启
systemctl enable nginx
systemctl disable nginx
# 检查状态
systemctl is-active nginx
systemctl is-enabled nginx服务配置文件位置:
| 目录 | 说明 |
|---|---|
/etc/ | 主配置文件目录 |
/usr/lib/systemd/system/ | 软件包提供的 unit 文件 |
/etc/systemd/system/ | 管理员创建的 unit 文件 |
源码包安装
适用于没有 RPM 包的软件,可自定义配置。
# 1. 下载并解压
tar xzvf FileName.tar.gz
cd FileDirectory
# 2. 编译配置
./configure --prefix=/usr/local/program
# 3. 编译
make
# 4. 安装
make install
# 5. 清理
make clean常见依赖库:
yum install gcc gcc-c++ make cmake \
apr* autoconf automake bison bzip2 \
openssl openssl-devel pcre pcre-devel \
zlib zlib-devel编译工具安装是 Linux 系统管理的基础操作之一。
存储管理
Linux 提供多种存储管理机制,涵盖文件系统、磁盘分区、RAID 阵列和 LVM 逻辑卷管理。
文件系统
文件系统决定了磁盘上数据的存储和组织方式。
常见文件系统
| 文件系统 | 特点 | 适用场景 |
|---|---|---|
| Ext4 | 第四代扩展文件系统,支持大文件、日志功能 | 通用场景 |
| XFS | 高性能日志文件系统,适合大文件 | 大文件服务器 |
| Btrfs | 支持快照、压缩、校验 | 下一代文件系统 |
磁盘分区与挂载
# 查看磁盘分区
fdisk -l
# 创建分区
fdisk /dev/sdb
# 在 fdisk 中:n 新建 → p 主分区 → w 保存
# 格式化
mkfs.ext4 /dev/sdb1
# 挂载
mount /dev/sdb1 /mnt
# 开机自动挂载(写入 fstab)
echo "/dev/sdb1 /mnt ext4 defaults 0 0" >> /etc/fstabfstab 字段说明
/dev/sdb1 /mnt ext4 defaults 0 0
- 第 1 列:设备路径
- 第 2 列:挂载点
- 第 3 列:文件系统类型
- 第 4 列:挂载选项
- 第 5 列:dump 备份(0=不备份)
- 第 6 列:fsck 顺序(0=不检查)
RAID 磁盘阵列
RAID(Redundant Array of Independent Disks)通过组合多块硬盘提高性能或数据冗余。
RAID 级别
| 级别 | 特点 | 冗余 | 最小盘数 |
|---|---|---|---|
| RAID 0 | 条带化,性能提升 | 无 | 2 |
| RAID 1 | 镜像,数据备份 | 有 | 2 |
| RAID 5 | 分布式奇偶校验 | 有 | 3 |
| RAID 10 | RAID 1+0组合 | 有 | 4 |
选择建议
- 追求性能:RAID 0
- 追求安全:RAID 1 或 RAID 10
- 平衡选择:RAID 5
mdadm 管理 RAID
# 创建 RAID 10(4 块盘)
mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# 查看 RAID 状态
mdadm -D /dev/md0
# 标记损坏盘
mdadm /dev/md0 -f /dev/sdb
# 移除损坏盘
mdadm /dev/md0 -r /dev/sdb
# 添加新盘替换
mdadm /dev/md0 -a /dev/sdfLVM 逻辑卷管理
LVM(Logical Volume Manager)支持动态调整分区大小,无需停机重新分区。
核心概念
物理卷 (PV) 物理卷 (PV)
│ │
└────┬────┬──────────┘
▼
卷组 (VG)
│
▼
┌─────────┐
│ 逻辑卷LV │ ← 可以动态扩展/缩减
└─────────┘| 概念 | 说明 |
|---|---|
| 物理卷 (PV) | 硬盘或分区,是 LVM 的底层存储 |
| 卷组 (VG) | 多个物理卷组合成的大池子 |
| 逻辑卷 (LV) | 从卷组中划分的逻辑分区,类似分区 |
LVM 操作流程
# 1. 创建物理卷
pvcreate /dev/sdb /dev/sdc
# 2. 创建卷组
vgcreate storage /dev/sdb /dev/sdc
# 3. 创建逻辑卷(-L 指定大小,-n 指定名称)
lvcreate -L 10G -n data storage
# 4. 格式化
mkfs.ext4 /dev/storage/data
# 5. 挂载
mount /dev/storage/data /mnt/data常用命令
| 类型 | 命令 | 说明 |
|---|---|---|
| PV | pvcreate | 创建物理卷 |
| PV | pvdisplay | 显示物理卷信息 |
| PV | pvs | 简要显示物理卷 |
| VG | vgcreate | 创建卷组 |
| VG | vgextend | 扩展卷组(添加 PV) |
| VG | vgdisplay | 显示卷组信息 |
| VG | vgs | 简要显示卷组 |
| LV | lvcreate | 创建逻辑卷 |
| LV | lvextend | 扩展逻辑卷 |
| LV | lvreduce | 缩减逻辑卷 |
| LV | lvdisplay | 显示逻辑卷信息 |
| LV | lvs | 简要显示逻辑卷 |
动态扩展
# 扩展逻辑卷
lvextend -L +5G /dev/storage/data
# 扩展文件系统(Ext4 使用 resize2fs)
resize2fs /dev/storage/data
# 如果是 XFS(只能扩大)
xfs_growfs /mnt/data服务管理
Linux 提供丰富的服务管理功能,涵盖常用服务的安装和配置。
服务管理基础
使用 systemctl 管理服务(RHEL 7+):
# 启动/停止/重启
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
# 查看状态
systemctl status nginx
# 开机自启
systemctl enable nginx
systemctl disable nginx
# 检查是否运行
systemctl is-active nginxWeb 服务
Nginx
Nginx 是轻量级高性能 Web 服务器,支持热部署。
# 安装
yum install nginx
# 启动
systemctl start nginx
# 重载配置(不中断连接)
nginx -s reload
# 停止
nginx -s stopApache HTTP Server
# 安装
yum install httpd
# 启动
systemctl start httpd
# 开机自启
systemctl enable httpd
# 配置 SELinux 允许端口
semanage port -a -t http_port_t -p tcp 80文件共享服务
NFS(Linux 之间共享)
NFS 允许 Linux 系统之间共享目录。
# 安装
yum install nfs-utils
# 配置导出(服务端)
echo "/share 192.168.10.0/24(rw,sync)" >> /etc/exports
# 启动服务
systemctl start rpcbind nfs
# 客户端挂载
mount -t nfs 192.168.10.1:/share /mntSamba(Linux 与 Windows 共享)
Samba 实现 Linux 与 Windows 之间的文件共享。
# 安装
yum install samba
# 启动
systemctl start smb
# 配置 /etc/samba/smb.conf
[share]
path = /share
browseable = yes
writable = yesvsftpd(FTP 服务)
# 安装
yum install vsftpd
# 启动
systemctl start vsftpd
systemctl enable vsftpd数据库服务
MariaDB/MySQL
# 安装
yum install mariadb-server mariadb
# 启动
systemctl start mariadb
systemctl enable mariadb
# 安全初始化
mysql_secure_installation
# 登录
mysql -u root -p常用操作:
-- 创建数据库
CREATE DATABASE linuxdb;
-- 创建用户并授权
CREATE USER 'linuxuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON linuxdb.* TO 'linuxuser'@'localhost';
FLUSH PRIVILEGES;代理缓存服务
Squid
Squid 是常用的代理缓存服务器。
# 安装
yum install squid
# 基础配置 /etc/squid/squid.conf
http_port 3128
cache_dir ufs /var/spool/squid 100 16 256
# 启动
systemctl start squid
systemctl enable squid常用服务端口
| 端口 | 服务 | 说明 |
|---|---|---|
| 22 | SSH | 远程管理 |
| 53 | DNS | 域名解析 |
| 80 | HTTP | Web 服务 |
| 443 | HTTPS | 安全 Web |
| 3306 | MySQL | 数据库 |
| 3128 | Squid | 代理服务 |
| 8080 | Tomcat | 应用服务器 |
网络管理
Linux 网络管理涵盖网络配置、SSH 远程管理和防火墙配置。
网络配置
查看网络状态
# 查看网卡配置与状态
ifconfig
ip addr
# 测试网络连通性
ping -c 4 192.168.10.10
# 查看网络连接状态
netstat -tuln
ss -tuln # 更现代的命令nmcli 网络管理
RHEL 7+ 使用 NetworkManager 管理网络配置:
# 查看所有网络连接
nmcli connection show
# 查看特定连接详情
nmcli con show eth0
# 创建网络会话
nmcli connection add con-name company ifname eth0 autoconnect no \
type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
# 激活/断开网络会话
nmcli connection up company
nmcli connection down company网卡绑定
网卡绑定(Bonding)提高网络冗余和负载均衡能力。
mode6(平衡负载模式):两块网卡同时工作,自动备援,无需交换机支持
# 配置 bond0 绑定
vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=6SSH 远程管理
SSH(Secure Shell)是最安全的远程管理方式,数据加密传输。
基本使用
# 连接远程主机
ssh 192.168.10.10
# 指定用户连接
ssh root@192.168.10.10
# 密钥文件传输
scp /root/file.txt 192.168.10.10:/home/
# 目录传输
scp -r /local/dir root@192.168.10.10:/remote/密钥验证配置
免密码登录更安全,避免密码被窃取:
# 1. 在客户端生成密钥对(直接回车跳过密码)
ssh-keygen
# 2. 上传公钥到服务器
ssh-copy-id 192.168.10.10
# 3. 修改 sshd_config 禁用密码验证
vim /etc/ssh/sshd_config
PasswordAuthentication no
# 4. 重启服务
systemctl restart sshdsshd_config 常用参数
| 参数 | 说明 | 推荐值 |
|---|---|---|
Port | SSH 服务端口 | 22(可改非标准端口) |
PermitRootLogin | 允许 root 登录 | no |
PasswordAuthentication | 允许密码验证 | no |
PubkeyAuthentication | 允许公钥验证 | yes |
PermitEmptyPasswords | 禁止空密码 | no |
防火墙
firewalld(RHEL 7+)
firewalld 支持区域概念和运行时/永久配置:
# 查看默认区域
firewall-cmd --get-default-zone
# 查看活动区域
firewall-cmd --get-active-zones
# 放行服务
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
# 放行端口
firewall-cmd --permanent --add-port=80/tcp
# 重载配置
firewall-cmd --reload
# 查看已开放
firewall-cmd --list-services
firewall-cmd --list-ports永久配置
--permanent 参数表示永久配置,不加则只影响当前会话。
iptables
传统的包过滤防火墙:
# 查看规则
iptables -L -n
# 允许来自特定网段
iptables -A INPUT -s 192.168.10.0/24 -j ACCEPT
# 允许特定端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 允许已建立连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 设置默认策略
iptables -P INPUT DROPShell 脚本
Shell 脚本的语法体系(变量、运算符、流程控制、函数、重定向等)详见 shell脚本。
环境变量
| 变量 | 说明 |
|---|---|
HOME | 当前用户主目录 |
PATH | 命令搜索路径 |
PWD | 当前工作目录 |
SHELL | 当前 shell 类型 |
USER | 当前用户名 |
LANG | 系统语言 |
PS1 | 命令提示符 |
# 查看所有环境变量
env
echo $PATH
# 设置临时环境变量
export VAR_NAME=value
# 永久生效:添加到 ~/.bashrc
echo 'export VAR_NAME=value' >> ~/.bashrc
source ~/.bashrc命令别名
alias ll='ls -la' # 创建别名
alias # 查看所有别名
unalias ll # 删除别名
# 永久保存:写入 ~/.bashrcShell 配置文件
| 文件 | 说明 | 生效时机 |
|---|---|---|
/etc/profile | 系统级配置 | 所有用户登录时 |
~/.bash_profile | 用户级登录配置 | 用户登录时(优先) |
~/.bashrc | 用户级 shell 配置 | 打开交互式 shell 时 |
~/.bash_logout | 登出时执行 | 用户退出登录时 |
修改配置后生效
source ~/.bashrc
# 或
. ~/.bashrc