分类 技术 下的文章

Linux世界充满了乐趣,我们越深入进去,就会发现越多有趣的事物。我们会努力给你提供一些小技巧,让你和其他人有所不同,下面就是我们准备的3个小技巧。

1. 如何在不使用Cron的情况调度Linux下的任务

在Linux下,调度一个任务/命令称之为Cron。当我们需要调度一个任务时,我们会使用Cron,但你知道我们在不使用Cron的情况也可以调度一个在将来时间运行的任务吗?你可以按照如下建议操作……

每5秒钟运行一个命令(date)然后将结果写入到一个文件(data.txt)。为了实现这一点,我们可以直接在命令提示符运行如下单行脚本。

$ while true; do date >> date.txt ; sleep 5 ; done &

上述脚本的解释:

  • while true :让脚本进入一个条件总为真的循环中,也就是制造一个死循环,将里边的命令一遍遍地重复运行。
  • dodowhile语句中的关键字,它之后的命令会被执行,在它后边可以放置一个或一系列命令。
  • date >> date.txt :运行date命令,并将其输出写入到data.txt文件中。注意我们使用>>,而不是>
  • >> :对文件(date.txt)进行追加写的操作,这样每次运行命令后,输出内容会被追加到文件中。如果使用>的话,则会一遍遍地覆盖之前的内容。
  • sleep 5 :让脚本处于5秒睡眠状态,然后再运行之后的命令。注意这里的时间单位只能用秒。也就是说如果你想让命令每6分钟运行一次,你应该使用sleep 360
  • donewhile循环语句块结束的标记。
  • & :将整个进程放到后台运行。

类似地,我们可以这样运行任何脚本。下边的例子是每100秒运行一个名为script_name.sh的脚本。

另外值得一提的是上面提到的脚本文件必须处于当前目录中,否则需要使用完整路径(/home/$USER/…/script_name.sh)。实现如上功能的单行脚本如下:

$ while true; do /bin/sh script_name.sh ; sleep 100 ; done &

总结:上述的单行脚本并不是Cron的替代品,因为Cron工具支持众多选项,更加灵活,可定制性也更高。然而如果我们想运行某些测试,比如I/O评测,上述的单行脚本也管用。

还可以参考:Linux 下 11 个定时调度任务例子

2. 如何不使用clear命令清空终端的内容

你如何清空终端的内容?你可能会认为这是一个傻问题。好吧,大家都清楚可以使用clear命令。如果养成使用ctrl + l快捷键的习惯,我们会节省大量时间。

Ctrl + l快捷键的效果和clear命令一样。所以下一次你就可以使用ctrl + l来清空终端的内容了。

总结:因为ctrl + l是一个快捷键,我们不可以在脚本中使用。所以如果我们需要在脚本中清空屏幕内容,还是需要使用clear命令。但我能想到的所有其他情况,ctrl + l都更加有效。

3. 在其它目录运行一个命令,然后自动返回当前工作目录

这是一个很多人可能不知道的令人吃惊的技巧。你可能想在其它目录运行任何一个命令,然后再回到当前目录。要实现这样的目的,你只需要将命令放在一个圆括号里。

我们来看一个例子:

avi@deb:~$ (cd /home/avi/Downloads/)

示例输出:

 avi@deb:~

它首先会cd到Downloads目录,然后又回到了之前的家目录。也许你认为里边的命令根本没有执行,或者是出了某种错误,因为从命令提示符看不出任何变化。让我们简单修改一下这个命令:

avi@deb:~$ (cd /home/avi/Downloads/ && ls -l)

示例输出:

-rw-r-----  1 avi  avi     54272 May  3 18:37 text1.txt
-rw-r-----  1 avi  avi     54272 May  3 18:37 text2.txt
-rw-r-----  1 avi  avi     54272 May  3 18:37 text3.txt
avi@deb:~$

在上述命令中,它首先进入Downloads目录,然后列出文件内容,最后又回到了当前目录。并且它证明了命令成功执行了。你可以在括号中包含任何命令,执行完都会顺利返回到当前目录。

这就是全部内容了,如果你知道任何类似的Linux技巧,你可以在文章下面的评论框中分享给我们,不要忘记将本文和朋友分享 :)


via: http://www.tecmint.com/useful-linux-hacks-commands/

作者:Avishek Kumar 译者:goreliu 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

问题: 我的程序在其内部创建并执行了多个线程,我怎样才能在该程序创建线程后监控其中单个线程?我想要看到带有它们名称的单个线程详细情况(如,CPU/内存使用率)。

