标签 命令行 下的文章

(LCTT译注:这里,我们姑且认为您身处能够访问Internet的地方!)

为什么会有人要从终端搜索互联网上的东西?我不清楚,这里头可能有许多的原因。但是,因为没人要求答案总比没人知道答案少令人失望一点。这里,列出了一些流行的搜索引擎的命令行工具,可以让你们通过Linux终端来访问它们。

1. Google

让我们从一个巨头开始吧:Bing!好吧,只是开个玩笑,事实上应该是Google。坦白讲,你根本不需要使用命令行工具来进行Google搜索。只需要简简单单的一个命令:

$ xdg-open https://www.google.com/search?q="[query]"

它会打开网页浏览器,并转到合适的搜索页面。然而,如果你想要的是从终端窗口查看搜索结果,而不是打开什么网页浏览器,那么我推荐你使用cli-google。它是一个超级老古董了(最后一次更新是在2009年),但我喜欢它。这是一个简单而直接的应用,它会忠实地干好它应该干的事。

安装完cli-google后,你就可以开始用它来搜索了,它的输出是那样的五彩斑斓。你也可以调整搜索结果的数量和你想要的语言,你只需要在终端中敲入:

$ google 

就可以看到所有的选项了。

2. YouTube

关于Google,有太多的东西要放进列表来。我会尽量简明扼要,但绝不会放过该有的。对于许多人而言,YouTube是他们快速查找相关内容视频的首选。要在终端中完成此事,我则钟情于mps-youtube。这个软件可以让你在终端中搜索、下载视频,创建播放列表,以及查看关于视频的评论。安装完mps-youtube后,你可以使用下面的命令来启动:

$ mpsyt 

然后,输入 h 来查看选项。要查看简明用法,你可以像下面这样:

/[query] 

来搜索你想知道的一切,然后输入视频的编号来听听它的声音,或者输入:

i [video-number]

来看看相关信息,也可以输入:

d [video-number]

来下载它。如果你觉得光听还不过瘾,这里还有更好玩的:

set player mplayer
set show_video True 

现在,你可以在另外一个窗口里头用mplayer来播放视频了。

3. 维基百科

与Google一样,对于维基百科,我也喜欢一个古老的脚本,它干的不赖:cliWiki。安装完后,赶紧运行一下看看:

$ cliwiki 

然后,你就可以输入你想要搜索的内容了。如果有直接匹配的条目,终端中就会显示相关页面了。哈,输出内容可真够长的,建议你还是用less命令来看吧。当然,这不是最高效的方法,但你的母的只是想要查看与关键词相关的文本,那这就是你想要的。

4. 海盗湾

现在,让我们聊聊龌龊的东西。网上有很多意想不到的(也许你不觉得)工具,可以帮助你在命令行下查找海盗湾上的种子。而在这其中,pirate-get是我的最爱。它里面蕴藏了大量的选项,你可以通过下面的命令来发现它们:

$ pirate-get -h

但是还是简单一些吧:

$ pirate-get --color -c [category] [query]

以上命令会返回与查询内容相关的特定搜索类目中的结果,输出结果也是彩色的!那里头,程序会提示你输入你想要的结果的编号,输入后就可以从磁链上下载种子了。简单又容易,仅限于没有版权的资料哦!

5. Twitter

Twitter是迎合潮流的一个很好的搜索引擎。我们已经在如何在命令行中访问Twitter一文中介绍了它的用法,但是我个人更喜欢TTYtter。该工具及其强大,它应该有它自身的一席之地,而不再仅仅用于简单搜索了。但在这里,我只想把它当作搜索引擎使用。安装并配置完后,你就可以登陆进去,并使用下面的命令来搜索了:

/search [query] 

界面在视觉上有点粗糙,但是你很快会习惯的。注意,这里头只能用普通的文字,也可以用哈希标记。

