标签 命令行 下的文章

Linux 命令行工具很牛逼,Linux 命令行以及一些第三方应用让 Linux 变得更牛逼。Linux 命令行工具可以用于下载种子和文件,可以上网冲浪。

5 Command Line Internet Tools

本文推荐的5个强悍的上网工具方便实用,是居家旅行的必备物品。

1. rTorrent

rTorrent 基于文本的 Torrent 客户端,用 C++ 调制而成,我们的目标是高性能!我们可运行在标准的 Linux 发行版中,包括 FreeBSD 和 Mac OS X。

安装 rTorrent

# apt-get install rtorrent    (基于 APT 的系统,如 Debian,Ubuntu)
# yum install rtorrent        (基于 YUM 的系统,如 RHEL,Fedora)

检查有没有安装成功,运行下面命令试试:

# rtorrent

rTorrent Command Line Tool

rTorrent 的用法

下面是 rTorrent 比较常用的功能:

  • CTRL+ q – 退出 rTorrent。
  • CTRL+ s – 开始下载。
  • CTRL+ d – 暂停下载任务,或删除己被暂停的下载任务。
  • CTRL+ k – 关闭一个正在下载的任务
  • CTRL+ r – 在开始上传、下载之前,使用 Hash 检查文件,确保文件的完整性。
  • CTRL+ q – 按再次这个组合键,rTorrent 无条件退出。
  • Left Arrow Key – 回退到上个页面。
  • Right Arrow Key – 前进到下个页面。

2. Wget

Wget 是一个 GNU 项目,它的名称参考了 World Wide Web (WWW)。Wget 在递归下载方面做得很好,你可以将整个网站的内容都下到本地,然后访问本地的 HTML 文件。它支持多种操作系统:Windows,Mac,Linux。它支持多种协议,可通过 HTTP,HTTPS 和 FTP 下载文件。它可以对整个网站做一个镜像(完全将目标网站的文件下载到本机),支持代理,支持断点传输(即下载可暂停)。

安装 Wget

Wget 也是一个 GNU 项目,在标准 Linux 发行版中都有内置,就是说你不用下载安装它就可以使用了。万一,它没有被默认安装,你也可以通过 APTYUM 安装。

# apt-get install wget    (基于 APT 的系统,如 Debian,Ubuntu)
# yum install wget        (基于 YUM 的系统,如 RHEL,Fedora)

Wget 的用法

下载一个文件:

# wget http://www.website-name.com/file

下载整个网站:

# wget -r http://www.website-name.com

下载指定类型的文件(比如 PDF 和 PNG):

# wget -r -A png,pdf http://www.website-name.com

下面是一张 Wget 的截图,我们正在把 Yahoo.com 网站整个都镜像下来。

Wget Command Line File Download

关于 wget 的更多用法,参考Wget 的10个的用法

3. cURL

cURL 是一个客户端工具,支持多种文件传输协议,比如 FTP, HTTP, FTPS, TFTP, TELNET, IMAP, POP3 等等。不像 wget 等工具,cURL 只是一个单纯的下载器,支持 LDAP, POP3,支持代理下载,支持断点续传。

安装 cURL

大多数发行版都默认安装了 cURL,如果没有,可通过 aptyum 下载:

# apt-get install curl    (基于 APT 的系统,如 Debian,Ubuntu)
# yum install curl        (基于 YUM 的系统,如 RHEL,Fedora)

cURL 基本用法

# curl www.tecmint.com

Curl Data Download

Curl Download

4. w3m

W3m 是基于文本的网页浏览器,使用 GPL 协议,支持 tables, frames, color, SSL 连接,支持内嵌图片,以快速闻名。

安装 w3m

W3m 也是大多数发行版的默认配置,也可通过 aptyum 安装。

# apt-get install w3m    (基于 APT 的系统,如 Debian,Ubuntu)
# yum install w3m        (基于 YUM 的系统,如 RHEL,Fedora)

w3m 的基本用法

# w3m www.tecmint.com

w3m Text Based Web Browser

