Linux 常用命令大全:2025 新手必学的 70 条命令,一次搞懂!(下篇)

科技   2025-01-04 18:03   陕西  

大家好,我是小康。

欢迎回来!如果你已经看过 Linux 常用命令大全上篇 的基础命令,接下来我们要聊的内容会更有意思。

这一篇,我们将学习如何用 Linux 命令行管理网络、解决网络问题,还会介绍一些查看日志和调试系统的技巧,让你遇到问题时不再慌张。而且,我们还会讲解一些开发者常用的小工具,让你工作效率倍增。

命令行其实很有趣,学会后你会发现它不仅好用,还能让你事半功倍。准备好继续了吗?我们开始吧!

先回顾下这张思维导图

Linux 常用命令大全上篇 的内容还没学习过的小伙伴可以看这篇:Linux 常用命令大全:2025 新手必学的 70 条命令,一次搞懂!(上篇)

接下来让我们开始下篇的内容吧:

第九部分:网络操作,玩转连接

40. ping :测试网络连通性

“网络通不通?用它试一试!”

用法:ping [选项] 目标地址

  • 向目标地址发送 ICMP 数据包,测试网络的连通性和延迟。
# 1. 测试目标地址的连通性(默认持续发送数据包)
ping www.google.com  -- 这个最常用

# 2. 指定发送的次数(比如发送 5 次)
ping -c 5 www.google.com

# 3. 限制每次发送数据包的间隔时间(1 秒间隔)
ping -i 1 www.google.com

# 4. 调整数据包大小(默认 56 字节)
ping -s 128 www.google.com

# 5. 不解析 IP 对应的主机名(加速测试)
ping -n www.google.com

小总结:

  • 基本连通性测试:ping 检查目标是否在线。
  • 控制发送次数:-c 设定发送包数量。
  • 网络性能调试:-s-i 调整包大小和发送频率。

ping 是网络排查的基础工具,用 ping 测试目标是否在线、网络是否稳定,简单又高效!

41. traceroute:路由追踪工具

“想知道数据包经过哪些节点到达目标?用它一查便知!”

用法:traceroute [选项] 目标地址

  • 跟踪网络数据包从本地主机到目标主机的路径,显示经过的中间路由节点。(各个节点的 ip 地址)
# 1. 追踪到目标主机的路由节点,显示数据包到目标主机的所有中间节点地址及响应时间。
traceroute example.com  -- 这个最常用

# 2. 限制显示的最大跳数(默认是 30)
traceroute -m 20 example.com

# 3. 指定每跳的探测次数(默认是 3 次)
traceroute -q 1 example.com

# 4. 使用 ICMP 协议代替 UDP 进行路由追踪(部分网络更友好)
traceroute -I example.com

# 5. 使用指定端口进行路由追踪
traceroute -p 443 example.com

小总结:

  • 基本路由追踪:traceroute 查看节点路径。
  • 限制跳数:-m 避免输出过多节点。
  • 协议选择:-I 兼容更多网络环境。

traceroute 是网络调试的利器,快速定位网络延迟或中断的节点!

42. wget:文件下载工具

“轻松从网络下载文件,稳定又高效!”

用法:wget [选项] URL

  • 用于从指定 URL 下载文件,支持断点续传、批量下载等功能。

例如下载文件:

# 1. 下载单个文件
wget http://example.com/file.zip

# 2. 下载并保存为指定文件名
wget -O newname.zip http://example.com/file.zip

# 3. 断点续传未完成的下载
wget -c http://example.com/largefile.zip

# 4. 下载需要认证的文件(提供用户名和密码)
wget --user=username --password=password http://example.com/securefile.zip

# 5. 限制下载速度(每秒 100KB)
wget --limit-rate=100k http://example.com/largefile.zip

小总结:

  • 单个文件下载:wget URL 简单高效。
  • 断点续传:-c 续传未完成的文件下载。
  • 下载限制:--limit-rate 控制下载速度。

wget 是命令行中的万能下载器,下载稳定、功能强大,非常适合文件和网站资源获取!