线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念。当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间、打开的文件),以使叉分开销最小化,并避免大量高成本的IPC(进程间通信)通道。这些功能让线程在并发执行时成为一个高效的机制。

在Linux中,程序中创建的线程(也称为轻量级进程,LWP)会具有和程序的PID相同的“线程组ID”。然后,各个线程会获得其自身的线程ID(TID)。对于Linux内核调度器而言,线程不过是恰好共享特定资源的标准的进程而已。经典的命令行工具,如ps或top,都可以用来显示线程级别的信息,只是默认情况下它们显示进程级别的信息。

这里提供了在Linux上显示某个进程的线程的几种方式。

方法一:PS

在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。

$ ps -T -p <pid>

“SID”栏表示线程ID,而“CMD”栏则显示了线程名称。

方法二: Top

top命令可以实时显示各个线程情况。要在top输出中开启线程查看,请调用top命令的“-H”选项,该选项会列出所有Linux线程。在top运行时,你也可以通过按“H”键将线程查看模式切换为开或关。

$ top -H

要让top输出某个特定进程并检查该进程内运行的线程状况:

$ top -H -p <pid>

方法三: Htop

一个对用户更加友好的方式是,通过htop查看单个进程的线程,它是一个基于ncurses的交互进程查看器。该程序允许你在树状视图中监控单个独立线程。

要在htop中启用线程查看,请开启htop,然后按来进入htop的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按退出设置。

现在,你就会看到下面这样单个进程的线程视图。


via: http://ask.xmodulo.com/view-threads-process-linux.html

作者:Dan Nanni 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

像任何其他的操作系统一样,GNU/Linux 已经实现的内存管理不仅有效,而且更好。但是,如果有任何进程正在蚕食你的内存,而你想要清除它的话,Linux 提供了一个刷新或清除RAM缓存方法。

Clear RAM Cache and Swap in Linux

如何在 Linux 中清除缓存(Cache)?

每个 Linux 系统有三种选项来清除缓存而不需要中断任何进程或服务。

(LCTT 译注:Cache,译作“缓存”,指 CPU 和内存之间高速缓存。Buffer,译作“缓冲区”,指在写入磁盘前的存储再内存中的内容。在本文中,Buffer 和 Cache 有时候会通指。)

  1. 仅清除页面缓存(PageCache)
# sync; echo 1 > /proc/sys/vm/drop_caches       
  1. 清除目录项和inode
# sync; echo 2 > /proc/sys/vm/drop_caches       
  1. 清除页面缓存,目录项和inode
# sync; echo 3 > /proc/sys/vm/drop_caches 

上述命令的说明:

sync 将刷新文件系统缓冲区(buffer),命令通过“;”分隔,顺序执行,shell在执行序列中的下一个命令之前会等待命令的终止。正如内核文档中提到的,写入到drop\_cache将清空缓存而不会杀死任何应用程序/服务,echo命令做写入文件的工作。

如果你必须清除磁盘高速缓存,第一个命令在企业和生产环境中是最安全,"...echo 1> ..."只会清除页面缓存。 在生产环境中不建议使用上面的第三个选项"...echo 3 > ..." ,除非你明确自己在做什么,因为它会清除缓存页,目录项和inodes。

在Linux上释放也许被内核所使用的缓冲区(Buffer)和缓存(Cache)是否是个好主意?

当你设置许多设定想要检查效果时,如果它实际上是专门针对 I/O 范围的基准测试,那么你可能需要清除缓冲区和缓存。你可以如上所示删除缓存,无需重新启动系统(即无需停机)。

Linux被设计成它在寻找磁盘之前到磁盘缓存寻找的方式。如果它发现该资源在缓存中,则该请求不会发送到磁盘。如果我们清理缓存,磁盘缓存就起不到作用了,系统会到磁盘上寻找资源。

此外,当清除缓存后它也将减慢系统运行速度,系统会将每一个被请求的资源再次加载到磁盘缓存中。

现在,我们将创建一个 shell 脚本,通过一个 cron 调度任务在每天下午2点自动清除RAM缓存。如下创建一个 shell 脚本 clearcache.sh 并在其中添加以下行:

#!/bin/bash
# 注意,我们这里使用了 "echo 3",但是不推荐使用在产品环境中,应该使用 "echo 1"
echo "echo 3 > /proc/sys/vm/drop_caches"

给clearcache.sh文件设置执行权限

# chmod 755 clearcache.sh

现在,当你需要清除内存缓存时只需要调用脚本。