5. Elinks

Elinks 是一个免费的基于本文的网页浏览器,支持 HTTP,支持 HTTP Cookie,支持 PerlRuby 写的脚本,支持网页标签,支持鼠标,可彩色显示页面,支持 HTTP, FTP,SMB,IPv4,IPv6

安装 Elinks

大多数发行版已经默认安装了 Elinks,如果没有,通过 aptyum 安装。

# apt-get install elinks    (基于 APT 的系统,如 Debian,Ubuntu)
# yum install elinks        (基于 YUM 的系统,如 RHEL,Fedora)

Elinks的基本用法

elinks www.tecmint.com

Elinks Command Line Web Browsing


via: http://www.tecmint.com/command-line-tools-for-downloading-file-and-browsing-websites/

译者:bazz2 校对:wxy

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

在比较文件的时候,通常会用基于GUI的软件。很少有人真正会为了这个目的使用命令行工具。虽然说使用命令行来比较文件/目录并不像一件小事儿那样容易,但是如果你是一个Linux使用者,那么我想你应该知道如何通过命令行比较文件,因为一旦使用了它,你会认为它绝对是一个快速的方法。

在本篇中,我们将通过一些实例来学习如何使用diff命令。

Linux diff 命令

让我们通过一些实际的例子理解diff命令。

假设我们有两个文件(file1 和 file2):

$ cat file1
Hi,
Hello,
How are you?
I am fine,
Thank you.


$ cat file2
Hello,
Hi,
How are you?
I am fine.

你可以看见两个文件有些小的不同。现在,让我们看看diff命令如何找出两者的不同的。

像这样运行diff命令:

$ diff file1 file2
1d0
< Hi, 
2a2 
> Hi,
4,5c4
< I am fine,
< Thank you.
--- 
> I am fine.

你可以看见diff后面跟了两个文件的名字作为命令行的参数,并且它在输出中生成了差异比较。输出并不容易理解。理由是,这是被计算机使用的而不是为了人类。尽管如此,让我们一步步解码输出:

注意 – 在下面的文本中,file1和file2将被当作旧文件和新文件。

1d0
< Hi,

这里,1d0这一行意味着旧文件的第一行应该被删除(d)以使两个文件的第一行同步。旧文件中需要被删除的行以'<'标记。

2a2
> Hi,

这里,2a2行意味着新文件中的第二行应该加到旧文件的第二行后。要添加的行显示在输出的下一行用'>'标记。

4,5c4
< I am fine,
< Thank you.
---
> I am fine.

这里,4,5c4这一行意味着在旧文件中的4到5行现在已被改变并且需要用新文件中的第4行代替。添加和删除的行分别用'>'和'<'表示。

那么,来总结一下,

  • 首先diff命令的第一个参数被视为旧文件而第二个参数被视为新文件。
  • 像1d0、2a2、4,5c4这种表达式可以用语法解码为 旧文件的行号或者行的范围[新文件的行号或者行的范围]。这里的'行为'可以是追加,删除或者改变替换。
  • '<'代表删除的行,而'>'代表添加的行。

除了文件外,diff命令还可以比较两个目录。让我们通过一个例子学习。

这里是'new\_dir'目录包含的内容:

$ ls new_dir/
file file2 frnd frnd1.cpp log1.txt log3.txt log5.txt
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt

这是'origdir'目录含有的内容:(译注:原文为and here are the contents of a directory named ‘olddir’ ,其中'old\_dir'应为笔误。)

$ ls orig_dir/
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt test
file2 frnd frnd1.cpp log1.txt log3.txt log5.txt

下面是diff命令执行后的输出:

$ diff new_dir/ orig_dir/
Only in new_dir/: file
Only in orig_dir/: test

你可以看到当diff命令被用来比较这两个目录时,很容易就会显示两个文件中缺失的文件。

下面是一些在命令行下常用的选项:

1. 用 -i 忽略大小写

如果两个文件含有相同的文本但是大小写不同,diff命令仍会默认报告它不同。

比如:

$ cat file1
HI

$ cat file2
hi

$ diff file1 file2
1c1
< HI
---
> hi

你可以看见diff命令在输出中报告了大小写不同。

要去除这个默认行为,使用-i选项。

以下是个例子:

$ diff -i file1 file2
$

这样你可以看到没有生成输出,这是当两个文件相同时的默认行为。

2. 用 -s 选项报告两个文件相同

在例子1的后面,我们看到如果文件相同diff不会生成报告。虽然这个默认行为不错但是它仍可能会造成很大疑惑,特别对于新手而言。因此,如果你像样diff命令明确地报告两个文件不同,那么就使用-s命令选项。

来举个例子:

$ diff -is file1 file2
Files file1 and file2 are identical

你可以看到我加了-s选项在后面的例子中,这次diff命令会明确地报告两个文件是相同的。

3. 使用 -b 忽略空格

另外一个常用的是diff报告文件存在不同数量的空格。

举例说明:

$ cat file1
Hi, how are you?

$ cat file2
Hi, how are  you?

观察这两个文件唯一的不同是file2中'are'和'you'之间额外的空格。现在,当使用diff命令比较两个文件时,输出如下:

$ diff file1 file2
1c1
< Hi, how are you?
---
> Hi, how are  you?

因此你可以看到diff命令报告了不同。但是如果你想要忽略这些空格,使用 -b 选项。

$ diff -b file1 file2
$

这样你可以看到由于-b选项,diff命令报告这两个文件是相同的。

diff命令还提供了更多的命令行选项。阅读man page来获取完整的列表。


via: http://linoxide.com/linux-command/linux-diff-command-examples/

译者:geekpi 校对:Caroline

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

如果在Linux桌面系统中你经常使用一个程序,你可能想去创建一个“桌面快捷方式”,以便于你在桌面只要点击一下快捷方式就可以启动它。虽然不少带有图形界面的程序会在安装时自动在桌面上创建快捷方式,还有一些图形界面程序或者命令行程序可能需要你手动创建快捷方式。

在这个教程里,我将告诉你如何在不同的Linux桌面上添加桌面快捷方式。(译注:其实除了作者所述的这些方法外,各种桌面上也还有更简便的方法,大家可以评论分享自己的经验)

一个桌面快捷方式是由内含该APP元信息(例如,app的名字,启动命令或者图标位置等)的.desktop文件所表示的。桌面快捷方式文件放置于/usr/share/applications或者~/.local/share/applications处。前一个目录存储的桌面快捷方式每个用户都可以使用,而后一个目录则含有仅仅为特定用户创建的快捷方式。

使用命令行创建桌面快捷方式

要为特定程序或命令创建桌面快捷方式,你可以使用任意文本编辑器创建一个.desktop文件,然后把它放到/usr/share/applications或者~/.local/share/applications处。一个典型的.desktop文件如下图所示。

[Desktop Entry]
Encoding=UTF-8
Version=1.0                                     #version of an app.
Name[en_US]=yEd                                 #name of an app.
GenericName=GUI Port Scanner                    #longer name of an app.
Exec=java -jar /opt/yed-3.11.1/yed.jar          #command used to launch an app.
Terminal=false                                  #whether an app requires to be run in a terminal
Icon[en_US]=/opt/yed-3.11.1/icons/yicon32.png   #location of icon file.
Type=Application                                #type
Categories=Application;Network;Security;        #categories in which this app should be listed.
Comment[en_US]=yEd Graph Editor                 #comment which appears as a tooltip.

除了手动创建.desktop文件之外,依据你的系统所采用的桌面环境的不同有不同的创建应用快捷方式的方法,接下来的教程我将为你讲解。

在GNOME桌面下创建快捷方式

在GNOME桌面环境下,你可以使用gnome-desktop-item-edit轻松创建创建一个桌面快捷方式。

$ gonme-desktop-item-edit ~/.local/share/applications --create-new 