43. curl:万能数据获取工具

“不仅能下载文件,还能调接口、获取网页数据!”

用法:curl 选项 [网址]

  • 支持 HTTP、HTTPS、FTP 等多种协议。

常用操作:

# 1. 下载文件
curl -O http://example.com/file.zip

# 2. 保存文件为指定名称
curl -o newname.zip http://example.com/file.zip

# 3. 查看网页内容
curl http://example.com

# 4. 调用接口(GET 请求)
curl -X GET http://api.example.com/data   # -X:指定请求方法(GET、POST、DELETE 等)

# 5. 调用接口(POST 请求并发送数据)
curl -X POST -d "key=value" http://api.example.com/data

# 6. 显示详细的请求和响应过程
curl -v http://example.com

小总结:

  • 下载文件:curl -Ocurl -o
  • 调试接口:-X 指定方法,结合 -d 发送数据。
  • 查看详细过程:-v 显示请求和响应细节。

curl 是命令行下的网络多面手,下载与调试两不误!

44. telnet:测试端口连通性

“目标端口能不能通?用它试一试!”

用法:telnet 主机名或IP 端口号

  • 测试目标主机的指定端口是否开放,检查网络服务连通性。

例如:

telnet www.baidu.com 80

# 说明:
# - 如果连接成功,显示 "Connected to ..."。
# - 如果失败,显示 "Connection refused" 或 "Unable to connect"。

这会测试百度的 HTTP 服务(80 端口)是否可以连接。

常用场景:

  • 测试服务器的特定服务是否正常运行。
  • 检查防火墙是否阻止了指定端口。

telnet 是测试端口连通的常用工具,用它快速判断目标端口是否开放,网络排查简单又直观!

45. netstat:网络连接一览

“想知道系统有哪些网络连接?用它快速查看!”

用法:netstat [选项]

  • 列出当前网络连接、端口监听状态、统计信息等。

常用操作示例:

# 1. 查看所有网络连接
netstat -a

# 2. 查看监听的 TCP 和 UDP 端口
netstat -nlptu
# -t:仅显示 TCP 连接。
# -l:仅显示正在监听的端口。
# -n:以数字格式显示地址和端口。
# -p:显示占用端口的进程。
# -u:仅显示 UDP 连接

# 3. 查看指定端口的连接情况(结合 grep 筛选)
netstat -tlnp | grep :80    # 这种非常常用!!

# 4. 通过进程名,筛选出由特定程序或服务占用的连接(也常用!)
netstat -tlnp | grep nginx    # 查看 Nginx 占用的连接

# 5.筛选出特定连接状态(例如 LISTEN 或 ESTABLISHED):
netstat -tlnp | grep LISTEN       # 查看所有监听的端口
netstat -tlnp | grep ESTABLISHED  # 查看所有已建立的连接

netstat 配合参数和过滤器 grep,网络调试更高效!

小总结:

  • 监听端口:-tlnp 查看监听的服务和进程。
  • 筛选连接: 配合 grep 过滤指定端口或进程。

虽然现在很多场景推荐用 ss 替代 netstat,但 netstat 依然是经典的网络调试工具,简单好用!

46. ss:现代网络连接查看工具

“想替代 netstat?用它更快更强大!”

用法:ss [选项]

  • ssnetstat 的现代替代工具,用于显示网络连接、监听端口、统计信息等,性能更高,输出更快。

常用操作:

# ss 常用操作示例:

# 1. 显示所有网络连接
ss -a

# 2. 显示所有监听的 TCP 和 UDP 端口
ss -nlptu
# -t:仅显示 TCP 连接
# -u:仅显示 UDP 连接
# -l:仅显示监听连接
# -n:不解析主机名和服务名称,显示数字地址和端口号(加速)。
# -p:显示占用端口的进程。


# 3. 查看 ESTABLISHED 状态的连接
ss -t state established

# 4. 查看指定端口的连接(结合 grep 过滤)
ss -tlnp | grep :80  # 按端口号过滤

