1. Linux命令基础与CentOS 7环境准备
作为Linux系统管理员,掌握常用命令是日常工作的基本功。CentOS 7作为企业级Linux发行版的代表,其稳定性和安全性使其成为服务器环境的首选。在开始命令学习前,我们需要先理解几个核心概念:
- Shell :用户与Linux内核交互的接口,CentOS 7默认使用Bash(Bourne Again Shell)
- 终端 :提供命令行界面的程序,可以是物理控制台或SSH远程连接
- 命令结构 :通常由"命令 [选项] [参数]"组成,选项用"-"或"--"引导
提示:所有命令都区分大小写,建议在虚拟机或测试环境中练习,避免直接在生产环境操作
1.1 CentOS 7最小化安装建议
对于学习命令的环境,推荐使用最小化安装:
# 查看系统版本确认环境
cat /etc/redhat-release
uname -r
典型最小化安装后的初始操作:
# 更新系统
yum update -y
# 安装常用工具
yum install -y vim wget curl net-tools
# 创建练习用的测试用户
useradd testuser
passwd testuser
2. 文件与目录操作命令精要
2.1 基础导航命令
pwd # 显示当前工作目录
cd # 切换目录
ls # 列出目录内容
实际应用场景示例:
# 进入用户家目录
cd ~
# 列出所有文件(包括隐藏文件)
ls -la
# 递归列出/var目录内容
ls -lR /var | less
2.2 文件操作进阶技巧
# 创建多层目录结构
mkdir -p project/{src,doc,log}
# 批量创建测试文件
touch file{1..10}.txt
# 安全删除(交互式确认)
rm -i *.txt
# 查找并删除7天前的日志文件
find /var/log -name "*.log" -mtime +7 -exec rm {} \;
注意:rm -rf命令极其危险,执行前务必确认路径。曾有工程师因误删根目录导致重大事故
3. 系统信息查询与监控
3.1 硬件信息获取
# CPU信息
lscpu
cat /proc/cpuinfo
# 内存使用情况
free -h
vmstat 1 5 # 每1秒刷新,共5次
# 磁盘信息
lsblk
df -hT
3.2 进程管理实战
# 查看进程树
pstree -p
# 动态监控进程
top
# 更友好的替代方案
htop # 需额外安装:yum install htop
# 杀死进程的几种方式
kill -9 PID # 强制终止
pkill -f "nginx" # 按名称终止
4. 用户与权限深度管理
4.1 用户组管理示例
# 创建开发组
groupadd developers
# 添加用户到组
usermod -aG developers testuser
# 验证组成员
groups testuser
4.2 权限控制实践
理解Linux权限模型:
rwx r-x r-x
│││ │││ │││
│││ │││ └─ 其他用户权限
│││ └┴─── 所属组权限
└┴┴───── 所有者权限
设置特殊权限位:
# 设置SUID(执行时以所有者身份运行)
chmod u+s /usr/bin/testapp
# 设置目录的SGID(新建文件继承组)
chmod g+s /shared_dir
# 设置粘滞位(只有所有者能删除)
chmod o+t /tmp/restricted
5. 软件包管理全攻略
5.1 YUM仓库配置
# 备份原有仓库配置
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
# 配置阿里云镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
5.2 软件管理常用操作
# 搜索软件包
yum search nginx
# 查看软件信息
yum info nginx
# 安装特定版本
yum install nginx-1.20.1
# 查看已安装软件
yum list installed | grep nginx
# 安全移除软件
yum autoremove nginx
6. 网络配置与故障排查
6.1 基础网络命令
# 查看IP配置
ip addr show
# 测试连通性
ping -c 4 baidu.com
# 路由追踪
traceroute google.com
# 查看开放端口
ss -tulnp
6.2 网络服务管理
# 传统服务管理
service network restart
# 现代systemd方式
systemctl restart network
# 查看服务状态
systemctl status firewalld
# 设置开机启动
systemctl enable httpd
7. 文本处理三剑客
7.1 grep文本搜索
# 递归搜索目录中的关键词
grep -r "error" /var/log/
# 显示匹配行前后内容
grep -A 3 -B 2 "critical" system.log
# 使用正则表达式
grep -E "^[0-9]{3}-[0-9]{4}" contacts.txt
7.2 sed流编辑器
# 替换文件内容
sed -i 's/old/new/g' file.txt
# 删除空白行
sed '/^$/d' input.txt > output.txt
# 提取特定行
sed -n '10,20p' access.log
7.3 awk数据处理
# 统计日志中不同状态码出现次数
awk '{print $9}' access.log | sort | uniq -c
# 计算CSV文件某列总和
awk -F',' '{sum+=$3} END {print sum}' data.csv
# 格式化输出系统用户
awk -F: '{printf "%-15s %s\n", $1, $6}' /etc/passwd
8. 磁盘管理与性能优化
8.1 磁盘使用分析
# 交互式磁盘使用分析
ncdu / # 需安装:yum install ncdu
# 查找大文件
find / -type f -size +100M -exec ls -lh {} \;
# 监控磁盘I/O
iotop -oP
8.2 LVM基础操作
# 查看物理卷
pvdisplay
# 创建卷组
vgcreate vg_data /dev/sdb
# 创建逻辑卷
lvcreate -L 10G -n lv_mysql vg_data
# 扩展逻辑卷
lvextend -L +5G /dev/vg_data/lv_mysql
resize2fs /dev/vg_data/lv_mysql
9. 系统服务与日志分析
9.1 journalctl日志管理
# 查看系统日志
journalctl -xe
# 按时间筛选
journalctl --since "2023-01-01" --until "2023-01-02"
# 按服务筛选
journalctl -u nginx
# 实时监控新日志
journalctl -f
9.2 定时任务配置
# 编辑当前用户crontab
crontab -e
# 查看系统crontab
cat /etc/crontab
# 常见示例 - 每天凌晨备份
0 3 * * * /usr/bin/rsync -avz /data/ backup:/backups
10. 安全加固实践
10.1 SSH安全配置
/etc/ssh/sshd_config
关键参数:
PermitRootLogin no
PasswordAuthentication no
AllowUsers admin backup
Port 2222
应用配置:
systemctl restart sshd
# 测试连接前保持现有会话
ssh -p 2222 admin@server
10.2 防火墙规则示例
# 放行HTTP/HTTPS
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
# 限制SSH访问IP
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
# 重载配置
firewall-cmd --reload
11. 性能监控与优化
11.1 实时系统监控
# 综合监控
glances # 需安装:yum install glances
# 内存分析
smem -s swap -r
# 网络流量监控
nload
11.2 调优参数示例
# 临时修改内核参数
sysctl -w vm.swappiness=10
# 永久生效
echo "vm.swappiness = 10" >> /etc/sysctl.conf
sysctl -p
12. 备份与恢复策略
12.1 文件系统备份
# 完整备份
tar -cvpzf /backups/full_backup_$(date +%F).tar.gz \
--exclude=/backups \
--exclude=/proc \
--exclude=/tmp \
/
12.2 数据库备份示例
# MySQL备份
mysqldump -u root -p --all-databases | gzip > /backups/mysql_$(date +%F).sql.gz
# PostgreSQL备份
pg_dumpall | gzip > /backups/pgsql_$(date +%F).sql.gz
13. 容器化环境基础
13.1 Docker快速入门
# 安装Docker
yum install -y docker
systemctl start docker
# 运行测试容器
docker run -it --rm centos:7 bash
# 查看运行容器
docker ps
13.2 Podman替代方案
# 安装Podman
yum install -y podman
# 无守护进程运行容器
podman run -d -p 8080:80 nginx
# 生成systemd服务文件
podman generate systemd --name my_nginx > /etc/systemd/system/my_nginx.service
14. 自动化运维基础
14.1 Shell脚本示例
#!/bin/bash
# 备份脚本示例
BACKUP_DIR="/backups/$(date +%F)"
mkdir -p $BACKUP_DIR
# 备份重要目录
tar -czf $BACKUP_DIR/etc.tar.gz /etc
tar -czf $BACKUP_DIR/var_www.tar.gz /var/www
# 保留最近7天备份
find /backups -type d -mtime +7 -exec rm -rf {} \;
14.2 计划任务集成
# 每天凌晨执行备份
0 2 * * * /usr/local/bin/backup_script.sh
# 每周日执行安全检查
0 4 * * 0 /usr/local/bin/security_check.sh
15. 常见问题排查指南
15.1 启动故障处理
# 查看启动日志
journalctl -b
# 救援模式操作
# 1. 重启并在GRUB界面按e编辑
# 2. 在linux16行末尾添加 init=/bin/bash
# 3. Ctrl+x启动进入单用户模式
15.2 性能瓶颈定位
# 综合检查
sar -u 1 3 # CPU使用率
sar -r 1 3 # 内存使用
sar -b 1 3 # I/O统计
# 进程级监控
pidstat 1
16. 命令使用高级技巧
16.1 命令组合应用
# 统计当前目录各种类型文件数量
find . -type f | awk -F. '{print $NF}' | sort | uniq -c | sort -nr
# 监控目录变化
watch -n 1 'ls -l | awk "{print \$5,\$9}"'
16.2 历史命令优化
# 设置历史命令格式
export HISTTIMEFORMAT="%F %T "
# 忽略重复命令
export HISTCONTROL=ignoredups
# 增加历史记录数量
export HISTSIZE=10000
17. 终端效率工具
17.1 tmux多会话管理
# 新建会话
tmux new -s dev
# 分离会话
Ctrl+b d
# 恢复会话
tmux attach -t dev
# 多窗口管理
Ctrl+b c # 新建窗口
Ctrl+b n # 下一个窗口
17.2 终端复用技巧
# 同时操作多台服务器
# 安装工具
yum install -y epel-release
yum install -y clusterssh
# 配置集群
cssh server1 server2 server3
18. 系统调优实战
18.1 文件系统优化
# 调整ext4文件系统参数
tune2fs -o journal_data_writeback /dev/sda1
tune2fs -O ^has_journal /dev/sda1
# 优化挂载选项
vim /etc/fstab
# 添加:noatime,nodiratime,data=writeback
18.2 内核参数优化
/etc/sysctl.conf
关键参数:
# 提高TCP性能
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
# 提高内存管理
vm.swappiness = 10
vm.dirty_ratio = 40
19. 版本控制集成
19.1 Git基础操作
# 安装Git
yum install -y git
# 克隆仓库
git clone https://github.com/user/repo.git
# 提交更改
git add .
git commit -m "更新配置"
git push origin master
19.2 配置管理示例
# 备份重要配置文件
git init /etc
git add /etc/ssh/sshd_config
git commit -m "初始SSH配置"
# 后续更改跟踪
git diff
git commit -a -m "更新SSH配置"
20. 持续学习建议
-
手册页
:任何命令后加
--help或man 命令查看详细文档 -
信息页
:
info 命令获取更结构化文档(如coreutils) -
在线资源
:
- Linux文档项目(tldp.org)
- RHEL官方文档(access.redhat.com)
-
实践环境
:
# 创建安全的练习环境 docker run -it --rm centos:7 bash
最后分享一个实用技巧:使用
alias
创建常用命令的快捷方式,例如:
alias ll='ls -alF'
alias grep='grep --color=auto'
alias update='yum update -y && yum upgrade -y'
将这些添加到
~/.bashrc
中可永久生效

172

被折叠的 条评论
为什么被折叠?