现在设置一个每天下午2点的定时任务来清除RAM缓存,打开crontab进行编辑。

# crontab -e

添加以下行,保存并退出。

0 3 * * * /path/to/clearcache.sh

有关如何创建一个定时任务,更多细节你可以查看我们的文章 11 个定时调度任务的例子

在生产环境的服务器上自动清除RAM是否是一个好主意?

不!它不是。想想一个情况,当你已经预定脚本在每天下午2点来清除内存缓存。那么其时该脚本会执行并刷新你的内存缓存。在某一天由于某些原因,可能您的网站的在线用户会超过预期地从你的服务器请求资源。

而在这时,按计划调度的脚本运行了,并清除了缓存中的一切。当所有的用户都从磁盘读取数据时,这将导致服务器崩溃并损坏数据库。因此,清除缓存仅在必要时并且在你的预料之中,否则你就是个呆瓜系统管理员。

如何清除Linux的交换空间?

如果你想清除掉的空间,你可以运行下面的命令:

# swapoff -a && swapon -a

此外,了解有关风险后,您可以将上面的命令添加到cron中。

现在,我们将上面两种命令结合成一个命令,写成正确的脚本来同时清除RAM缓存和交换空间。

# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'

su -c 'echo 3 > /proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'

在测试上面的命令之前,我们在执行脚本前后运行“free -m” 来检查缓存。

Clear RAM Cache and Swap Space

就是这样,如果你喜欢这篇文章,不要忘记向我们提供您宝贵的意见,让我们知道,您认为在企业和生产环境中清除内存缓存和缓冲区是否是一个好主意?


via: http://www.tecmint.com/clear-ram-memory-cache-buffer-and-swap-space-on-linux/

作者:Avishek Kumar 译者:strugglingyouth 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Red Hat操作系统的社区开发版的最新成员Fedora 22,已经于2015年5月26日发布了。对这个经典的Fedora发行版的发布充斥着各种猜测和预期,而最终Fedora 22推出了许多重大变化。

就初始化进程而言,Systemd还是个新生儿,但它已经准备好替换古老的sysvinit这个一直是Linux生态系统一部分的模块。另外一个用户会碰到的重大改变存在于基本仓库的python版本中,这里提供了两种不同口味的python版本,2.x和3.x分支,各个都有其不同的偏好和优点。所以,那些偏好2.x口味的用户可能想要安装他们喜爱的python版本。自从Fedora 18开始 dandified YUM安装器(即 DNF)就准备替换过时陈旧的YUM安装器了,Fedora最后决定,现在就用DNF来替换YUM。

1) 配置RPMFusion仓库

正如我已经提到过的,Fedora的意识形态很是严谨,它不会自带任何非自由组件。官方仓库不会提供一些包含有非自由组件的基本软件,比如像多媒体编码。因此,安装一些第三方仓库很有必要,这些仓库会为我们提供一些基本的软件。幸运的是,RPMFusion仓库前来拯救我们了。

$ sudo dnf install --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-22.noarch.rpm

2) 安装VLC媒体播放器

Fedora 22默认自带了媒体播放器,即 gnome视频播放器(以前叫做totem)。如果你觉得还好,那么我们可以跳过这一步继续往前走。但是,如果你像我一样,偏好使用最广泛的VLC,那么就去从RPMFusion仓库安装吧。安装方法如下:

sudo dnf install vlc -y

3) 安装多媒体编码

刚刚我们说过,一些多媒体编码和插件不会随Fedora一起发送。现在,有谁想仅仅是因为专有编码而错过他们最爱的节目和电影?试试这个吧:

$ sudo dnf install gstreamer-plugins-bad gstreamer-plugins-bad-free-extras gstreamer-plugins-ugly gstreamer-ffmpeg gstreamer1-libav gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer-plugins-base-tools gstreamer1-plugins-good-extras gstreamer1-plugins-ugly gstreamer1-plugins-bad-free gstreamer1-plugins-good gstreamer1-plugins-base gstreamer1

4) 更新系统

Fedora是一个前锐的发行版,因此它会不断发布更新用以修复系统中出现的错误和漏洞。因而,保持系统更新到最新,是个不错的做法。

$ sudo dnf update -y

5) 卸载你不需要的软件

Fedora预装了一些大多数用户都有用的软件包,但是对于更高级的用户,你可能知道到你并不需要它。要移除你不需要的包相当容易,只需使用以下命令——我选择卸载rhythmbox,因为我知道我不会用到它:

$ sudo dnf remove rhythmbox

6) 安装Adobe Flash

我们都希望Adobe Flash不要再存在了,因为它并不被认为是最安全的,或者存在资源问题,但是暂时先让它待着吧。Fedora 22安装Adobe Flash的唯一途径是从Adobe安装官方RPM,就像下面这样。

你可以从这里下载RPM。下载完后,你可以直接右击并像下面这样打开:

Install Adobe Flash

右击并选择“用软件安装打开”

然后,只需在弹出窗口中点击安装:

Install Adobe

点击“安装”来完成安装Adobe定制RPM的过程

该过程完成后,“安装”按钮会变成“移除”,而此时安装也完成了。如果在此过程中你的浏览器开着,会提示你先把它关掉或在安装完成后重启以使修改生效。

7) 用Gnome Boxes加速虚拟机

你刚刚安装了Fedora,你也很是喜欢,但是出于某些私人原因,你也许仍然需要Windows,或者你只是想玩玩另外一个Linux发行版。不管哪种情况,你都可以使用Gnome Boxes来简单地创建一个虚拟机或使用一个live发行版,Fedora 22提供了该软件。遵循以下步骤,使用你所选的ISO来开始吧!谁知道呢,也许你可以检验一下某个Fedora Spin

首先,打开Gnome Boxes,然后在顶部左边选择“新建”:

Add a new virtual machine (box)

点击“新建”来开始添加一个新虚拟机的进程吧。

接下来,点击打开文件并选择一个ISO:

Choose ISO

在点击了“选择文件或ISO”后,选择你的ISO。这里,我已经安装了一个Debian ISO。

最后,自定义VM设置或使用默认配置,然后点击“创建”。VM默认会启动,可用的VM会在Gnome Boxes以小缩略图的方式显示。

Create VM

自定义你自己的设置,或者也可以保持默认。完成后,点击“创建”,VM就一切就绪了。

8) 添加社交媒体和其它在线帐号

Gnome自带有不错的内建功能用于容纳帐号相关的东西,像Facebook,Google以及其它在线帐号。你可以通过Gnome设置应用访问在线帐号设置,可以在桌面上右键点击或在应用程序中找到该应用。然后,只需点击在线帐号,并添加你所选择的帐号。如果你要添加一个帐号,比如像Google,你可以用它来作为默认帐号,用来完成诸如发送邮件、日历提醒、相片和文档交互,以及诸如此类的更多事情。

9) 安装KDE或另一个桌面环境

我们中的某些人不喜欢Gnome,那也没问题。在终端中运行以下命令来安装KDE所需的一切来替换它。这些指令也可以用以安装xfce、lxde或其它桌面环境。

$ sudo dnf install @kde-desktop

安装完成后,登出。当你点击你的用户名时,注意那个表示设置的小齿轮。点击它,然后选择“Plasma”。当你再次登录时,一个全新的KDE桌面就会欢迎你。

Plasma on Fedora 22

刚刚安装到Fedora 22上的Plasma环境

在 Fedora 22中安装 Cinnamon桌面:

打开SSH终端,输入或粘帖如下命令并回车:

sudo dnf install @cinnamon-desktop

在 Fedora 22中安装 MATE桌面:

打开SSH终端,输入或粘帖如下命令并回车:

sudo dnf install @mate-desktop

在 Fedora 22中安装 XFCE桌面:

打开SSH终端,输入或粘帖如下命令并回车:

sudo dnf install @xfce-desktop

在 Fedora 22中安装 LXDE桌面:

打开SSH终端,输入或粘帖如下命令并回车:

sudo dnf install @lxde-desktop

10) 定制桌面并优化设置

默认的 Gnome 带有一张黑色背景和一个新的锁屏,幸运的是,很容易通过下面的方式来改变:

change desktop

右键点击桌面,然后点修改背景

Desktop or lock screen

你会看到这个窗口,这里你选择新的桌面背景或锁屏图片

进一步,如果你点击“设置”,你会看到一个菜单展示你所以可以修改的设置。举个例子,在笔记本电脑上,你可以修改电源设置来控制合上笔记本电脑时的动作。

11) 安装 Fedy 4.0

Fedy 可以帮助用户和系统管理员来监控系统的运作,并让他们可以控制系统如其所预期的工作。这里有一行脚本可以安装最新版本的 Fedy。打开终端,输入或粘帖如下行并按下回车。

su -c "curl https://satya164.github.io/fedy/fedy-installer -o fedy-installer && chmod +x fedy-installer && ./fedy-installer"