# 5. 查看所有包含某个 IP 地址的连接
ss -tlnp | grep '192.168.1.100'  # 按 IP 地址过滤

# 7. 查看某个进程(根据 PID)
ss -tulnp | grep '1234'  # 根据进程 ID (PID) 过滤

# 8. 查看某个协议类型的连接
ss -tuln | grep 'tcp'  # 按协议类型(如 tcp)过滤

# 9. 查看网络连接的具体服务
ss -tulnp | grep 'nginx'  # 根据服务名称过滤(例如:nginx)

ssnetstat 的对比

功能ssnetstat
性能快,直接从内核获取数据慢,需读取 /proc
文件
默认安装新版 Linux 默认安装逐渐被淘汰,不再维护
支持状态过滤更强,支持精准筛选支持但不够灵活
推荐使用

总结:

  • 查看监听端口:ss -tuln
  • 定位特定端口:ss -tuln | grep 端口号
  • 显示进程和端口:ss -tulnp | grep 端口号

ss 是现代网络管理的必备工具,比 netstat 更快、更强大!

47. tcpdump:网络数据包捕获工具

“想知道网络中发生了什么?用它抓包分析!”

用法:tcpdump [选项] [过滤条件]

  • 强大的网络抓包工具,支持实时查看或保存数据包,用于分析网络问题。

常用操作:

# tcpdump 常用选项:
# -i:指定监听的网络接口(如 eth0)。
# -w:将捕获的数据包保存到文件(如 capture.pcap)。
# -r:从文件中读取并解析数据包(如读取保存的 pcap 文件)。
# -n:不解析主机名和服务名称,直接显示 IP 和端口号。
# -nn:同时禁用主机名和端口解析,显示数字地址和端口号。
# -c:限制捕获的数据包数量(如 -c 10 表示捕获 10 个包后退出)。
# -X:显示数据包的十六进制和 ASCII 内容。
# -A:以 ASCII 格式显示数据包内容(适合查看 HTTP 数据)。
# -v:显示数据包的详细信息

# 1. 捕获指定接口上的所有数据包
tcpdump -i eth0

# 2. 捕获并保存数据包到文件
tcpdump -i eth0 -w capture.pcap

# 3. 捕获来自特定 IP 的数据包
tcpdump -i eth0 src 192.168.1.100

# 4. 捕获目标 IP 的数据包
tcpdump -i eth0 dst 192.168.1.200

# 5. 捕获特定端口(如 80)上的流量
tcpdump -i eth0 port 80

# 6. 捕获来自特定源 IP 且目标端口为 80 的数据包,并保存到文件 capture.pcap 里
tcpdump -i eth0 src 192.168.1.100 and dst port 80 -w capture.pcap -nn -v # 比较常用!

小总结:

  • 抓取数据包:tcpdump -i 接口 监听网络流量。
  • 保存数据分析:-w 保存为文件,配合 Wireshark 等工具分析。
  • 过滤特定流量: 配合 srcdstport 筛选数据包。
  • 查看详细信息:-v 或更详细的 -vv 输出抓包细节。

tcpdump 是网络调试和分析的利器,实时抓包、高效诊断,让网络问题无处遁形!

48. nc (Netcat):网络工具的瑞士军刀

“不仅能测试端口,还能传文件、模拟服务,样样精通!”

用法:nc 选项 [主机名或IP] [端口号]

  • 支持 TCP 和 UDP 协议,用于网络调试、文件传输、服务模拟等。

常用操作:

# nc 常用选项:
# -l     :监听模式,用于在本地创建服务器,等待客户端连接。
# -z     :扫描模式,检查端口是否开放,不发送任何数据。
# -v     :启用详细模式,输出更多的调试信息。
# -u     :使用 UDP 协议进行连接,而不是默认的 TCP。
# -p     :指定源端口。
# -w     :设置超时时间,单位为秒。
# -n     :禁用 DNS 解析,直接使用 IP 地址,而不是域名。
# -v     :详细输出,显示连接过程中的所有信息。


