1. Linux系统安装实战指南
刚接触Linux的新手往往会被各种发行版和安装选项搞得晕头转向。作为从CentOS 7时代就开始折腾的老鸟,我总结了一套适合国内网络环境的安装方案。推荐使用CentOS Stream或Ubuntu LTS版本,这两个发行版既有企业级稳定性,又保持了较新的软件包。
安装时需要注意几个关键点:
- 分区方案:建议至少划分/(30G)、/home(剩余空间)和swap(内存1.5倍)
- 软件选择:最小化安装后手动添加所需组件,避免装一堆用不到的软件
- 网络配置:建议使用NetworkManager而非传统network服务
- 镜像源:安装完成后立即替换为国内源(阿里云/清华/中科大)
重要提示:UEFI启动模式下务必创建EFI分区(300MB以上),否则会导致安装失败
2. 开发环境配置全攻略
2.1 基础工具链配置
安装完系统后,第一件事就是配置高效的开发环境。我的标准配置流程如下:
bash复制# 基础编译环境
sudo yum groupinstall "Development Tools" # CentOS
sudo apt install build-essential # Ubuntu
# 版本控制工具
sudo yum install git
git config --global user.name "YourName"
git config --global user.email "your@email.com"
2.2 编程语言环境
不同语言环境的配置要点:
Python环境
bash复制sudo yum install python3-pip
pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
Java环境
bash复制# OpenJDK安装
sudo yum install java-11-openjdk-devel
# 环境变量配置
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' >> ~/.bashrc
3. 系统优化与常用配置
3.1 性能调优技巧
- 关闭不必要的服务:
sudo systemctl disable bluetooth - 调整swappiness值:
echo 'vm.swappiness=10' >> /etc/sysctl.conf - SSD优化:启用TRIM,
sudo systemctl enable fstrim.timer
3.2 网络配置进阶
配置静态IP示例:
bash复制nmcli con mod eth0 ipv4.addresses 192.168.1.100/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con mod eth0 ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con up eth0
4. 终端生存指南:必备命令大全
4.1 文件操作黄金命令
bash复制# 查找并处理文件
find /var/log -name "*.log" -mtime +30 -exec rm {} \;
# 快速统计代码行数
find . -name "*.py" | xargs wc -l
# 实时监控日志
tail -f /var/log/messages
4.2 系统监控三板斧
bash复制# 综合监控
htop
# 磁盘分析
ncdu /
# 网络监控
nethogs
5. 高效工作流配置
5.1 Shell定制技巧
在~/.bashrc中添加这些实用配置:
bash复制# 历史命令增强
export HISTSIZE=10000
export HISTFILESIZE=20000
shopt -s histappend
# 智能补全
bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'
5.2 SSH安全优化
配置/etc/ssh/sshd_config:
bash复制Port 2222
PermitRootLogin no
PasswordAuthentication no
ClientAliveInterval 300
6. 故障排查实战手册
6.1 常见问题速查表
| 故障现象 | 排查命令 | 解决方案 |
|---|---|---|
| 无法联网 | ip a, ping 8.8.8.8 |
检查网卡状态和路由 |
| 磁盘满 | df -h, du -sh * |
清理大文件/日志 |
| 服务异常 | journalctl -xe |
查看详细错误日志 |
6.2 系统救援技巧
当系统无法启动时:
- 使用LiveCD进入救援模式
- 挂载原系统分区:
mount /dev/sda1 /mnt - 修复grub:
grub2-install /dev/sda - 重建内核镜像:
dracut --force
7. 进阶工具推荐
7.1 开发辅助工具
- 代码搜索:
ag(the_silver_searcher) - JSON处理:
jq - 网络调试:
httpie
7.2 系统管理神器
- 进程监控:
glances - 日志分析:
lnav - 批量操作:
ansible
8. 安全加固checklist
- 定期更新:
sudo yum update -y - 防火墙配置:
firewall-cmd --permanent --add-service=http - 用户权限审计:
sudo ausearch -m USER_ROLE_CHANGE - 关键文件监控:
sudo auditctl -w /etc/passwd -p wa
9. 性能调优实战
9.1 内存优化
bash复制# 查看内存使用
free -m
# 清理缓存
echo 3 > /proc/sys/vm/drop_caches
9.2 IO性能测试
bash复制# 测试磁盘速度
hdparm -Tt /dev/sda
# 测试随机读写
fio --name=randread --ioengine=libaio --rw=randread --bs=4k --numjobs=4 --size=1G --runtime=60 --time_based --group_reporting
10. 容器化准备
10.1 Docker环境配置
bash复制# CentOS安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
# 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
11. 实用脚本集锦
11.1 自动备份脚本
bash复制#!/bin/bash
BACKUP_DIR="/backups"
DATE=$(date +%Y%m%d)
tar -czf $BACKUP_DIR/fullbackup-$DATE.tar.gz --exclude=/proc --exclude=/sys --exclude=$BACKUP_DIR /
11.2 日志清理脚本
bash复制find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
12. 终端美化方案
12.1 Oh My Zsh配置
bash复制# 安装
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 主题配置
ZSH_THEME="agnoster"
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
12.2 Tmux配置
~/.tmux.conf示例:
bash复制set -g mouse on
set -g base-index 1
bind | split-window -h
bind - split-window -v
13. 网络服务搭建
13.1 Nginx快速部署
bash复制sudo yum install nginx
sudo systemctl start nginx
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
13.2 Samba共享配置
/etc/samba/smb.conf示例:
bash复制[share]
path = /data/share
valid users = user1
writable = yes
browseable = yes
14. 内核调优技巧
14.1 参数优化
/etc/sysctl.conf关键配置:
bash复制net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
fs.file-max = 65535
14.2 模块管理
bash复制# 查看已加载模块
lsmod
# 加载新模块
modprobe module_name
15. 系统监控方案
15.1 基础监控
bash复制# CPU监控
mpstat -P ALL 1
# 磁盘IO监控
iostat -x 1
15.2 告警配置
使用mailx配置邮件告警:
bash复制echo "Disk space warning" | mail -s "Alert" admin@example.com
16. 批量操作技巧
16.1 并行处理
bash复制# 使用xargs并行处理
find . -name "*.log" | xargs -P 4 -I {} gzip {}
16.2 远程批量执行
bash复制# 使用pdsh批量执行
pdsh -w node[1-10] "yum update -y"
17. 时间同步配置
17.1 Chrony配置
/etc/chrony.conf关键配置:
bash复制server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
17.2 时区设置
bash复制timedatectl set-timezone Asia/Shanghai
18. 软件编译指南
18.1 标准编译流程
bash复制./configure --prefix=/usr/local
make -j$(nproc)
sudo make install
18.2 依赖管理
bash复制# 查找依赖
ldd /usr/bin/program
# 安装开发库
sudo yum install -y openssl-devel
19. 日志管理进阶
19.1 日志轮转配置
/etc/logrotate.d/custom示例:
bash复制/var/log/app/*.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
}
19.2 集中式日志
使用rsyslog转发日志:
bash复制*.* @192.168.1.100:514
20. 系统备份策略
20.1 全量备份方案
bash复制# 使用tar全量备份
tar --exclude=/backup --exclude=/proc --exclude=/sys -czvf /backup/full-$(date +%Y%m%d).tar.gz /
20.2 增量备份实现
bash复制# 使用rsync增量备份
rsync -avz --delete --link-dest=/backup/previous /data/ /backup/new/