12) 安装 Java

使用如下命令可以很容易的安装 Java。

sudo dnf install java -y

它会根据你的系统架构自动安装32位或64位的 Java 发行版。

13) 在 Fedora 22 上安装浏览器

Fedora 22的默认浏览器是 Firefox,不过其它的浏览器也各有优缺点。最终用户选择浏览器会有种种原因。这里我们提供一些在 Fedora 22上安装其它浏览器的方法。

安装 Google Chrome

使用你惯用的编辑器,在 yum 库目录中打开或创建 google-chrome.repo 文件。

sudo gedit /etc/yum.repos.d/google-chrome.repo

加入以下内容并保存。

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

现在 yum 就配置好可以找到稳定版本的 Chrome 了,使用如下命令安装它。

sudo dnf install google-chrome-stable

安装 Tor 浏览器

在 Fedora 22 中安装 Tor 有一点棘手,在 /etc/yum.repos.d 目录中打开或创建 torproject.repo 文件。

sudo gedit /etc/yum.repos.d/torproject.repo

插入以下内容。

[tor]
name=Tor repo
enabled=1
baseurl=https://deb.torproject.org/torproject.org/rpm/fc/22/$basearch/
gpgcheck=1
gpgkey=https://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.asc

[tor-source]
name=Tor source repo
enabled=1
autorefresh=0
baseurl=https://deb.torproject.org/torproject.org/rpm/fc/22/SRPMS
gpgcheck=1
gpgkey=https://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.asc

也许会问到 GPG 键的指纹,它应该如下。

3B9E EEB9 7B1E 827B CF0A 0D96 8AF5 653C 5AC0 01F1

不幸的是,在 EPEL 和 Fedora 仓库中有一个相同名字的软件包,你需要明确排除这个来避免安装/删除/修改它。所以,在/etc/yum.repos.d/epel.repo 中加入 Exclude=tor 一行。

最后,使用如下命令来安装 Tor。

sudo dnf install tor

安装完成,启动服务。

sudo service tor start

安装 Vivaldi

根据你的系统架构下载32位或64位的 Vivaldi 浏览器。

sudo wget https://vivaldi.com/download/Vivaldi_TP3.1.0.162.9-1.i386.rpm
sudo wget https://vivaldi.com/download/Vivaldi_TP3.1.0.162.9-1.x86_64.rpm

使用下列命令安装下载的 RPM。

sudo rpm -ivh Vivaldi_TP3.1.0.162.9-1.i386.rpm
sudo rpm -ivh Vivaldi_TP3.1.0.162.9-1.x86_64.rpm

尾声

就是这样了,一切就绪。使用新系统吧,试试新东西。如果你找不到与你喜好的东西,linux赋予你自由修改它的权利。Fedora自带有最新的Gnome Shell作为其桌面环境,如果你觉得太臃肿而不喜欢,那么试试KDE或一些轻量级的DE,像Cinnamon、xfce之类。愿你的Fedora之旅十分开心并且没有困扰!!


via: http://linoxide.com/linux-how-to/things-do-after-installing-fedora-22/

作者:Jonathan DeMasi 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

问题: 我在树莓派上安装新版的 Raspbian。但当我使用 sudo apt-get update 命令更新 APT 软件包索引的时候,它抛出下面的错误:
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.
之后我不能在 Raspbian 上安装任何软件包。我怎样才能解决这个错误?

这个错误说 "Problem with MergeList /var/lib/dpkg/status" 表示由于某些原因状态文件损坏了,因此无法解析。这个状态文件包括了已经安装的 deb 软件包的信息,因此需要小心备份。

在这种情况下,由于这是新安装的 Raspbian,你可以安全地删除状态文件,然后用下面的命令重新生成。

$ sudo rm /var/lib/dpkg/status
$ sudo touch /var/lib/dpkg/status
$ sudo apt-get update 

via: http://ask.xmodulo.com/encountered-section-with-no-package-header-error.html

作者:Dan Nanni 译者:ictlyh 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

我们经常需要到检查家里与办公室之间的网络是否连通,那么我们要怎么做呢?打开网站Speedtest.net然后开始测试。网站是通过加载浏览器中的JavaScript脚本然后选择最佳的服务器测速然后用Flash产生图形化的结果。

那么远程服务器呢?要知道大多数远程服务器是没有浏览器可以打开web页面的。用浏览器打开网页测速的瓶颈就在此,你不能按计划的对服务器进行定期的常规测试。这时需要到一个名为Speedtest-cli的软件来打破这个瓶颈,它能让你通过命令行来测试互联网连接的速度。