# 1. 连接到远程主机的指定端口(TCP连接)
nc example.com 80

# 2. 监听本地端口(创建服务器,等待连接)
nc -l 12345

# 3. 通过 netcat 发送文件到远程主机
# 在远程机器上执行:nc -l 12345 > received_file.txt
# 在本地机器上执行:nc remote_host 12345 < file_to_send.txt

# 4. 使用 UDP 协议发送数据
nc -u -l 12345  # 监听 UDP 端口 12345
nc -u remote_host 12345  # 发送数据到指定 UDP 端口

# 5. 测试端口是否开放(可以用来检查某些端口是否能够连接)
nc -zv example.com 80 443

# 6. 扫描端口范围(测试哪些端口开放)
nc -zv example.com 1-1000

# 7. 通过 nc 实现简易的端到端聊天
# 在一台机器上执行:nc -l 12345
# 在另一台机器上执行:nc localhost 12345
# 然后你就可以发送消息了

# 8. 创建一个简单的 HTTP 请求
echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80

# 9. 发送数据并接收响应
echo "Hello, World!" | nc example.com 80

小总结:

  • 测试端口:-zv 查看目标主机端口是否开放。
  • 文件传输: 配合 -l 模式,简单实现发送和接收。
  • 模拟客户端: 手动发送请求,调试服务(如 HTTP)。

nc 是命令行下的网络全能工具,调试与传输样样行!

49. lsof:查看文件和网络连接的多面手

“文件被谁占用?哪个进程占用端口?用它快速搞定!”

用法:lsof [选项]

  • 默认列出系统中所有打开的文件和连接,包括网络套接字。

lsof 的两大核心功能:

  1. 文件占用: 查看文件或设备被哪些进程使用。
  2. 网络连接: 检查端口、IP 和服务状态。

网络相关:重头戏

常用操作:

# 查看所有网络连接
lsof -i

# 查看特定端口的占用情况
lsof -i :80

# 显示详细网络连接(数字端口和 IP 地址)
lsof -Pni

# 显示被特定端口(如 80)占用的进程及其详细信息。
lsof -Pni :80

# 结合 grep 筛选出监听状态的端口
lsof -Pni | grep LISTEN

# 筛选出与某个 IP 地址相关的连接(本地或远程)
lsof -Pni | grep 192.168.1.100

# 查找指定进程的网络连接,PID代表进程号
lsof -Pni | grep <PID>

文件相关操作:核心功能

# 查看文件被哪些进程占用
lsof /path/to/file

# 查看某用户打开的所有文件
lsof -u username

# 查看某进程打开的文件,PID代表进程号
lsof -p <PID>

特点:

  • 灵活强大: 不论是文件占用还是网络连接,lsof 都能快速定位问题。
  • 配合 grep: 在网络场景下,结合 grep 可快速筛选监听状态或特定端口的连接。

小总结:

  • 网络调试:lsof -Pni 查看详细连接信息,配合 grep LISTEN 排查监听端口。
  • 文件调试:lsof 文件路径lsof -p PID 查看文件占用情况。

lsof 是网络和文件调试的多面手,尤其适合端口和连接问题的排查!

50.ip:查看和管理网络配置

“网络连接有问题?用它查看或配置 IP 和路由!”

用法:ip [命令] [选项]

常用操作:

# 1. 查看网络接口信息(类似 ifconfig)
ip addr show

# 2. 查看路由表
ip route show

# 3. 启用网络接口
sudo ip link set eth0 up

# 4. 禁用网络接口
sudo ip link set eth0 down

ip 是强大的网络管理工具,配合 addrroutelink 子命令,轻松查看和配置网络接口!

51. ssh:远程登录工具

“想远程控制服务器?用它轻松连接!”

用法:ssh [选项] 用户名@主机地址

  • 通过 SSH 协议远程登录到目标主机,进行管理或操作。

常用操作:

# 1. 登录远程主机
ssh user@remote_host       # remote_host 代表目标 ip,user 代表用户名