在这个例子中,gnome-desktop-item-edit会在目录~/.local/share/applications中自动创建一个桌面启动器文件。若是想自定义快捷方式图标或者其它信息,你可以手动编辑.desktop文件。

如果在你的系统上,gnome-desktop-item-edit不可用(例如,在Ubuntu上),你可以依照下面方式安装:

$ sudo apt-get install --no-install-recommends gnome-panel 

在KDE桌面创建快捷方式

kickoff是KDE桌面默认的应用启动器。可以直接在kickoff里添加新的应用启动快捷方式。

首先右击位于你桌面左下角处的kickoff图标,然后选择菜单“编辑应用”。

在你要创建快捷方式的合适分类处(例如, "Utilities")右击,点击位于顶部的“新条目”按钮,键入应用的名字。

最后,填上使用快捷方式启动app时所需的元信息即可。

在xfce桌面上创建快捷方式

假如你使用xfce桌面,在桌面空白处右击,选择“创建启动器”按钮。然后填上快捷方式的详细信息就可以了。

在Cinnamon桌面上创建快捷方式

假如使用的是Linux Mint的Cinnamon桌面,你可以在桌面空白处右击鼠标,选择菜单“创建启动器”而创建一个应用启动器。

在LXDE桌面上创建快捷方式

在LXDE桌面,你只需在桌面空白处右击一下鼠标,然后选择“创建新快捷方式”就可以咯。


via: http://xmodulo.com/2013/11/create-desktop-shortcut-launcher-linux.html

译者:Linux-pdz 校对:Caroline

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

你可能知道,可以在你的浏览器里进行互联网速度测试。不过这篇Make Tech Easier教程给我们展示了如何在终端窗口中做同样的事情,非常适合你的树莓派或家用服务器上做。

打开一个终端,只需要运行下面命令:

wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test10.zip

这个测试是使用wget命令从远程仓库服务器下载一个10MB文件(译者注:其实你可以下载任何一个其它的较大文件)。当文件下载完成,下载速度就会显示在终端,你就可以知道你正在连接的网络速度有多快了(译者注:其实这也与你所下载的文件所在的带宽有关,并非全面的测试)。

任何运行linux的PC(译者注:一般,我们所说的PC是指'IBM PC兼容机',此架构中的中央处理器采用英特尔或超微等厂商所生产的中央处理器)能够运行wget命令。WindowsMac用户需要下载这个程序,但是功能差不多是一样的。点击下述链接可以了解更多。

怎样从终端测试你的网速 | Make Tech Easier

via: http://lifehacker.com/how-to-test-your-internet-speed-with-a-terminal-command-1364123567

译者:flsf 校对:Caroline

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

如果你不使用torrent命令行客户端是担心它太复杂,那么,请重新考虑下。我相信一旦使用过了基于命令行的BT客户端,你就会离不开它:你可以非常轻松地在你的终端窗口启动和监控进度。在这篇文章中,我们将会介绍一个强大的命令行BT客户端 - rtorrent

NOTE - 文中展示的所有示例和指令都已经在Ubuntu 13.04中测试过。

rtorrent - 命令行BT客户端

rtorrent-main

简明教程

rtorrent 是一个用来轻松下载文件的命令行BT客户端(基于ncurses). 安装这个BT客户端之后,可以用下面命令运行它:

rtorrent

这有一个运行rtorrent后的窗口的截图:

rtorrent-3

好吧,我同意这个主窗口看起来并不是很美观,而且显示的信息有一点点混乱。不要担心,只要在你的键盘上按下enter就会有一个提示出现在窗口底部.

这是截图:

rtorrent-4

注意这个出现在屏幕上的提示load.normal>,下一步仅需输入torrent文件的名字。例如,我输入这个torrent文件名 Fedora-20-Alpha-x86\_64-DVD.torrent.

rtorrent-6

注意你只需要输入torrent文件名(如果不在当前目录的话,那就要输入完整的路径)。你可以轻松的使用bash的快捷键比如[TAB]来补全文件名和路径。之后,再次按下enter。

rtorrent-7