Speedtest-cli是什么

此程序是基于Python开发的脚本程序,利用了speedtest.net的服务来测量出上下行的宽带。Speedtest-cli能根据机房离测速服务器的物理距离来列出测速服务器,或者针对某一服务器进行测速,同时还能为你生成一个URL以便你分享你的测速结果。

要在Linux上安装最新版本的speedtest-cli,你必须安装2.4-3.4或者更高版本的Python。

在Linux上安装speedtest-cli

有两种方法可以安装speedtest-cli。第一种方法需要用到python-pip包管理器,第二种方法需要安装Python脚本,生成安装文件然后运行,这里我们分别介绍两种方法:

使用pythin-pip安装speedtest-cli

首先你需要安装python-pip包管理器,之后你就可以用pip命令来安装speedtest-cli

$ sudo apt-get install python-pip
$ sudo pip install speedtest-cli

如果要把speedtest-cli升级至最新版本,你需要输入以下命令

$ sudo pip install speedtest-cli --upgrade

通过Pyhton脚本来安装speedtest-cli

首先要用wget命令从github上下来Python脚本,然后解压提取下载的文件(master.zip)

$ wget https://github.com/sivel/speedtest-cli/archive/master.zip
$ unzip master.zip 

提取出文件后,进入提取出的目录speedtest-cli-master然后使脚本可以执行。

$ cd speedtest-cli-master/
$ chmod 755 speedtest_cli.py 

下一步,把可执行的脚本移动到/usr/bin文件夹,这样你就不用每次都输入完整的脚本路径了。

$ sudo mv speedtest_cli.py /usr/bin/

用speedtest-cli测试互联网连通速度

1. 要测试你的下载与上传速度,只需要运行speedtest-cli命令,不需要带参数。

$ speedtest_cli.py

Test Download Upload Speed in Linux

在Linux下测试上传下载速度

2. 测试上传下载的速度(以字节计算)

$ speedtest_cli.py --bytes

Test Internet Speed in Bytes

测试bytes的速度

3. 工具提供一个链接来下载由你的宽带测试结果生成的图片,你可以分享给你的家人朋友。

Share Internet Speed Results

分享测速结果

下面的图片就是你通过以上的命令行测速而生成的图片

Speed Test Results

测速结果

4.如果你仅仅需要Ping,上传,下载的结果,就运行以下命令:

$ speedtest_cli.py --simple

Test Ping Download Upload Speed

测试Ping,上传,下载的速度

5. 列出speedtest.net所有的服务器距离你的物理距离,单位是千米(km)

$ speedtest_cli.py --list

Check Speedtest.net Servers

列出Speedtest.net的服务器

6. 当获得一个非常长的服务器列表之后,怎么列出我想要的某个服务器?如果我要在speedtest.net服务器列表中找出位于Mumbai(印度)的服务器呢?

$ speedtest_cli.py --list | grep -i Mumbai

Check Nearest Server

列出最近的服务器

7. 对指定的服务器进行测速。我们使用上面例子5和例子6中获取的服务器ID:

$ speedtest_cli.py --server [server ID]
$ speedtest_cli.py --server [5060]              ## 这里使用服务器ID为5060作为例子

Test Connection Against Server

对指定的服务器进行测速

8. 输出speedtest-cli的版本信息和帮助文档

$ speedtest_cli.py --version

Check SpeedCli Version

输出版本号

$ speedtest_cli.py --help

SpeedCli Help

输出帮助文档

提醒:报告中的延迟并不是确切的结果,不应该过于依赖它;这个数值可以当作相对延迟,这对你选择某一测试服务器来说是可靠的。同时,CPU和内存的容量会影响结果的准确度。

结论

系统管理员和开发者应该必备这个简单的脚本工具,这个轻量级的工具功能齐全,真是太赞了。我不喜欢Speedtest.net的原因是它使用来flash,相反speedtest-cli刚好戳中了我的痛点。

speedtest\_cli是一个第三方工具,也不能自动地记录下宽带速度。Speedtest.net拥有上百万的用户,你可以自己配制一个小型的测速服务器

上面就是所有内容,更多内容敬请关注我们。如果你有任何反馈记得在文章下方评论,如果你喜欢别忘了给我们点个赞,分享我们的文章。


via: http://www.tecmint.com/check-internet-speed-from-command-line-in-linux/

作者:Avishek Kumar 译者:NearTan 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出