# 2. 指定端口登录,使用 -p 参数
ssh -p 2222 user@remote_host

# 3. 使用指定私钥文件登录
ssh -i /path/to/private_key user@remote_host

# 4. 执行远程命令后退出 
ssh user@remote_host "ls -l /home"

小总结:

  • 远程登录:ssh user@host
  • 指定端口或私钥:-p-i
    ssh,远程操作安全又方便!

52. scp:远程拷贝文件

“想在两台机器之间传文件?用它!”

用法:scp [选项] 源路径 目标路径

  • scp 基于 SSH 传输,支持安全、快速的文件拷贝。

常用操作:

# 1. 从本地传文件到远程
scp file.txt username@remote_host:/path/to/destination

# 2. 从远程下载文件到本地
scp username@remote_host:/path/to/file.txt /local/path/

# 3. 传输整个目录(加 -r 参数 : 递归传输目录)
scp -r /local/folder username@remote_host:/remote/folder

# 4. -P:指定远程主机的 SSH 端口(默认 22)
scp -P 8000 file.txt username@remote_host:/remote/path

scp 是远程传输文件的简单工具,配合 -r 传目录,配合 -P 指定端口,方便高效!

53. rsync:高效文件同步工具

“想同步文件或目录?用它快又稳!”

用法:rsync [选项] 源路径 目标路径

  • rsync 支持增量传输,只同步变化的部分,比 scp 更高效。

常用操作:

# rsync常用选项参数:
# -a:归档模式,保留文件权限、时间戳等信息。
# -v:显示详细信息。
# --delete:删除目标中源目录不存在的文件。
# -e:指定远程传输方式(如 SSH)。

# 1. 同步本地目录到远程
rsync -av /local/dir username@remote_host:/remote/dir

# 2. 从远程目录同步到本地
rsync -av username@remote_host:/remote/dir /local/dir

# 3. 同步时删除目标中多余的文件
rsync -av --delete /local/dir username@remote_host:/remote/dir

# 4. 使用 SSH 指定端口
rsync -av -e "ssh -p 2222" /local/dir username@remote_host:/remote/dir

优点:

  • 增量同步: 只传输修改过的部分,提高效率。
  • 多功能: 支持本地与远程同步,适合大规模文件传输。

rsync 是同步文件和目录的利器,结合 -a 保留信息,--delete 清理目标,多场景传输轻松搞定!

第十部分:日志和系统调试,系统探长

54. strace:系统调用调试工具

“程序卡住了?用它看看系统调用的细节!”

用法:strace [选项] 命令

  • 跟踪指定命令运行时的系统调用和信号。
  • 常用于调试程序错误或分析程序行为。

常用操作:

# 1. 跟踪一个命令的系统调用
strace ls

# 2. 将跟踪输出保存到文件
strace -o trace.log ls

# 3. 仅跟踪文件相关的系统调用
strace -e trace=file ls

# 4. 跟踪指定进程的系统调用, PID代表进程号
strace -p <PID>

# 5. 显示系统调用的时间消耗
strace -T ls

常用选项:

  • -o 文件名:将输出保存到文件。
  • -e trace=file:仅跟踪文件相关的调用(如 openread 等)。
  • -p PID:跟踪已有进程。
  • -T:显示每个系统调用的耗时。

小总结:

  • 跟踪命令:strace 命令 观察其行为。
  • 跟踪进程:-p PID 查看运行中的程序调用。

strace 是系统调试的神器,了解程序和内核交互的细节一目了然!

55. iostat:监控磁盘 I/O 和 CPU 性能

“硬盘和 CPU 忙不忙?用它一查便知!”**

用法:iostat [选项] [间隔时间] [次数]

  • 默认输出: 显示 CPU 和设备的 I/O 使用情况。

常用操作:

# 1. 查看 CPU 和磁盘 I/O 使用情况
iostat

# 2. 持续监控,每 2 秒刷新一次,共显示 5 次
iostat 2 5

# 3. 显示设备的详细 I/O 信息
iostat -d

# 4. 显示 CPU 的详细使用情况
iostat -c

