CentOS是一个基于Red Hat Enterprise Linux(RHEL)的免费开源Linux发行版。它提供了大量的命令行工具来帮助用户管理服务器和执行各种任务。
为了提供一个具体且详细的CentOS命令大全,我将深入探讨每个命令的使用场景、参数和最佳实践。请注意,CentOS的命令行工具和参数可能会随着版本的更新而发生变化,因此建议查阅最新的官方文档或使用man
命令获取最新的信息。
基本命令
ls
- 列出目录内容
-
ls -a
:显示所有文件和目录,包括以点(.)开头的隐藏文件。 -
ls -l
:以长格式列出文件和目录的详细信息。 -
ls -h
:与-l
一起使用时,以易读的格式显示文件大小(例如KB、MB)。 -
ls -R
:递归地列出所有子目录的内容。
cd
- 改变当前工作目录
-
cd ~
:切换到用户的主目录。 -
cd -
:切换到上一个工作目录。 -
cd /path/to/directory
:切换到指定的绝对路径目录。
pwd
- 显示当前工作目录的路径
-
pwd -P
:显示实际路径,不包含符号链接。
cp
- 复制文件或目录
-
cp source destination
:复制文件或目录。 -
cp -r source_directory destination_directory
:递归复制目录及其内容。 -
cp -i
:在覆盖现有文件之前提示确认。
mv
- 移动或重命名文件或目录
-
mv source destination
:移动文件或目录。 -
mv -i
:在覆盖现有文件之前提示确认。
rm
- 删除文件或目录
-
rm file
:删除文件。 -
rm -r directory
:递归删除目录及其内容。 -
rm -f
:强制删除,不提示确认。 -
rm -i
:在删除每个文件之前提示确认。
mkdir
- 创建新目录
-
mkdir directory_name
:创建新目录。 -
mkdir -p
:递归创建目录,即使上级目录不存在也会创建。
touch
- 创建空文件或更新文件时间戳
-
touch file_name
:创建空文件或更新文件时间戳。 -
touch -a
:仅更新访问时间。 -
touch -m
:仅更新修改时间。
cat
- 查看文件内容
-
cat file_name
:查看文件内容。 -
cat -n
:显示行号。
more
/ less
- 分页查看文件内容
-
more file_name
:按页查看文件内容。 -
less file_name
:提供更高级的分页功能,如搜索和跳转。
head
/ tail
- 查看文件的开头或结尾部分
-
head file_name
:查看文件的前10行。 -
head -n 5 file_name
:查看文件的前5行。 -
tail file_name
:查看文件的最后10行。 -
tail -f file_name
:实时查看文件的最后10行,常用于查看日志文件。
grep
- 搜索文件中的文本模式
-
grep pattern file_name
:在文件中搜索模式。 -
grep -r pattern directory
:递归搜索目录中的模式。 -
grep -i
:忽略大小写。 -
grep -v
:显示不匹配模式的行。
find
- 在文件系统中查找文件
-
find / -name filename
:在根目录下查找名为filename的文件。 -
find / -type f
:查找所有文件。 -
find / -type d
:查找所有目录。
chmod
- 改变文件或目录的权限
-
chmod 755 file_name
:设置文件权限,所有者可读、可写、可执行,组和其他用户可读、可执行。 -
chmod +x file_name
:给文件添加执行权限。
chown
- 改变文件或目录的所有者
-
chown user file_name
:改变文件的所有者。 -
chown -R user:group directory
:递归改变目录及其内容的所有者。
chgrp
- 改变文件或目录的组
-
chgrp group file_name
:改变文件的组。 -
chgrp -R group directory
:递归改变目录及其内容的组。
df
- 显示磁盘空间使用情况
-
df -h
:以易读的格式显示磁盘空间使用情况。
du
- 显示目录或文件的磁盘使用情况
-
du -sh
:显示当前目录的总大小。
ps
- 显示当前运行的进程
-
ps aux
:显示所有进程的详细信息。 -
ps -ef
:以全格式显示所有进程。
top
- 实时显示进程状态
-
top
:显示系统中运行的进程,并实时更新。
kill
- 发送信号给进程
-
kill PID
:发送SIGTERM信号给进程。 -
kill -9 PID
:发送SIGKILL信号强制终止进程。
killall
- 根据名称杀死进程
-
killall process_name
:杀死所有名为process_name的进程。
tar
- 打包和解压文件
-
tar -cvf archive.tar directory
:创建一个tar归档文件。 -
tar -xvf archive.tar
:解压tar归档文件。
gzip
/ gunzip
- 压缩和解压缩文件
-
gzip file_name
:压缩文件。 -
gunzip file_name.gz
:解压缩文件。
wget
- 从网络下载文件
-
wget http://example.com/file
:下载文件。
curl
- 发送网络请求并显示响应
-
curl http://example.com
:发送GET请求并显示响应。
系统管理命令
systemctl
- 管理系统服务
-
systemctl start service_name
:启动服务。 -
systemctl stop service_name
:停止服务。 -
systemctl restart service_name
:重启服务。 -
systemctl status service_name
:查看服务状态。 -
systemctl enable service_name
:设置服务开机自启。 -
systemctl disable service_name
:取消服务开机自启。
journalctl
- 查看系统日志
-
journalctl -u service_name
:查看特定服务的日志。 -
journalctl -f
:实时查看日志。
useradd
/ usermod
/ userdel
- 管理用户账户
-
useradd user_name
:创建新用户。 -
usermod -aG group user_name
:将用户添加到附加组。 -
userdel user_name
:删除用户。
groupadd
/ groupmod
/ groupdel
- 管理用户组
-
groupadd group_name
:创建新组。 -
groupmod -n new_group_name old_group_name
:重命名组。 -
groupdel group_name
:删除组。
passwd
- 更改用户密码
-
passwd user_name
:更改用户密码。
yum
/ dnf
- 包管理器
-
yum install package_name
:安装软件包。 -
yum update package_name
:更新软件包。 -
yum remove package_name
:卸载软件包。 -
yum list installed
:列出已安装的软件包。
rpm
- 包管理器
-
rpm -ivh package_name.rpm
:安装rpm包。 -
rpm -e package_name
:卸载rpm包。 -
rpm -qa
:列出所有已安装的rpm包。
chkconfig
- 管理服务的启动级别
-
chkconfig --list
:列出所有服务及其启动级别。 -
chkconfig service_name on
:设置服务开机自启。
service
- 启动、停止、重启和管理系统服务
-
service service_name start
:启动服务。 -
service service_name stop
:停止服务。 -
service service_name restart
:重启服务。
reboot
- 重启系统
-
reboot
:重启系统。
shutdown
- 关闭或重启系统
-
shutdown -h now
:立即关闭系统。 -
shutdown -r now
:立即重启系统。
网络命令
ifconfig
/ ip
- 查看和配置网络接口
-
ifconfig
:显示网络接口信息。 -
ip addr show
:显示网络接口的IP地址和状态。
ping
- 测试网络连接
-
ping host
:发送ICMP回显请求到主机。
traceroute
- 显示数据包到达目标主机的路径
-
traceroute host
:显示数据包到达目标主机的路径。
netstat
- 显示网络连接、路由表、接口统计等信息
-
netstat -tuln
:显示TCP和UDP连接,不解析主机名和端口名。
ss
- 显示套接字统计信息
-
ss -t
:显示TCP套接字。 -
ss -u
:显示UDP套接字。
ssh
- 安全地登录远程系统
-
ssh user@host
:登录远程系统。
scp
- 安全地复制文件到远程系统或本地系统
-
scp file user@host:/path
:将文件复制到远程系统。
sftp
- 安全地通过SSH传输文件
-
sftp user@host
:启动sftp会话。
文件系统和磁盘管理
fdisk
- 磁盘分区工具
-
fdisk /dev/sda
:对/dev/sda磁盘进行分区。
mount
- 挂载文件系统
-
mount /dev/sda1 /mnt
:挂载/dev/sda1到/mnt目录。
umount
- 卸载文件系统
-
umount /mnt
:卸载/mnt目录。
df
- 显示文件系统的磁盘空间使用情况
-
df -h
:以易读的格式显示磁盘空间使用情况。
du
- 显示目录或文件的磁盘使用情况
-
du -sh
:显示当前目录的总大小。
fsck
- 检查和修复文件系统错误
-
fsck /dev/sda1
:检查并修复/dev/sda1上的文件系统。
进程和作业控制
ps
- 显示当前运行的进程
-
ps aux
:显示所有进程的详细信息。
top
- 实时显示进程状态
-
top
:显示系统中运行的进程,并实时更新。
kill
- 发送信号给进程
-
kill -9 PID
:发送SIGKILL信号强制终止进程。
jobs
- 列出当前终端中的作业
-
jobs
:列出当前终端中的作业。
bg
- 将作业放到后台运行
-
bg %job_number
:将特定作业放到后台运行。
fg
- 将作业放到前台运行
-
fg %job_number
:将特定作业放到前台运行。
文本处理
sed
- 流编辑器,用于文本处理
-
sed 's/old/new/g' file
:替换文件中所有old为new。
awk
- 强大的文本处理工具
-
awk '{print $1}' file
:打印文件的第一列。
sort
- 对文本文件的行进行排序
-
sort file
:对文件内容进行排序。
uniq
- 报告或省略重复的行
-
uniq file
:报告文件中的重复行。
cut
- 从每行中剪切文本
-
cut -d',' -f1 file
:按逗号分隔,并打印第一列。
paste
- 合并文件的行
-
paste file1 file2
:合并两个文件的行。
join
- 连接两个文件的行
-
join file1 file2
:按公共字段连接两个文件。
这些命令是Linux系统管理中的基础,熟练掌握它们对于日常的系统维护和管理至关重要。在使用这些命令时,可以结合使用man
命令来获取更详细的帮助信息,例如man ls
。此外,由于CentOS版本的更新,某些命令的使用可能会有所变化,因此建议查阅最新的官方文档或使用man
命令获取最新的信息。