CentOS 入门教程
bash pwd # 显示当前目录 ls -al # 列出所有文件含隐藏文件 cd /etc # 切换目录 mkdir project # 创建目录 touch readme.txt # 创建空文件或更新文件时间戳 cp source dest # 复制文件 mv old new # 移动/重命名 rm -rf testdir # 删除目录(递归强制,谨慎使用)
### 查看文件内容
```bash
cat file.txt # 一次性显示
less large.log # 分页浏览,按 q 退出
head -n 10 file.txt # 前10行
tail -f /var/log/messages # 实时追踪日志
grep 'error' app.log # 搜索匹配行
用户与权限管理
理解用户与组
- root:超级管理员,UID 为 0,拥有最高权限,日常操作应避免直接使用 root。
- 普通用户:UID 从 1000 起,权限受限。
- 每个用户可以属于一个主组和多个附加组。
用户管理命令
useradd john # 添加用户
passwd john # 设置密码
usermod -aG wheel john # 将用户加入 wheel 组(可 sudo)
userdel -r john # 删除用户及家目录
id john # 查看用户 UID、GID 和组
whoami # 显示当前用户
su - john # 切换到 john
sudo command # 以 root 权限执行命令(需提前配置 /etc/sudoers)
文件权限与所有权
ls -l # 输出如 -rw-r--r--. 1 root root 0 date filename
解释:第1位 - 表示普通文件,d 目录;随后9位每三位一组,分别代表拥有者、所属组、其他人权限(r=读,w=写,x=执行)。
修改权限:
chmod 755 script.sh # 数字法:用户读写执行,组和其他读执行
chmod u+x script.sh # 符号法:用户增加执行权限
chown john:users file.txt # 更改拥有者和组
文本编辑:vi/vim 快速上手
CentOS 默认安装 vim 增强版(需安装 vim-enhanced)。
常用模式:
- 普通模式(Esc):移动光标、复制粘贴等。
- 插入模式(i、a、o 等):输入文本。
- 命令模式(:):保存、退出等。
基础操作:
vim filename
进入后按 i 进入插入模式编辑;按 Esc 返回普通模式;
:w保存:q退出:wq或ZZ保存退出:q!不保存强制退出dd删除整行,yy复制,p粘贴,/keyword搜索,n下一个匹配
软件包管理:yum 和 dnf
CentOS 7 使用 yum,CentOS 8/Stream 使用 dnf(两者命令格式兼容)。
配置软件源
仓库配置在 /etc/yum.repos.d/ 下,常用官方源和 EPEL (Extra Packages for Enterprise Linux)。
安装 EPEL:
yum install epel-release # CentOS 7
dnf install epel-release # CentOS 8+
常用管理命令
yum update # 更新所有软件包
yum install httpd # 安装 Apache
yum remove package # 卸载
yum search keyword # 搜索
yum info package # 查看包详情
yum list installed # 列出已安装
yum clean all # 清除缓存
网络基础配置
查看网络状态
ip addr show # 查看 IP 地址
nmcli device status # NetworkManager 设备状态
ping -c 4 google.com # 连通性测试
ss -tlnp # 查看监听端口
配置静态 IP( CentOS 7 示例)
编辑对应网卡配置文件,一般位于 /etc/sysconfig/network-scripts/ifcfg-ens33(ens33 可能不同),修改关键项:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
保存后重启网络:systemctl restart network
CentOS 8/Stream 推荐用 nmcli 或 nmtui 文本界面配置。
系统服务管理:systemd
CentOS 7 起采用 systemd 作为初始化系统。
systemctl start nginx # 启动服务
systemctl stop nginx # 停止
systemctl restart nginx # 重启
systemctl enable nginx # 开机自启
systemctl disable nginx # 禁止自启
systemctl status nginx # 查看状态
journalctl -u nginx # 查看服务日志
基本安全与防火墙
CentOS 7 默认防火墙是 firewalld,7 之前是 iptables。
firewall-cmd --state # 查看防火墙状态
firewall-cmd --list-all # 查看当前配置
firewall-cmd --add-service=http --permanent # 永久开放 http 服务
firewall-cmd --add-port=8080/tcp --permanent # 开放 TCP 端口
firewall-cmd --reload # 重载配置
临时关闭测试:systemctl stop firewalld(生产环境不建议)。
SELinux 是强制访问控制系统,初学者常遇权限问题,可先设置为宽松模式调试,但最终应保持 enforcing 状态。
getenforce # 查看状态
setenforce 0 # 临时设为 Permissive
# 永久修改需编辑 /etc/selinux/config 中 SELINUX=permissive
收集系统信息与故障排查
uname -r # 内核版本
cat /etc/centos-release # CentOS 版本
free -h # 内存使用
df -h # 磁盘空间
top # 实时进程监控(按 q 退出)
dmesg | tail # 内核日志末尾
last # 最近登录记录