# 5. 显示所有设备的完整统计信息
iostat -x

注意:

  • 安装方法:如果未安装,执行以下命令:
sudo apt update
sudo apt install sysstat

小总结:

  • iostat 查看系统的 CPU 和磁盘性能。
  • -c-d,专注 CPU 或磁盘的详细信息。

iostat,轻松定位性能瓶颈!

56. vmstat:系统性能快照工具

“想快速了解 CPU、内存和磁盘的使用情况?用它看看!”

用法:vmstat [刷新间隔] [次数]

  • 默认输出: 显示 CPU、内存、磁盘、系统进程等统计信息。

常用操作:

# 1. 查看一次系统性能快照
vmstat

# 2. 持续监控,每秒刷新一次,共显示 5 次
vmstat 1 5

# 3. 显示内存、I/O、CPU 和系统状态
vmstat -a

# 4. 显示磁盘块 I/O 信息
vmstat -d

# 5. 显示更详细的 CPU 使用统计
vmstat -t

小总结:

  • 查看系统状态:vmstat 直接获取快照。
  • 持续监控:vmstat 间隔 次数 实时跟踪系统性能。

vmstat 是诊断系统瓶颈的好帮手,尤其适合 CPU 和内存问题排查!

57. dmesg:查看内核日志

“想知道系统硬件或内核发生了什么?用它看看!”

用法:dmesg [选项]

  • 显示系统启动以来的内核日志信息,适合调试硬件问题。

dmesg 常用操作示例:

# 1. 查看完整内核日志
dmesg

# 2. 分页查看内核日志
dmesg | less

# 3. 查看特定关键词日志,比如 USB
dmesg | grep usb

# 4. 实时监控内核日志更新
dmesg -w

dmesg 配合过滤和分页使用,让内核日志清晰直观,实时监控硬件动态更方便!

58. journalctl:万能日志查看器

“任何服务的日志都能查。”

用法:journalctl [选项]

  • 查看系统启动以来的所有日志。

常用操作示例:

# 1. 查看所有日志
journalctl

# 2. 查看特定服务的日志
journalctl -u 服务名

# 比如查看 nginx 服务的日志
journalctl -u nginx

# 3. 实时查看日志更新
journalctl -f

# 4. 查看最近一小时的日志
journalctl --since "1 hour ago"

通过 journalctl,可以方便地查看、过滤和实时跟踪系统日志,调试问题更高效!

59. uptime:这台机跑多久了?

“系统开机多久了?负载高不高?用它一查便知!”

用法:uptime [选项]

  • 显示当前时间、系统运行时长、登录用户数和平均负载。

常用操作示例:

# 1. 查看系统运行时间、登录用户数和平均负载
uptime

# 2. 只显示系统运行时间(更简洁)
uptime -p

# 3. 查看系统启动的具体时间
uptime -s

uptime 是一个简单直观的工具,用来快速了解系统运行时长和负载情况。结合 -p-s 参数,更清晰易读!

60. htop:交互式资源监控工具

“想直观地看 CPU、内存使用情况?用它更方便!”

用法:htop

  • 启动后进入交互式界面,显示系统性能、进程详情,支持排序和操作。

常用操作:

# 先安装
sudo apt update
sudo apt install htop  

# 1. 启动 htop
htop

# 2. 按 F6:切换排序方式
# 比如按 CPU 使用率排序或按内存占用排序。

# 3. 按 F9:结束进程
# 选择进程后,按 F9 并确认结束。

# 4. 按 q + 回车:退出

htop 是增强版的任务管理器,比 top 更易用直观,适合日常监控系统资源和管理进程!

第十一部分:开发者工具,命令行上的黑科技

61. alias:命令也能取外号

“敲太长?给它改个短名字!”

用法:alias 别名='实际命令'

比如:

alias ll='ls -alF'

以后输入 ll 就等于 ls -alF

62. which:这个命令藏哪儿了?

“找出命令的安装路径。”