最后来小结一下吧,这里列出了我认为人们使用最多5大搜索引擎,这些搜索引擎都可以通过命令行来访问。这里Google图像和Google地图可能缺席了,但我想这些可能不能很好适应控制台环境吧。我也想要寻找一个音乐搜索引擎,但是没有找到对于本列表“有价值的”。就像你可能已经注意到的那样,列表中的工具在功能和选项上是良莠不齐的:其中一些很简单,而另外一些则功能很复杂。但不管怎么说,最后它们都还是完成了它们的任务。

列表中错失了哪些搜索引擎?你还知道哪些没有提到过的工具呢?请在文章评论中告诉我们吧。


Adrien Brochard

我是一位来自法国的Linux爱好者。在尝试了多个发行版后,我最后认可了Archlinux。然而,我一直在试着通过积累一些知识和技巧来改善我的系统。


via: http://xmodulo.com/2014/06/access-popular-search-engines-command-line-linux.html

译者:GOLinux 校对:wxy

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

Betty 是一个将类英语短语翻译成Linux命令的开源工具。这个项目的主要目的是让大家可以通过输入自然语言来使用强大的Linux系统。让我们来看一下它是怎么工作的。

安装

Betty的安装非常简单直接。首先确认你已经安装了下面这些依赖包[LCTT译注,需要安装至少Ruby1.9以上版本]。

对于基于Debian的系统:

sudo apt-get install git curl ruby

对于基于RPM的系统:

yum install git curl ruby

现在用git工具把Betty库clone到你自定义的任何路径。这里我克隆到我的home目录,例如 /home/sk/.

git clone https://github.com/pickhardt/betty

添加betty的别名到你的bashrc配置文件。

sudo nano ~/.bashrc

将下列行添加到文件的末尾:

alias betty="/home/sk/betty/main.rb"

确保你已经正确地设置好了betty的路径。

好了,现在是时候和betty好好地玩耍了。

用法

你应该在英语短语之前加上单词“betty” [LCTT译注,你自然可以用你的小甜心的名字来替换这个不是知道是谁的Betty :>]。你也许已经知道,如果我们想知道在系统中我们的用户名,应该运行下面的命令:

whoami

输出是这样的:

sk

如你所见,我当前登录的用户名是 sk. 现在我也可以通过下面的betty命令获取相同的结果。

betty whats my username

输出是这样的:

Betty: Running whoami
sk

真的好酷,是不是?Betty理解我输入的“whats my username”短语,然后运行“whoami”命令,最后输出结果。

让我们也来看其他命令。

如果你的输入不够准确,Betty也能以多种方式回应你。例如,我们运行下面的命令:

betty whats my name

Betty不确定她应该查找系统用户名还是用户全名。这种情况下,她会询问你多个问题来找到准确的结果。如你下面所见,Betty问我想要运行哪一条命令(whoami 还是 finger $(whoami) | sed 's/.://;q')[LCTT译注,需要你的系统已经安装finger]。我只想知道我的用户名,所以我选择数字1

Betty: Okay, I have multiple ways to respond.
Betty: Enter the number of the command you want me to run, or N (no) if you don't want me to run any.
[1] whoami
Gets your system username.
[2] finger $(whoami) | sed 's/.*: *//;q'
Gets your full name.
1
Betty: Running whoami
sk

压缩和解压缩文件夹

如果你想要压缩一个文件或者文件夹,用下面的命令。例如,我想压缩我home目录下的“test”文件夹。

betty compress test/ test.tar.gz

输出是这样的:

Betty: Running tar -czvf test.tar.gz test/
test/
test/home/
test/home/sk/
test/home/sk/test/
test/home/sk/test/sample

类似的,我们可以用下面的命令来解压缩一个归档文件。

betty uncompress test.tar.gz

输出是这样的:

Betty: Running mkdir test &&  tar -zxvf test.tar.gz -C test
test/
test/home/
test/home/sk/
test/home/sk/test/
test/home/sk/test/sample

完整的Betty命令行列表

