简介
**CentOS(Community Enterprise Operating System)是一种基于Red Hat Enterprise Linux(RHEL)源代码的免费开源操作系统,旨在提供稳定、可靠的企业级Linux环境。** CentOS由社区驱动,与RHEL在功能上高度兼容,但用户可以免费使用而无需支付任何费用。
历史背景和开发团队
CentOS自2004年3月以来一直是由社区驱动的开源项目,其目标是与RHEL保持功能上的兼容性。通过社区的官方邮件列表、论坛和聊天室提供技术支持。
主要特点和优势
1.稳定性与可靠性:CentOS严格遵循RHEL的源代码,经过严格的测试以保证其稳定性,适用于长期运行的服务环境,如Web服务器、数据库服务器、邮件服务器等3。
2.开源免费:用户可以免费下载、使用和修改CentOS,无需支付任何费用。
3.长期支持:每个版本的CentOS都得到长达十年的支持,通过安全更新方式进行维护,确保了软件更新和安全补丁的持续供应。
4.丰富的软件包:使用Yum(或较新版本的DNF)作为包管理器,通过官方仓库或第三方仓库提供了大量的软件包,便于安装、升级和管理各种应用程序。
5.强大的社区支持:拥有活跃的用户社区和开发者社区,用户可以在社区论坛、邮件列表或社交媒体平台上寻求帮助、交流经验。
常用命令
一、系统信息查询与管理
1.hostnamectl:显示主机名、操作系统版本、内核版本、架构等信息
2.uname:显示系统内核与硬件信息
3.lsb_release:显示LSB相关信息
4.date:显示或设置系统日期和时间
5.timedatectl:管理系统时间和时区
6.timedatectl status:查看当前系统时间和时区
7.yum(或dnf)管理软件包及其依赖
yum check-update # 检查可用更新
yum update # 更新所有已安装软件包
yum upgrade # 升级软件包到最新版本(可能改变依赖关系)
二、 用户与组管理
1.useradd:创建用户
useradd -m john # 创建新用户john并为其创建主目录
2.passwd:设置或更改用户密码
passwd john # 设置或更改john的密码
3.usermod:修改用户属性
usermod -aG wheel john # 将john添加到wheel组(赋予sudo权限)
usermod -s /bin/bash john # 更改john的默认Shell
4.groupadd:创建新用户组
groupadd developers # 创建名为developers的用户组
5.gpasswd:管理用户组成员
gpasswd -a john developers # 将john加入developers组
gpasswd -d john developers # 从developers组中移除john
三、文件与目录操作
1. ls:列出目录内容
ls -l 文件详细信息
ls -al 隐藏文件也会显示包含文件详细信息
2. mkdir:创建目录
mkdir projects #创建目录
mkdir -p a/b #创建多级目录
3.touch:创建空白文件或更新文件时间戳
touch a.txt #创建空白文件
touch existinga.txt #更新已有文件时间戳
4.cp:复制文件或目录
cp file1.txt file2.txt #复制文件
cp -r dir1 dir2 #复制目录(递归)
5.mv:移动或重命名文件或目录
mv file1.txt file2.txt #移动文件
mv dir1 dir2 #移动目录
6.rm:删除文件或目录
rm file.txt #删除文件
rm -rf dir #强制删除目录(递归并忽略错误)
四、文件权限与所有权
1.ls -l:查看文件列表时,第一列即表示文件权限
2.stat file.txt:查看文件的详细权限、所有者、组和其他元数据
3.chmod:更改文件或目录的权限
chmod 644 file.txt # 设置文件权限为rw-r--r--
chmod u+x script.sh # 添加用户执行权限
chmod g-w,o-x file.txt # 移除组写权限和其它用户执行权限
4.chown:更改文件或目录的所有者
chown john file.txt # 将文件所有者改为john
chown -R john:developers dir # 改变目录及其内容的所有者和组
五、文件搜索与目录查看
1.find:根据名称、类型、时间等属性查找文件
find / -name a.txt #在根目录下查找a.txt文件的位置
find . -type f -mtime -7 #当前目录下查找近7天内修改过的文件
2.cat:连续显示文件内容
cat file.txt
3.less:分页查看文件内容,支持上下滚动、搜索等
less large_file.txt
4.head、tail:查看文件开头或结尾部分内容
head -n 10 file.txt # 显示文件前10行
tail -n 5 file.txt # 显示文件最后5行
tail -f log.txt # 动态查看日志文件新增内容
六、网络管理
1. ip:显示或管理网络接口、路由等
ip addr show # 显示网络接口及IP地址信息
ip route show # 显示路由表
2.netstat:显示网络连接、路由、接口统计等信息
netstat -tulnp # 显示所有TCP/UDP监听端口和连接
netstat -rn # 显示路由表
3.ping:测试网络连通性
ping www.baidu.com
七、系统服务管理
1.systemctl:管理系统服务、守护进程、系统状态等
systemctl start httpd # 启动httpd服务(httpd指具体的服务名)
systemctl stop httpd # 停止httpd服务
systemctl restart httpd # 重启httpd服务
2. systemctl status:查看服务状态
systemctl status httpd
3. systemctl enable/disable:设置服务开机自启动
systemctl enable sshd # 设置sshd服务开机启动
systemctl disable cron # 禁止cron服务开机启动
八、进程管理
1.ps:报告当前进程中进程的状态
ps aux # 显示所有用户的进程
ps -ef # 显示完整格式的进程列表
2.kill:向进程发送信号
kill 1234 # 发送SIGTERM(默认)信号给PID为1234的进程
kill -9 1234 # 发送SIGKILL信号强制结束进程
3.killall:根据进程名杀死进程
killall firefox # 杀死所有名为firefox的进程
4.pkill:根据进程名发送信号
pkill -9 firefox # 发送SIGKILL信号给所有名为firefox的进程
九、日志查看
1.journalctl:查看系统日志(查看systemd日志系统)
journalctl -xe # 显示最近的日志条目
journalctl -u nginx.service # 查看特定服务的日志
2.tail、less等命令直接查看日志文件
tail -f /var/log/nginx/access.log # 动态查看Nginx访问日志
less /var/log/auth.log # 分页查看认证日志
十、压缩与解压缩
1.gzip:压缩文件
gzip file.txt # 压缩为file.txt.gz
2.gunzip:解压缩gzip格式文件
gunzip file.txt.gz # 解压缩为file.txt
3.tar:打包、压缩、解压缩文件或目录
tar -czvf archive.tar.gz dir1 dir2 # 打包并压缩为gzip格式
tar -xzvf archive.tar.gz # 解压缩gzip格式的tar包
十一、文本处理
1.grep:在文件中搜索匹配的文件行
grep 'pattern' file.txt # 在file.txt中搜索包含pattern的行
grep -irn 'error' /var/log/* # 递归搜索目录,忽略大小写,显示行号
2.sed:流编辑器,对文本行进行查找、替换、删除等操作
sed 's/pattern/replacement/g' file.txt # 替换file.txt中所有pattern为replacement
sed '/^$/d' file.txt # 删除file.txt中空行
3.awk:强大的文本分析工具,按指定规则处理文本数据
awk '{print $1}' file.txt # 输出file.txt中每行的第一个字段
awk '/pattern/{print $0}' file.txt # 输出file.txt中包含pattern的整行
十二、软件包管理
1.yum(或dnf):管理软件包及其依赖
yum info package_name # 查看软件包信息
yum provides command_name # 查找提供指定命令的软件包
yum reinstall package_name # 重新安装软件包
yum remove package_name # 卸载软件包
2.rpm:低层级的软件包管理工具,用于安装、查询、验证RPM包
rpm -q package_name # 查询已安装的软件包
rpm -qi package_name # 查询软件包详细信息
rpm -Va # 验证所有已安装软件包的完整性
十三、脚本编程
1.bash:编写和执行shell脚本
#!/bin/bash
echo "Hello, World!" # 输出Hello, World!
for i in {1..5}; do echo $i; done # 循环输出1到5
read -p "Enter your name: " name; echo "Hello, $name!" # 交互式输入
十四、文件系统管理
1.df:显示磁盘空间使用情况
df -h # 以人类可读格式显示磁盘使用情况
df -T # 显示文件系统类型
2.du:估算文件或目录所占磁盘空间
du -sh * # 显示当前目录下所有文件及目录大小汇总
du -h --max-depth=1 # 显示当前目录下一级子目录及文件大小
3.mount:挂载文件系统
mount /dev/sdb1 /mnt/data # 挂载设备sdb1到/mnt/data
4.umount:卸载已挂载的文件系统
umount /mnt/data # 卸载/mnt/data
十五、系统监控
1.top:实时显示系统资源(CPU、内存、负载等)使用情况
top # 运行top命令,按'h'获取帮助,'q'退出
2.htop(需先安装):增强版top命令,提供彩色界面、搜索、树状视图等功能
htop # 运行htop命令
3.vmstat:报告虚拟内存统计信息
vmstat 1 # 每秒刷新一次,显示内存、CPU、磁盘等信息
4.iostat:监视系统输入/输出设备负载
iostat -dx 1 # 显示磁盘统计信息,包括设备、读写速率等
以上就是一些常见的CentOS使用命令。在实际使用中,如果忘记命令也可以使用
man <command>
获取命令详细帮助文档。