现在你可以看到torrent文件已经加载了,但是你需要激活它,让它开始下载。怎么做呢?首先按下向下箭头键。现在应该在之前加载文件的详细信息前面上显示了一个星号(译者注:表示选中)。

rtorrent-8

注意在torrent文件信息开头显示的星号,现在,按下 Ctrl+s 开始下载。

rtorrent-9

rtorrent现在已经开始下载当前文件了。用 Ctrl+d 停止下载,再用一次 Ctrl+d 可以移除torrent任务,即卸载它。用 Ctrl+q 退出rtorrent。

你可以看到尽管基于命令行,但是事实上操作rtorrent并不是很难。

下载/安装

一些重要的关于rtorrent的链接:

Ubuntu 用户可以从Ubuntu软件中心下载rtorrent. 现在使用的版本是0.9.2.

rtorrent 下载安装之后,你必须设置一个资源文件(配置文件) - .rtorrent.rc 。这个文件必须存在,否则程序无法正常启动。下图就是我没有设置 ~/.rtorrent.rc 运行程序的结果。

rtorrent-1

你可以看到程序显示了一个不能读取到资源文件的错误。设置这个文件,首先下载文件模板,根据需求改一改。

注意 - 我上面提到的链接是官方的下载链接。这个文件和我的 ~/.rtorrent.rc有一点不同。

这是我使用的资源文件:

# For temporary downloaded files
# 临时下载文件
directory = ~/rTempDownloadFiles

# Directory to save and resume torrent sessions
# 保存和恢复torrent会话的目录
session = ~/rSession

# Other Tunables
# 其它可调参数
upload_rate = 30
download_rate = 200
peer_exchange = yes

# DHT enabled
# 开启DHT
dht = auto

# custom throttles
# 自定义阀门(译者注:流量限制)
throttle_up = low,10
throttle_down = low,10
throttle_up = med,20
throttle_down = med,20

# Watch a directory for new torrents, restart torrents that have been
# 监控目录中新的torrent, 重新启动torrent
# copied back and stop those that have been deleted.
# 复制并且阻止已经删除的.