用法:which 命令名

  • 显示指定命令的绝对路径,告诉你系统中实际执行的是哪个命令。

比如:

which bash
# 输出: /usr/bin/bash

说明 bash 命令安装在 /usr/bin/bash 目录下。

63. envexport:环境变量好帮手

env:查看环境变量

“想知道系统有哪些环境变量?用它!”

# 查看所有环境变量
env

export:设置环境变量

“想添加或修改环境变量?用它!”

# 设置环境变量
export MY_VAR="Hello World"

# 验证变量是否设置成功
echo $MY_VAR

# 将目录添加到 PATH
export PATH=$PATH:/new/path

# 永久保存变量到 ~/.bashrc
echo "export MY_VAR='Hello World'" >> ~/.bashrc
source ~/.bashrc  # 使用 source 加载配置

64. diff:文件不同在哪?

“快速比较两个文件。”

用法:diff [选项] 文件1 文件2

  • 比较两个文件的内容并显示差异。

常用操作:

# 1. 简单对比两个文件
diff file1.txt file2.txt

# 2. 忽略大小写对比
diff -i file1.txt file2.txt

# 3. 递归对比两个目录
diff -r dir1/ dir2/

# 4. 只显示不同的行
diff --brief file1.txt file2.txt

小结:

  • diff 对比文件或目录,快速找到不同之处。
  • 配合参数如 -i(忽略大小写)或 -r(对比目录)更灵活!

65. vim:文件编辑小能手

“想在命令行编辑文件?用它轻松搞定!”

用法:vim 文件名

  • 如果文件不存在,会新建一个文件。

基本操作:

# 1. 打开文件
vim file.txt

# 2. 进入编辑模式
# 在文件中按 `i` 进入编辑模式,开始修改内容。

# 3. 保存并退出
# 按 `Esc` 键退出编辑模式,然后输入 `:wq` 保存并退出。

# 4. 退出不保存
# 按 `Esc` 键退出编辑模式,然后输入 `:q!` 强制退出。

66. tree:目录结构展示工具

“想直观展示目录结构?用它一键搞定!”

用法:tree [选项] [路径]

  • 以树状结构显示目录及文件,方便查看目录层次和文件内容。

常用操作:

# 1. 显示当前目录的树形结构
tree

# 2. 显示指定目录的树形结构
tree /path/to/directory

# 3. 限制层级深度(如最多显示两层)
tree -L 2

# 4. 显示文件大小
tree -h

# 5. 只显示目录(不显示文件)
tree -d

# 6. 输出结果到文件
tree > tree_output.txt

小总结:

  • 显示树形结构:tree 快速展示目录结构。
  • 限制深度:-L 控制层级,避免输出过长。
  • 显示文件信息:-h 加上文件大小,-d 只看目录。

tree 是快速查看和分享目录结构的好工具,让层次清晰直观!

67. xargs:批量操作的好帮手

“想将命令的输出作为另一个命令的输入?用它批量处理!”

用法:xargs [选项] [命令]

  • xargs 将标准输入中的内容转换为命令行参数,适合批量处理。

常用操作:

# 1. 删除匹配的文件(结合 find 使用)
find . -name "*.log" | xargs rm -f

# 2. 将列表中的文件名批量传递给 echo
echo "file1 file2 file3" | xargs echo

# 3. 控制每行传递的参数数量(每次处理 1 个)
echo "file1 file2 file3" | xargs -n 1 echo

# 4. 配合 -I 替换参数(灵活处理每个输入)
echo "file1 file2 file3" | xargs -I {} mv {} /backup

# 5. 并行执行命令(加速批量处理)
find . -name "*.jpg" | xargs -P 4 cp -t /backup

解释:

  • | xargs:将前一个命令的输出传递给后续命令。
  • -n:每次传递的参数数量。
  • -I {}:用 {} 表示输入的每个参数。
  • -P:指定并行执行的任务数。

小总结:

  • 批量删除: 结合 findxargs rm
  • 参数替换:-I {} 灵活指定处理逻辑。
  • 并行加速:-P 提高效率。

