以下是 CentOS 下常用命令及其详细说明:
rsync
:文件同步工具,支持本地和远程同步。例如:将本地目录/home/user
同步到远程主机的/backup
目录:rsync -av /home/user/ user@remote:/backup/
。iptables
:防火墙管理工具,控制网络连接、端口访问等。例如:允许外网访问本机的 80 端口:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
。netstat
:网络状态检测工具,用于查看网络连接状态和进程信息。例如:查看所有TCP连接:netstat -at
。sed
:流编辑器,可以对文本进行处理和替换。例如:将文件中的所有 "foo" 替换为 "bar":sed 's/foo/bar/g' file.txt
。find
:查找文件工具,用于查找指定目录下的文件。例如:查找/var/log
目录下所有以 ".log" 结尾的文件:find /var/log -name "*.log"
。tar
:归档工具,用于打包和压缩文件。例如:将目录/home/user
打包为user.tar.gz
文件:tar -czvf user.tar.gz /home/user
。awk
:文本处理工具,用于格式化和处理文本数据。例如:将文件中以 "foo" 开头的行打印出来:awk '/^foo/ {print}' file.txt
。grep
:文本搜索工具,用于查找文本中符合条件的行。例如:在文件中查找 "foo" 字符串:grep "foo" file.txt
。curl
:网络请求工具,用于发送 HTTP 请求。例如:发送 GET 请求并保存响应内容到文件:curl -o response.txt https://example.com
。scp
:远程文件传输工具,用于在本地和远程主机之间传输文件。例如:将本地文件file.txt
上传到远程主机的/home/user
目录:scp file.txt user@remote:/home/user
。awk
:文本处理工具,用于格式化和处理文本数据。例如:将文件中以 "foo" 开头的行打印出来:awk '/^foo/ {print}' file.txt
。cut
:文本处理工具,用于提取文本数据的指定字段。例如:提取文件中第一列和第三列的数据:cut -f1,3 file.txt
。du
:磁盘使用情况统计工具,用于查看磁盘占用情况。例如:查看/var/log
目录的磁盘占用情况:`du -h /df
:磁盘空间查看工具,用于查看文件系统的磁盘使用情况。例如:查看所有文件系统的磁盘使用情况:df -h
。awk
:文本处理工具,用于格式化和处理文本数据。例如:查找文件中最长的行并打印出来:awk '{ if ( length > x ) { x = length; y = $0 } } END { print y }' file.txt
。tail
:文件尾部查看工具,用于查看文件的最后几行。例如:查看文件的最后 10 行:tail -n 10 file.txt
。head
:文件头部查看工具,用于查看文件的前几行。例如:查看文件的前 10 行:head -n 10 file.txt
。chmod
:文件权限修改工具,用于修改文件或目录的权限。例如:将文件file.txt
的所有者权限设置为可读、可写、可执行:chmod u+rwx file.txt
。chown
:文件所有者修改工具,用于修改文件或目录的所有者和所属组。例如:将文件file.txt
的所有者修改为user1
:chown user1 file.txt
。ps
:进程查看工具,用于查看系统中正在运行的进程。例如:查看当前用户的所有进程:ps -u $USER
。kill
:进程终止工具,用于终止指定的进程。例如:终止进程号为12345
的进程:kill 12345
。ifconfig
:网络接口配置工具,用于查看和配置网络接口信息。例如:查看所有网络接口信息:ifconfig -a
。ping
:网络连接测试工具,用于测试主机之间的网络连接。例如:测试与主机example.com
的连接情况:ping example.com
。traceroute
:网络路由追踪工具,用于追踪数据包在网络中的传输路径。例如:追踪与主机example.com
的连接路径:traceroute example.com
。nc
:网络工具,用于建立 TCP 或 UDP 连接。例如:使用 TCP 连接到主机example.com
的 80 端口:nc example.com 80
。free
:内存使用情况查看工具,用于查看系统内存的使用情况。例如:查看系统内存的使用情况:free -m
。top
:进程实时查看工具,用于实时查看系统中进程的情况。例如:实时查看系统中进程的情况:top
。vim
:文本编辑器,常用于编辑配置文件等。例如:打开文件file.txt
进行编辑:vim file.txt
。yum
:软件包管理工具,用于安装、升级和删除软件包。例如:安装软件包nginx
:yum install nginx
。systemctl
:系统服务管理工具,用于管理系统服务的启动、停止、重启和查看状态等。例如:启动服务nginx
:systemctl start nginx
。journalctl
:系统日志查看工具,用于查看系统日志信息。例如:查看nginx
服务的日志信息:journalctl -u nginx
。firewalld
:防火墙管理工具,用于配置系统防火墙规则。例如:开放端口80/tcp
:firewall-cmd --add-port=80/tcp --permanent
。ssh
:远程登录工具,用于在远程主机上登录并执行命令。例如:连接远程主机example.com
并登录:ssh user@example.com
。scp
:远程文件传输工具,用于在远程主机和本地主机之间传输文件。例如:将文件file.txt
传输到远程主机example.com
的/tmp
目录:scp file.txt user@example.com:/tmp
。tar
:文件打包和解包工具,用于将多个文件打包成一个文件或将打包文件解包。例如:将目录mydir
打包成mydir.tar.gz
文件:tar -zcvf mydir.tar.gz mydir
。zip
:文件压缩和解压缩工具,用于将多个文件压缩成一个压缩文件或将压缩文件解压缩。例如:将目录mydir
压缩成mydir.zip
文件:zip -r mydir.zip mydir
。unzip
:压缩文件解压缩工具,用于将压缩文件解压缩。例如:将压缩文件mydir.zip
解压缩到目录mydir
:unzip mydir.zip -d mydir
。curl
:网络工具,用于通过 URL 获取数据。例如:获取 URLhttp://example.com
的内容:curl http://example.com
。wget
:网络工具,用于从 URL 下载文件。例如:从 URLhttp://example.com/file.txt
下载文件:wget http://example.com/file.txt
。grep
:文本搜索工具,用于在文件中搜索指定的字符串。例如:在文件file.txt
中搜索字符串hello
:grep "hello" file.txt
。sed
:文本处理工具,用于编辑文本。例如:替换文件file.txt
中的所有foo
为bar
:sed -i 's/foo/bar/g' file.txt
。find
:文件搜索工具,用于在指定目录下搜索符合条件的文件。例如:在目录mydir
下搜索所有后缀名为.txt
的文件:find mydir -name "*.txt"
。 43.top
:系统进程监控工具,用于查看系统进程的资源使用情况。例如:查看系统进程列表:top
。ps
:系统进程查看工具,用于查看系统进程的详细信息。例如:查看所有进程列表:ps aux
。kill
:进程管理工具,用于向进程发送信号,例如终止进程。例如:终止进程 ID 为1234
的进程:kill 1234
。nohup
:进程管理工具,用于在后台运行进程,即使用户退出登录也不会停止。例如:在后台运行命令mycommand
:nohup mycommand &
。screen
:终端复用工具,用于在一个终端中同时运行多个会话。例如:启动一个新的会话:screen
。rsync
:文件同步工具,用于将本地主机上的文件与远程主机上的文件同步。例如:将本地目录mydir
同步到远程主机example.com
的/tmp
目录:rsync -avz mydir user@example.com:/tmp
。tar
的复杂参数示例:将多个目录打包成单个 tar 文件,并指定压缩算法为 bzip2,设置文件权限为 755,设置所有者为 user1,设置文件修改时间为 2023 年 4 月 20 日 10:30:tar -cjpv --owner=user1 --mode=755 --mtime="2023-04-20 10:30" -f myarchive.tar.bz2 dir1 dir2
。firewall-cmd
的复杂参数示例:开放端口80/tcp
并设置防火墙规则描述为Web Server
,并将规则永久保存:firewall-cmd --zone=public --add-port=80/tcp --permanent --set-description="Web Server"
。-
cron
:用于在 Linux 系统中设置周期性任务的命令,支持分钟、小时、日、月、星期等不同粒度的周期。例如:编辑当前用户的周期性任务列表:crontab -e
,然后添加一条每天凌晨 1 点执行的任务:0 1 * * * /path/to/script.sh
。