Betty工具有一些命令格式。如果你输入“what is my user name”而不是“whats my username”,它是不能识别的。所以,你只能输入Betty支持的英语短语。

下面给出一个Betty支持的完整的命令行列表。

Count:
betty how many words are in this directory
betty how many characters are in myfile.py
betty count lines in this folder
(Note that there's many ways to say more or less the same thing.)

Config:
betty change your name to Joe
betty speak to me
betty stop speaking to me

Datetime:
betty what time is it
betty what is todays date
betty what month is it
betty whats today

Find:
betty find me all files that contain california

Internet:
betty download http://www.mysite.com/something.tar.gz to something.tar.gz
betty uncompress something.tar.gz
betty unarchive something.tar.gz to somedir
(You can use unzip, unarchive, untar, uncompress, and expand interchangeably.)
betty compress /path/to/dir

iTunes:
betty mute itunes
betty unmute itunes
betty pause the music
betty resume itunes
betty stop my music
betty next song
betty prev track
betty what song is playing
(Note that the words song, track, music, etc. are interchangeable)

Fun:
betty go crazy
betty whats the meaning of life
...and more that are left for you to discover!

Map:
betty show me a map of mountain view

Meta:
betty what version are you (or just betty version)
betty whats your github again

Permissions:
betty give me permission to this directory
betty give anotheruser ownership of myfile.txt

Process:
betty show me all processes by root containing grep
betty show me all my processes containing netbio

Sizes:
betty show size for myfile.txt

Spotify:
betty play spotify
betty pause spotify
betty next spotify
betty previous spotify

User:
betty whats my username
betty whats my real name
betty whats my ip address
betty who else is logged in
betty whats my version of ruby

Web queries:
betty turn web on
betty please tell me what is the weather like in London

对Linux初级使用者来说,Betty似乎是一个非常nice的工具。希望这个工具对你也会非常有用。

Cheers!

源代码:


via: http://www.unixmen.com/betty-translate-english-phrases-linux-commands/

译者:love\_daisy\_love 校对:wxy

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

大家好。新的一周,新的冒险!

今天,我们将会学习使用四个相当简单的命令去操作文件。好,废话少说,我们开始吧。

在开始学习这些命令之前,我们先稍微说些题外话,讲讲“通配符”的用处。

通配符

使用图形工具区复制、粘贴、新建目录等操作也许很容易,但是若想完成一些更复杂的任务,例如仅仅将一个目录下的所有.html文件复制到另一个目录中、或者只复制在某个目录中不存在的文件,这时命令行也许会比较方便。我们回到通配符的学习中,通配符是shell的基本功能,它是一个由一些特殊字符组成的集合,它让你可以用一些简单的规则来选择出某些文件。(通配符可以出现在文件名中,用于指定文件名的字符个数和字母的大/小写等规则)。

如下表 :

下面是肖茨先生给出的一些实例,如下表:

如果你使用一个包含文件名参数的命令,你就可以使用通配符。

cp

cp是一个用于复制文件或者目录的命令,它的用法相当的简单。进入到你想复制的文件所在的目录,然后使用如下命令

cp file1 file2 -复制一个文件

或者

cp file1 file2 ... directory -从当前工作目录复制多个文件到指定的目录。

下表是肖茨先生给出的cp命令的一些选项:

mv

mv是今天的第二个命令,我们可以使用mv来重命名一个文件或目录,或者移动一个文件或目录。我们可以这样使用mv命令。

mv filename1 filename2 -若想将文件filename1重命名为filename2。

或者

mv file directory -若想将一个文件移动到某个目录。

下表是一些mv命令的实例

rm

rm命令是用于删除文件或目录,它的用法比较直接,如下:

rm file

或者

rm -r driectory

这里也有一个包含rm其他选项的表

但是,使用rm命令时要小心点。因为并没有撤销删除的选项,因此使用rm命令式要格外的小心,避免对你的系统造成不必要的破坏。

mkdir

mkdir是用于创建目录.它是今天最简单的一个命令:

mkdir directory

看,目录成功创建了!

这是本周的内容,下周二再见,致以最真诚的问候!


via: https://news.opensuse.org/2014/07/08/command-line-tuesdays-part-four/

译者:cvsher 校对:wxy

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

目录当行是命令行系统的基础概念.虽然不是什么难以理解的东西,但是知道一些技巧能够丰富你的经验并且提高工作效率.在这篇文章中,我们会讨论这些小技巧。

我们已经知道的东西

在开始高级技巧之前,有一些必须知道的基本命令:

  • ‘pwd’显示当前目录
  • ‘cd’ 改变当前目录
  • ‘cd’ 跟两个点(cd ..)能返回父目录
  • ‘cd’ 跟着相对目录就能直接切换当相对目录下
  • ‘cd’ 跟着绝对目录就能切换到绝对目录下

高阶技巧

这节将介绍几个技巧方便你进行目录的切换

从任何地方回到home目录

虽然使用‘cd /home/<你的主目录>’, 不是什么大麻烦, 但是有一种方法直接打‘cd’ 就能回到你的主目录.

例子:

$ pwd
/usr/include/netipx
$ cd
$ pwd
/home/himanshu

所以无论你在哪个目录下,都能这么干,然后回到home目录。

注意- 如果要切换到某个其它的指定用户的目录下, 就使用 ‘cd ~user\_name'

用cd - 在目录间切换

假设你的当前工作目录是这样的:

$ pwd
/home/himanshu/practice

如果你想切换到 /usr/bin/X11, 然后又想回到之前的目录。 你会怎么做? 最直接的 :

$ cd /usr/bin/X11
$ cd /home/himanshu/practice/

虽然这样行得通,但是要记住这些复杂的目录就太笨了。这种情况下使用 ‘cd -’ 命令就行.

使用 ‘cd -’的第一步和上面的例子是一样的, 你可以 cd 到你想要切换到的<路径>下,但是回到之前的目录用 ‘cd -’就可以。

$ cd /usr/bin/X11
$ cd -
/home/himanshu/practice
$ pwd
/home/himanshu/practice

如果你想再次回到刚刚访问的目录(在这个例子中是/usr/bin/X11),再使用'cd -'就可以。但是这个命令只会记住上一次访问的目录,这是一个缺点。

用 pushd 和 popd 来切换目录

如果你对'cd -'非常了解了的话,你会发现这个命令只能帮助你在两个目录之间移动,但是很多场景下需要在很多目录之间切换。比如你要从A切换到B再到C然后又想回到A。

一般来说,你需要打出A的完整路径,但是如果这个路径非常复杂,将是非常烦人的一件事,特别是在你的切换非常频繁的话。

一些场景下可以使用 ‘pushd’ 还有 ‘popd’ 命令。 ‘pushd’ 将一个目录存到内存中,‘popd’ 将目录从内存中去除,并且转换到那个目录下。

例如:

$ pushd .
/usr/include/netipx /usr/include/netipx
$ cd /etc/hp/
$ cd /home/himanshu/practice/
$ cd /media/
$ popd
/usr/include/netipx
$ pwd
/usr/include/netipx

使用‘pushd’ 命令存储当前的工作目录 (用 .表示), 然后切换到各种各样的目录去。为了返回之前的目录,只要使用 ‘popd’命令就行了。

(LCTT译注:显然,pushd和popd 是堆栈式操作,你可以push多个目录,然后逐一pop出来,自己试试吧。)

(LCTT译注2:我们之前介绍的autojump,更加智能,不过需要安装一下。)

注意- 你也可以使用不带参数的 ‘pushd’ 来切换到之前存储的目录, 但是不会像 ‘popd’ 一样去除这个目录。


via: http://linoxide.com/linux-command/directory-navigations-tips-tricks/

译者:ggaaooppeenngg 校对:wxy

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

在命令行中切换目录是最常用的操作,不过很少有比一遍又一遍重复“cd ls cd ls cd ls ……”更令人沮丧的事情了。如果你不是百分百确定你想要进入的下一个目录的名字,那么你不得不使用ls来确认,然后使用cd来进入你想要进的那一个。所幸的是,现在大量的终端和shell语言提供了强大的自动补全功能来处理该问题。但是,你仍然需要一直疯狂地敲击TAB键来干这事。如果你和我一样懒惰,你一定会对autojump感到惊喜。

autojump是一个命令行工具,它允许你可以直接跳转到你喜爱的目录,而不用管你现在身在何处。

在Linux上安装autojump

在Ubuntu或Debian上安装autojump:

$ sudo apt-get install autojump

要在CentOS或Fedora上安装autojump,请使用yum命令。在CentOS上,你需要先启用EPEL仓库才行。

$ sudo yum install autojump

在Archlinux上安装autojump:

$ sudo pacman -S autojump

如果你找不到适合你的版本的包,你可以从GitHub上下载源码包来编译。

autojump的基本用法

autojump的工作方式很简单:它会在你每次启动命令时记录你当前位置,并把它添加进它自身的数据库中。这样,某些目录比其它一些目录添加的次数多,这些目录一般就代表你最重要的目录,而它们的“权重”也会增大。

现在不管你在哪个目录,你都可以使用下面的语法来直接跳转到这些目录:

autojump [目录的名字或名字的一部分]

注意,你不需要输入完整的名称,因为autojump会检索它的数据库,并返回最可能的结果。

例如,假定我们正在下面的目录结构中工作。

那么下面的命令将直接让你跳到/root/home/doc下,不管你当前位置在哪里。

$ autojump do

如果你也很讨厌打字,那么我推荐你为autojump起个别名,或者使用默认的别名。

$ j [目录的名字或名字的一部分]

另外一个引人注目的功能是,autojump支持zsh和自动补完。如果你不确认哪里是不是你要跳转的地方,敲击TAB键就会列出完整路径。

还是同样的例子,输入:

$ autojump d

然后敲击tab键,将会返回/root/home/doc或者/root/home/ddl。

最后,对于高级用户,你可以访问目录数据库,并修改它的内容。可以使用下面的命令来手动添加一个目录:

$ autojump -a [目录]

如果你突然想要把当前目录变成你的最爱和使用最频繁的文件夹,你可以在该目录通过命令的参数 i 来手工增加它的权重

$ autojump -i [权重]

这将使得该目录更可能被选择跳转。相反的例子是在该目录使用参数 d 来减少权重:

$ autojump -d [权重]

要跟踪所有这些改变,输入:

$ autojump -s

这会显示数据库中的统计数据。而以下:

$ autojump --purge

命令将会把不再存在的目录从数据库中移除。

简言之,autojump将会受到所有命令行高级用户的欢迎。不管你是在ssh进一台服务器,还是仅仅想要追随复古潮流,敲更少的键来减少导航时间总是件好事。如果你真的热衷于此类工具,你也肯定也想看看Fasd,它应该会给你一个惊喜——我们下次再介绍它。

你觉得autojump怎么样?你会经常用它么?发表一下你的评论吧。


via: http://xmodulo.com/2014/06/speed-up-directory-navigation-linux-terminal.html

译者:GOLinux 校对:wxy

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

今天,肖茨先生将带领我们游历文件系统的第一部分。我们将学到如何访问、列出目录内的文件,以及首次介绍一些选项的运用。OK,让我们开始学习这周的第一个命令。

ls

ls 是一个用来列出目录内文件的命令。通过添加选项来实现多种不同的用途。简单起见,你可以只需键入 ls 。但是,你也可以在命令后面添加一个选项,它会帮助你修饰你的命令。如果你想要随意摆弄一些信息时,这会帮到你的。举例来说,当你要从一个命令的大量输出中找寻指定信息,你可以用选项缩小范围来实现。

这就是选项的基础概念。我们可以用下面书写格式表示:

command(命令) -option(选项) argument(参数)

命令,恩...,我们可以输入 pwd、 ls, 或者我们到目前为止所有学过的命令。

以上我们已经阐述了选项的目的。但是我们需要注意一下书写格式:在前头添加一个破折号。所以,如果选项为 l, 你需要在命令后键入-l

参数是一个命令的操作对象(在这个例子中,它是一个目录,我们将会学到如何浏览它们)。

接着,让我们尝试在主目录里尝试用 ls 命令列出 /etc 目录内容。这次我们先不添加选项。

就这样,列出了一大堆的文件。它们还根据颜色进行了分类。蓝色的是目录,白色的为普通文件,绿色的似乎是某种 shell 脚本文件。除此之外,还有其他不同的颜色来代表不同的文件类型。

接下来,你可以在刚才的命令里添加 -l 选项。添加选项 -l 后也会列出同样的文件和目录,但是以长格式方式输出。如果你需要查看更多信息的话,这个选项将是不错的选择。

长格式

这样,用了长格式后,你可以看到更详细的信息,以及在每行开头类似-rw-r--r-- 令人抓狂的标示。实际上,这只是一种组合,代表了各种意义的信息。

(File Name)就是文件的名称。(Modification time)是文件最后修改的时间。(Size) 用 byte 计量的文件大小。(Group) 是组的名称,和拥有者一起构成文件权限。(Owner) 是文件拥有者的名称。最最重要的…

…文件权限

文件权限在长格式每一行的开端都显得非常的杂乱。第一个字符代表文件类型。如果是 'd' , 意味着它是一个目录。如果是 '-' , 意味着它是一个一般文件。接下来的三个字符分别代表拥有者的可读, 可写 ,可执行的权限。再接着三个字符表示组成员的享有的文件权限,而最后三个字符表示其他人(既不是拥有者也不是同组)对文件的享有权限。

例如,如果有个文件在长格式下显示为:-rw-r--r--, 这说明这是个普通文件(首字符 '-'),拥有者享有可读可写权限,但是没有可执行权限,导致拥有者无法执行该文件(首字符'-'后'rw-'),用户组和其他用户只享有可读权限(你不难发现'r--'字段在后面出现了两次 。如果用户组是 'rwx' 而不是 'r-',则意味着它们可读,可写,可执行)。

ls 的下个选项是 ls -la .. ,-a 它会列出所有的文件,包括隐藏文件。在通常情况下,隐藏文件是不可见的。用长格式列出当前工作目录下的父目录的所有文件。

less

less 是一个可以显示你的文本文件的命令。举例来说,你要在 /etc 下找寻名为 os-release 的文本文件。你可以使用 ls /etc 成功实现,而现在你想要阅读它的内容。

你只需要使用 less /etc/os-release。

..就这样了。

你要如何控制 less 呢?

简单的, 你只需要动动键盘就行了!

less 一次只会显示一个页面的文本。往前翻页你需要按 Page Up, 或者 'b'。往后翻页你可以按Page Down, 或者 空格。大写的G会跳转到文本的末尾,1G会跳转到文本的开端。/字符会在文本内搜索指定字符(例如,如果你输入 /suse ,它会找寻所有文本含有的 suse 并标记出来)。n 会重复执行你的搜索,h会显示所有的选项(h,即帮助的意思)。

按q退出 less 命令。

file

file 会显示文件的类型,是否是你要找的 ASCII 文本,还是 jpg 图片,bash 脚本等。让我们用 /etc/os-release 执行练习。

这样,如你所见,os-release 是一个 ASCII 文本文件。 请尝试其他文件,并观察结果。

下回见了,记住…

…一定要玩的开心啊!


via: https://news.opensuse.org/2014/07/01/command-line-tuesdays-part-three/

译者:Luoxcat 校对:wxy

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