xargs 是命令行批量操作的必备工具,简单高效!

68. tee:数据双向输出工具

“想让命令的输出同时保存到文件和终端?用它轻松搞定!”

用法:command | tee [选项] 文件

  • 将命令的标准输出(stdout)同时保存到文件和显示在终端。

常用操作:

# 1. 将命令的输出保存到文件,同时显示在终端
ls -l | tee output.txt

# 2. 追加到文件(不覆盖原文件内容)
ls -l | tee -a output.txt

# 3. 将命令输出保存到多个文件
ls -l | tee file1.txt file2.txt

# 4. 将错误输出(stderr)也保存到文件
ls nonexistentfile 2>&1 | tee errors.log

解释:

  • | tee 文件:将命令的标准输出保存到指定文件。
  • -a:追加模式,不覆盖已有文件内容。
  • 2>&1:重定向错误输出到标准输出,便于保存日志。

小总结:

  • 保存日志:tee 保存输出日志并实时查看。
  • 追加内容:-a 确保不覆盖原文件。
  • 错误捕获:2>&1 保存所有输出(标准和错误)。

tee 是日志记录和命令调试的好帮手,让输出信息无遗漏!

第十二部分:学习与帮助,最贴心的命令

69. man:命令说明书

“忘了用法?查查手册。”

用法:man 命令名

  • 显示指定命令的完整手册,包括用法、参数和示例。

man 常用操作示例:

# 1. 查看 ls 的手册
man ls

# 2. 在手册中搜索关键词,比如 "file"
# 按 / 输入关键词,然后按回车查找
# /file

# 3. 退出手册
# 按 q 键退出

小总结:

  • man 命令名:查命令的说明书。
  • / 搜索:快速定位关键词。

man,不再为忘记命令用法发愁!

70. --help:快速帮你上手

“不想翻手册?用它快速查看命令用法!”

用法:命令 --help

  • 显示命令的简要说明,包括常用选项和用法。

比如查看 ls 的简要帮助:

ls --help

--help简洁易懂,适合快速上手命令操作!

总结:

到这里,我们的下篇内容也差不多结束了!今天我们学习了很多实用的命令,包括 网络管理、日志调试和开发者工具,每个都能帮助你提高效率,快速解决问题。

而 Linux 的世界远不止这些,接下来我们将深入学习 Linux 编程,带你进入一个全新的领域。从编写简单的程序到深入理解系统底层原理,编程让你 不仅能“用” Linux,更能“玩”转 Linux。

下篇内容会更具挑战性,但也同样充满乐趣。如果你对编程有兴趣,千万不要错过,我们下篇见!

如果你觉得今天的内容对你有帮助,别忘了关注我的公众号“跟着小康学编程”,解锁更多 Linux 编程小技巧!另外记得 点赞、在看、转发 哦,让更多人看到这篇干货文章!

怎么关注我的公众号?

非常简单!扫描下方二维码即可一键关注。

此外,小康最近创建了一个技术交流群,专门用来讨论技术问题和解答读者的疑问。在阅读文章时,如果有不理解的知识点,欢迎大家加入交流群提问。我会尽力为大家解答。期待与大家共同进步!


文章推荐

Linux 常用命令大全:2025 新手必学的 70 条命令,一次搞懂!(上篇)
Linux C/C++ 编程环境搭建全攻略:如何让你的开发环境好用到飞起?
gcc/g++/gdb 的正确打开方式:从编译到调试,一次搞懂!
从入门到实战!一篇搞懂 Linux Socket 编程,让你快速上手网络编程!
零基础也能上手!一文搞懂 Linux socket 多进程服务器编程!
你真的懂吗?Linux 多线程服务器模型其实很简单!
还在用多线程?试试 Linux select 这个‘神操作’吧!
Linux IO复用大揭秘:select落伍了?poll才是高效之选!
别再纠结 select 和 poll 了!epoll 才是 I/O 复用的顶流担当!

最码农
二本逆袭进入华为的程序媴,分享最新技术干货!
 最新文章