CentOS vs Ubuntu - 常用命令深度对比及最佳实践指南
引言
在 Linux 服务器操作系统领域,CentOS 和 Ubuntu 是广泛采用的发行版。它们在命令集、默认工具链及生态系统方面各有特点。本文深入剖析 CentOS 与 Ubuntu 在常用命令层面的异同,并结合实践案例,帮助读者理解两者的特性,从而根据业务需求做出精准选型。

1. 环境配置管理
1.1 用户账户管理
创建用户
- CentOS
bash
useradd pyapp # 创建用户
passwd pyapp # 设置密码
- Ubuntu
bash
adduser pyapp # 交互式创建用户
区别 :Ubuntu adduser
提供交互式体验,CentOS useradd
需要手动配置。
删除用户
- CentOS
bash
userdel -r pyapp # 删除用户及主目录
- Ubuntu
bash
deluser --remove-home pyapp # 删除用户及主目录
区别 :Ubuntu deluser
具备更友好的交互提示。
1.2 环境变量配置
- CentOS
bash
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile
- Ubuntu
bash
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
区别 :CentOS 主要修改 ~/.bash_profile
,Ubuntu 修改 ~/.bashrc
。
2. 软件包管理
2.1 软件包安装
- CentOS
bash
yum install httpd # 安装 Apache
- Ubuntu
bash
apt-get install apache2 # 安装 Apache
区别 :CentOS 使用 yum
,Ubuntu 使用 apt-get
。
2.2 软件包更新
- CentOS
bash
yum update # 更新系统
- Ubuntu
bash
apt-get update && apt-get upgrade # 更新软件包
区别 :Ubuntu 需要 update
和 upgrade
配合使用。
2.3 软件包删除
- CentOS
bash
yum remove httpd
- Ubuntu
bash
apt-get remove apache2
3. 系统维护
3.1 查看磁盘使用情况
bash
df -h # 通用命令,CentOS 与 Ubuntu 相同
3.2 查看内存使用情况
bash
free -m # 通用命令,CentOS 与 Ubuntu 相同
4. 高级主题
4.1 定时任务 (crontab)
企业级应用通常需要定时执行脚本,例如定期清理日志、备份数据库等。
- CentOS
bash
crontab -e # 编辑定时任务
示例:每天凌晨 3 点执行日志清理
bash
0 3 * * * /usr/bin/find /var/log -name "*.log" -type f -mtime +30 -exec rm -f {} \;
- Ubuntu
bash
crontab -e # 需注意 PATH 变量
示例:每周日凌晨 2 点备份数据库
bash
0 2 * * 0 /usr/bin/mysqldump -u root -p'password' mydatabase > /backup/mydatabase_$(date +\%F).sql
注意 :Ubuntu 的 cron 任务可能不会自动加载 PATH
,需显式指定,如下实例:
bash
SHELL=/bin/bash
PATH=/home/pyapp/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=your_email@example.com # 设置邮件接收地址,用于接收 cron 任务的输出
10 8 * * * /home/pyapp/wxbushu/myscript.sh
30 13 * * * /home/pyapp/wxbushu/myscript.sh
4.2 文本处理工具 (grep
, sed
)
- 文本搜索 (
grep
)
bash
grep -E "[0-9]+" file.txt # 查找包含数字的行
-
文本替换 (
sed
) -
CentOS
bash
sed -i 's/old/new/g' file.txt # 替换文本
- Ubuntu
bash
sed -i '' 's/old/new/g' file.txt # Ubuntu 需加空字符串
5. 项目经验分享
5.1 解决新用户缺少 .bashrc
的问题
bash
ls -la /etc/skel # 确保 `/etc/skel` 目录下有 `.bashrc`
解决方案 :如果 .bashrc
缺失,可手动创建。
bash
echo "export PS1='\u@\h:\w\$ '" > ~/.bashrc
5.2 处理无法删除用户的问题
- 查找用户进程
bash
ps -u pyapp # 查看用户进程
- 终止用户进程
bash
kill 10901 # 终止进程
- 删除用户
bash
userdel -r pyapp
6. 未来展望
随着云计算、容器化、自动化运维的发展,Linux 发行版在现代 IT 架构中愈发重要。CentOS 和 Ubuntu 都在适应这一趋势,提供了更强大的支持。
结论
本文详细对比了 CentOS 与 Ubuntu 在命令层面的差异,结合最佳实践分析其应用场景。无论选择哪种系统,深入掌握 Linux 命令都是技术人员的必修课。
进一步阅读
您更倾向于使用 CentOS 还是 Ubuntu?欢迎分享您的经验!