schedule = watch_directory,0,10,load_start=~/rWatch/*.torrent
schedule = tied_directory,10,10,start_tied=
schedule = untied_directory,10,10,close_untied=

# Enable the default ratio group
# 启用默认比率组
ratio.enable=

# Change the limits, the defaults should be sufficient.
# 改变限制,默认应该足够
ratio.min.set=50
ratio.max.set=150
ratio.upload.set=20M

# Changing the command triggered when the ratio is reached.
# 当比值达到,改变命令触发
system.method.set = group.seeding.ratio.command, d.close=, d.erase=

# Move finished torrents to completed
# 移走完成的torrent
system.method.set_key = event.download.finished,rm_torrent,”execute=rm,$d.get_tied_to_file=”
system.method.set_key = event.download.finished,move_complete,”execute=mv,-u,$d.get_base_path=,~/rFullDownloadFiles/ ;d.set_directory=~/rFullDownloadFiles/”

注意 - 这个资源文件引用自这个链接.

要使用这个资源文件,不要忘记运行下面的命令(建立资源文件中提到的目录):

mkdir /home//rTempDownloadFiles
mkdir /home//rFullDownloadFiles
mkdir /home//rSession
mkdir /home//rWatch

用你自己的用户名替换 。还有,确保资源文件的名字是 .rtorrent.rc (前面有一个点) 不是 rtorrent.rc,把它保存在你的home目录(我的是/home/himashu).

想知道更多关于使用rtorren,请读用户指南。还可以在rtorrent中浏览详细教程

结论

rtorrent 是为那些想要用命令行BT客户端来代替基于GUI的客户端的用户准备的。虽然它需要为初始化配置付出一些时间并且需要一些操作来习惯,但是这些时间是值得的。尝试一下,它一定会给你留下深刻印象。

优点

  • 功能丰富
  • 大量的自定义选项

缺点

  • 初始配置时需要一点时间
  • 用户可能需要一些时间来习惯

你使用基于CLI的BT客户端吗?它有什么优势和弊端?和我们分享你的经历。

via: http://mylinuxbook.com/rtorrent-bit-torrent-client/

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

译者:flsf01 校对:Caroline

最近几周里,我总是收到人们询问一些快速零散的问题。有时候一个人是在寻找一个有帮助的建议,或者一个具体的命令,或者一个命令行捷径,以完成一个特定的任务。本篇将介绍最近人们向我提出的三个问题,以及完成这些任务的简单方法。

第一个场景

我们要找到那些在过去的一个月中被改动过的文件,并将他们从当前的位置复制到另一个目录中去。

在这种情况下,能否精确的解决取决于你复制文件的时候是否保持了原来的文件树结构,还是你仅仅只是把所有文件全部复制到了一个指定的地方。如果我们只是想把所有的文件保存到一个文件夹中,或许这样做是为了将这些文件归档,那么我们可以使用find这条命令。通过使用find命令,我们能够根据文件被修改的时间查找到他们的位置,然后复制他们到指定的地方。这条命令看起来是这样:

find Documents -mtime -30 -exec cp "{}" Backup \;

上面这条命令会在Documents文件夹中查找在过去30天内被修改过的文件。这些文件之后将会被复制到另一个叫Backup的目录中去。find命令将会通过调用cp命令来执行复制这一操作。通过修改mtime这条参数,我们可以查找到最近某个时间内被修改过的文件,在上面这个例子中它被设定为在过去的30天内。

更多的时候,我们会想要在把文件复制到目标文件夹后,仍然能够保留源文件夹的目录结构。很多时候,人们都希望两个文件夹的内容同步,然后他们会运行一个脚本来使他们保持一致。这种情况下,我们可能会用到rsync这条命令了。这个工具会把新文件、修改过的文件从一个复制到另一个目录中去,同时保持源目录的展示结构:

rsync -a Documents/ Backup

上面的例子,它会先找到哪些文件在Documents中和Backup中都存在,以便不再复制这些不必要的文件。

第二个场景

有一个我们都会做的很普遍的工作,就是在一个文本文件中找到一个单词,然后用另一个单词把这个词在文本中的所有实例都替换掉。

比如,假设我有一个文档中提到一个人名叫“Becky”,但是我后来决定还是用稍微正式点的称呼“Rebecca”为好。对文件中的这个简单的改动,下面这条命令会起到作用:

perl -pi -e 's/Becky/Rebecca/' mydocument.txt

这条微型的Perl脚本会查询文档中所有“Becky”的实例,并且将之改为“Rebecca”。程序首先读取名为mydocument.txt这个要改动的文档,待修改完毕后再保存回去。

第三个场景

一个普遍关注的问题是,在一个硬盘要给别人或者被扔掉之前,需要对其中存储的敏感数据做些什么。

有些人会在电脑里保存一些银行的业务数据或者税务信息,那么这些数据最好在你的硬盘被转手到别人之前被彻底清理掉。现在有一些方法和工具可以让你使用。我最喜欢的一个是shred这条命令,它不仅能对单一文件进行处理,同样也能对整个设备进行处理。要重写一个文件里面的内容,我们可以这样运行shred

shred mytaxes.odt

上面这个例子中,它会移除文件里存的内容,但并不会把文件本身从硬盘中删除掉。如果要清除文件的内容同时删除掉这个文件,我们可以这样运行:

shred -u mytaxes.odt

需要强调的一点是,shred并不是在所有的文件系统中都能正常运行,尤其是那些带有日志功能的比较新的文件系统。在shred的操作手册中写明了哪些文件系统运行这个程序的时候会出问题。当处理敏感数据的时候,最好的方法也许是清除掉整张硬盘。shred同样也能办到。下面这个例子中,显示了如何移除掉我们电脑中第一块硬盘内的所有数据。使用这条命令一定要非常小心:

shred /dev/sda

via: http://distrowatch.com/weekly.php?issue=20130923

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

译者:markvv 校对:wxy