📌  相关文章
📜  从命令行运行 speedtest - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:06:34.546000             🧑  作者: Mango

从命令行运行 speedtest - Shell/Bash

如果你需要测试你的网络连接速度,你可以使用 speedtest 工具。而在命令行中运行它,可以通过 Shell/Bash 编写脚本,提高其使用效率,同时也让速度测试工作更加方便。在本文中,我们将学习如何在 Shell/Bash 中使用 speedtest 来测试你的网络连接速度。

为什么需要用命令行运行 speedtest?
  1. 便于管理和自动化测试。你可以将测试结果存储到文件中,在需要时进行比较分析。
  2. 更加形象地显示网络速度。测试结果在命令行中以数值形式返回,准确反映出速度。
  3. 可以快捷地测试不同时间的网络链接速度,而不需要等待动态网络情况的变化。
  4. 在终端中运行,节约了运行 GUI 界面的时间和资源。
如何在 Shell/Bash 中安装 speedtest?

在 Linux 中,你可以使用 apt-get 命令来安装 speedtest:

sudo apt-get install speedtest-cli

在 MacOS 中,你需要通过 homebrew 安装:

brew install speedtest-cli

在 Windows 系统中,你可以下载 speedtest-cli.exe 并将其放置到你的命令行路径中。

如何在 Shell/Bash 中使用 speedtest?

在 Shell/Bash 中,你可以使用以下命令来运行 speedtest

speedtest

这会自动连接到 speedtest.net 并运行测试。

当然,你也可以添加参数,以获取更多关于测试的信息。例如,你可以增加 -s 参数,以连接到特定文件服务器进行测试:

speedtest -s 12345

你还可以增加 -f 参数,以输出结果,并顺带着展示网络的 IP:

speedtest -f

运行以上命令后,你将得到类似下面的结果:

Retrieving speedtest.net configuration...
Testing from Your ISP (xxx.xxx.xxx.xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by xxx (City, ST) [Distance xxx km]: xx.xx ms
Testing download speed........................................
Download: xx.xx Mbit/s
Testing upload speed..................................................
Upload: xx.xx Mbit/s

在这个例子中,speedtest 测试了下载和上传的速度,并显示了最佳的主机与距离信息。注意响应的单位为 Mbit/s 而不是 MB/s

运行 Shell/Bash 脚本自动测试

我们可以将 speedtest 命令存储在一个脚本文件中,以便快速测试网络速度。

在你的 bin 目录中创建名为 speedtest.sh 的文件并添加以下内容:

#!/bin/bash
now=$(date +"%Y-%m-%d %H:%M:%S")
result=$(speedtest --secure --no-upload)
ping=$(echo "$result" | awk '/Ping:/{print$2}')
down=$(echo "$result" | awk '/Download:/{print$2}')
up=$(echo "$result" | awk '/Upload:/{print$2}')
echo "${now}, ${ping}, ${down}, ${up}" >> ~/Documents/speedtest.csv

这个脚本将测试结果追加到 ~/Documents/speedtest.csv 文件中。当你执行脚本时,你将能够看到类似于以下的结果:

2019-03-27 10:37:31, 5.291 ms, 27.56 Mbit/s, 13.07 Mbit/s

如果脚本没有执行,可能需要更新执行权限:

chmod +x speedtest.sh

现在只需要在命令行中运行脚本即可,每次测速的结果将记录在文件中。

总结

speedtest 是一个强大的工具,可用于测试你的网络连接速度。Shell/Bash 使你可以在命令行中更加方便地使用它,提高你的效率和节省时间。希望这篇文章能够帮助你更好的利用 speedtest