Linux 是一个广泛使用的操作系统,其灵活性和强大的命令行工具使其成为运维工作的首选平台之一。在本文中,我们将介绍一些常用的 Linux 运维命令,并拓展介绍它们的用法和一些实用技巧,以帮助运维人员更高效地管理 Linux 系统。
1. top
命令
top
命令用于实时监控系统的资源使用情况,包括 CPU、内存、进程等。默认情况下,top
命令会按照 CPU 使用率进行排序,并以实时更新的方式显示系统的性能状况。
拓展用法:
- 使用
top -H
可以显示各个进程的线程信息。 - 使用
top -u <username>
可以只显示指定用户的进程信息。 - 使用
top -p <PID>
可以只显示指定 PID 进程的信息。
2. df
命令
df
命令用于显示文件系统的磁盘空间使用情况,包括磁盘总容量、已使用容量、可用容量等信息。
拓展用法:
- 使用
df -h
可以以人类可读的方式显示磁盘空间信息。 - 使用
df -T
可以显示文件系统的类型。
3. du
命令
du
命令用于显示目录或文件的磁盘使用情况,即所占用的磁盘空间大小。
拓展用法:
- 使用
du -h
可以以人类可读的方式显示磁盘使用情况。 - 使用
du -s
可以仅显示总体使用情况,而不显示每个子目录的使用情况。
4. free
命令
free
命令用于显示系统的内存使用情况,包括物理内存和交换空间的使用情况。
拓展用法:
- 使用
free -h
可以以人类可读的方式显示内存使用情况。
5. netstat
命令
netstat
命令用于显示网络连接、路由表和网络接口等网络相关信息。
拓展用法:
- 使用
netstat -tuln
可以显示所有正在监听的 TCP 和 UDP 连接。 - 使用
netstat -r
可以显示路由表信息。
6. ps
命令
ps
命令用于显示当前系统的进程状态。
拓展用法:
- 使用
ps aux
可以显示系统中所有进程的详细信息。 - 使用
ps -ef
也可以显示系统中所有进程的详细信息,这是ps aux
的 POSIX 兼容版本。
7. grep
命令
grep
命令用于在文件中搜索指定模式的文本,并显示匹配的行。
拓展用法:
- 使用
grep -r
可以递归搜索指定目录下的所有文件。 - 使用
grep -i
可以忽略大小写进行搜索。 - 使用
grep -v
可以显示不匹配模式的行。
8. tail
命令
tail
命令用于查看文件的末尾内容,默认情况下会显示文件的最后 10 行。
拓展用法:
- 使用
tail -f
可以实时监控文件的变化,并持续显示新添加的内容。 - 使用
tail -n
可以指定显示的行数,例如tail -n 20
可以显示最后 20 行内容。
9. chmod
命令
chmod
命令用于修改文件或目录的权限。
拓展用法:
- 使用
chmod +x
可以添加执行权限。 - 使用
chmod -R
可以递归修改目录及其子目录的权限。
10. rsync
命令
rsync
命令用于实现文件的远程同步和备份。
拓展用法:
- 使用
rsync -avz
可以进行增量备份,只同步修改过的文件。 - 使用
rsync -e
可以指定使用的远程 shell。 - 使用
rsync --delete
可以删除目标端不存在的文件。
11. find
命令
find
命令用于在文件系统中查找符合条件的文件。
拓展用法:
- 使用
find /path/to/search -name "*.txt"
可以在指定路径下查找所有扩展名为.txt
的文件。 - 使用
find /path/to/search -type f -mtime +7
可以在指定路径下查找最近 7 天内修改过的文件。
12. scp
命令
scp
命令用于在本地主机和远程主机之间进行文件传输。
拓展用法:
- 使用
scp -r
可以递归复制目录及其内容。 - 使用
scp -P
可以指定远程主机的端口号。
13. tar
命令
tar
命令用于对文件进行打包和解包操作。
拓展用法:
- 使用
tar -czvf
可以同时进行打包和压缩操作,生成.tar.gz
文件。 - 使用
tar -xvf
可以解压缩.tar
文件。
14. awk
命令
awk
命令是一个强大的文本处理工具,用于对文本文件进行逐行处理和分析。
拓展用法:
- 使用
awk '{print $1}'
可以打印每行的第一个字段。 - 使用
awk -F
可以指定字段的分隔符。
15. sed
命令
sed
命令用于对文本进行流式编辑,支持对文件内容进行替换、删除等操作。
拓展用法:
- 使用
sed 's/old/new/g'
可以将文件中所有的old
替换为new
。 - 使用
sed -i
可以直接修改文件内容,而不是将结果输出到标准输出。
16. lsof
命令
lsof
命令用于显示系统当前打开的文件列表。
拓展用法:
- 使用
lsof -i
可以显示网络连接的信息。 - 使用
lsof -u
可以显示指定用户打开的文件列表。
17. uptime
命令
uptime
命令用于显示系统的运行时间和平均负载。
拓展用法:
- 使用
uptime -p
可以以更友好的方式显示系统的运行时间。
18. kill
命令
kill
命令用于终止指定进程。
拓展用法:
- 使用
kill -9
可以强制终止进程,即发送 SIGKILL 信号。
19. history
命令
history
命令用于显示历史命令列表。
拓展用法:
- 使用
history | grep <keyword>
可以搜索历史命令中包含指定关键词的记录。
20. watch
命令
watch
命令用于周期性地执行指定的命令,并显示结果。
拓展用法:
- 使用
watch -n
可以指定刷新间隔时间。
21. cron
命令
cron
命令用于在预定时间执行指定的命令或脚本。通过配置 cron
任务,可以实现定时执行系统维护任务、备份任务等。
拓展用法:
- 使用
crontab -e
可以编辑当前用户的cron
任务列表。 - 使用
crontab -l
可以列出当前用户的cron
任务列表。
22. curl
命令
curl
命令用于在命令行下进行 HTTP 请求,可以用于测试 Web 服务、下载文件等操作。
拓展用法:
- 使用
curl -O <URL>
可以下载文件到当前目录。 - 使用
curl -i
可以显示响应头信息。
23. rsyslog
命令
rsyslog
命令用于管理系统日志,可以配置日志的存储位置、级别、转发等参数。
拓展用法:
- 使用
rsyslog.conf
文件可以配置rsyslog
的行为。
24. journalctl
命令
journalctl
命令用于查看和管理 systemd-journald
日志。
拓展用法:
- 使用
journalctl -u <unit>
可以查看特定服务的日志。 - 使用
journalctl -f
可以实时查看日志。
25. sysctl
命令
sysctl
命令用于在运行时设置内核参数,可以动态调整系统的行为。
拓展用法:
- 使用
sysctl -a
可以查看所有内核参数的值。 - 使用
sysctl -w
可以临时修改内核参数的值。
26. ifconfig
命令
ifconfig
命令用于显示和配置网络接口的信息。
拓展用法:
- 使用
ifconfig <interface> up/down
可以启用或禁用指定网络接口。
27. route
命令
route
命令用于显示和操作 IP 路由表。
拓展用法:
- 使用
route add
可以添加静态路由。 - 使用
route del
可以删除静态路由。
28. traceroute
命令
traceroute
命令用于跟踪数据包从本地主机到目标主机的路径。
拓展用法:
- 使用
traceroute -n
可以禁用域名解析,加快跟踪速度。
29. ping
命令
ping
命令用于测试与目标主机之间的连通性。
拓展用法:
- 使用
ping -c
可以指定发送数据包的数量。 - 使用
ping -i
可以指定发送数据包的时间间隔。
30. ssh
命令
ssh
命令用于安全地远程登录到其他主机。
拓展用法:
- 使用
ssh -i
可以指定密钥文件进行身份验证。 - 使用
ssh -p
可以指定连接的端口号。
总结
以上是一些常用的 Linux 运维命令及其拓展用法。通过熟练掌握这些命令,运维人员可以更加高效地管理和维护 Linux 系统,提高工作效率并减少错误发生的可能性。在实际工作中,还可以根据具体需求深入学习和探索更多的命令和技巧,以满足不同场景下的需求。