Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu.Wang 2018-11-27 23:53:58 +08:00
commit ba2843c23a
2 changed files with 47 additions and 46 deletions

View File

@ -2,31 +2,33 @@
======
![](https://www.ostechnix.com/wp-content/uploads/2018/04/how2-720x340.png)
前段时间,我们写了一篇关于 [**SoCLI**][1] 的文章,它是一个从命令行搜索和浏览 Stack Overflow 网站的 python 脚本。今天,我们将讨论一个名为 **“how2”** 的类似工具。它是一个命令行程序,可以从终端浏览 Stack Overflow。你可以如你在 [Google 搜索][2]中那样直接用英语查询,然后它会使用 Google 和 Stackoverflow API 来搜索给定的查询。它是使用 NodeJS 编写的免费开源程序。
前段时间,我们写了一篇关于 [SoCLI][1] 的文章,它是一个从命令行搜索和浏览 Stack Overflow 网站的 python 脚本。今天,我们将讨论一个名为 “how2” 的类似工具。它是一个命令行程序,可以从终端浏览 Stack Overflow。你可以如你在 [Google 搜索][2]中那样直接用英语查询,然后它会使用 Google 和 Stackoverflow API 来搜索给定的查询。它是使用 NodeJS 编写的自由开源程序。
### 使用 how2 从终端浏览 Stack Overflow
由于 how2 是一个 NodeJS 包,我们可以使用 Npm 包管理器安装它。如果你尚未安装 Npm 和 NodeJS请参考以下指南。
由于 `how2` 是一个 NodeJS 包,我们可以使用 Npm 包管理器安装它。如果你尚未安装 Npm 和 NodeJS请参考以下指南。
在安装 Npm 和 NodeJS 后,运行以下命令安装 how2。
```
$ npm install -g how2
```
现在让我们看下如何使用这个程序浏览 Stack Overflow。使用 “how2” 搜索 Stack Overflow 站点的典型用法是:
现在让我们看下如何使用这个程序浏览 Stack Overflow。使用 `how2` 搜索 Stack Overflow 站点的典型用法是:
```
$ how2 <search-query>
```
例如,我将搜索如何创建 tgz 存档。
```
$ how2 create archive tgz
```
哎呀!我收到以下错误。
```
/home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js:59
Transport.prototype.__proto__ = EventEmitter.prototype;
@ -46,85 +48,83 @@ Transport.prototype.__proto__ = EventEmitter.prototype;
```
我可能遇到了一个 bug。我希望它在未来版本中得到修复。但是我在[**这里**][3]找到了一个临时方法。
我可能遇到了一个 bug。我希望它在未来版本中得到修复。但是我在[这里][3]找到了一个临时方法。
要临时修复此错误,你需要使用以下命令编辑 **transport.js**
要临时修复此错误,你需要使用以下命令编辑 `transport.js`
```
$ vi /home/sk/.nvm/versions/node/v9.11.1/lib/node_modules/how2/node_modules/devnull/transports/transport.js
```
此文件的实际路径将显示在错误输出中。用你自己的文件路径替换上述文件路径。然后找到以下行:
```
var EventEmitter = process.EventEmitter;
```
并用以下行替换它:
```
var EventEmitter = require('events');
```
ESC 并输入 **:wq** 以保存并退出文件。
`ESC` 并输入 `:wq` 以保存并退出文件。
现在再次搜索查询。
```
$ how2 create archive tgz
```
这是我的 Ubuntu 系统的示例输出。
[![][4]][5]
![][5]
如果你要查找的答案未显示在上面的输出中,请按**空格键**键开始交互式搜索,你可以通过它查看 Stack Overflow 站点中的所有建议问题和答案。
[![][4]][6]
![][6]
使用向上/向下箭头在结果之间移动。得到正确的答案/问题后,点击空格键或回车键在终端中打开它。
[![][4]][7]
![][7]
要返回并退出,请按 **ESC**
要返回并退出,请按 `ESC`
**搜索特定语言的答案**
如果你没有指定语言,它**默认为 Bash** unix 命令行,并立即为你提供最可能的答案。你还可以将结果缩小到特定语言,例如 perl、python、c、Java 等。
例如,使用 **-l** 标志仅搜索与 “Python” 语言相关的查询,如下所示。
例如,使用 `-l` 标志仅搜索与 “Python” 语言相关的查询,如下所示。
```
$ how2 -l python linked list
```
[![][4]][8]
要获得快速帮助,请输入:
```
$ how2 -h
```
### 总结
how2 是一个基本的命令行程序,它可以快速搜索 Stack Overflow 中的问题和答案,而无需离开终端,并且它可以很好地完成这项工作。但是,它只是 Stack overflow 的 CLI 浏览器。对于一些高级功能,例如搜索投票最多的问题,使用多个标签搜索查询,彩色界面,提交新问题和查看问题统计信息等,**SoCLI** 做得更好。
`how2` 是一个基本的命令行程序,它可以快速搜索 Stack Overflow 中的问题和答案,而无需离开终端,并且它可以很好地完成这项工作。但是,它只是 Stack overflow 的 CLI 浏览器。对于一些高级功能,例如搜索投票最多的问题,使用多个标签搜索查询,彩色界面,提交新问题和查看问题统计信息等,**SoCLI** 做得更好。
就是这些了。希望这篇文章有用。我将很快写一篇新的指南。在此之前,请继续关注 OSTechNix
就是这些了。希望这篇文章有用。我将很快写一篇新的指南。在此之前,请继续关注!
干杯!
--------------------------------------------------------------------------------
via: https://www.ostechnix.com/how-to-browse-stack-overflow-from-terminal/
作者:[SK][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
选题:[lujun9972](https://github.com/lujun9972)
译者:[geekpi](https://github.com/wxy)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,22 +1,23 @@
举例说明 alias 和 unalias 命令
======
![](https://www.ostechnix.com/wp-content/uploads/2018/11/alias-command-720x340.png)
如果不是一个深度的命令行用户的话,你可能已经忘记了这些复杂且冗长的 Linux 命令了。当然,有很多方法可以让你 [**回想起遗忘的命令**][1]。你可以简单的 [**保存常用的命令**][2] 然后按需使用。也可以在终端里 [**标记重要的命令**][3]然后在任何时候你想要的时间使用它们。而且Linux 有一个内建命令 **history** 可以帮助你记忆这些命令。另外一个最简便的方式就是为这些命令创建一个别名。你可以为任何经常重复调用的常用命令创建别名,而不仅仅是长命令。通过这种方法,你不必再过多地记忆这些命令。这篇文章中,我们将会在 Linux 环境下举例说明 **alias****unalias** 命令。
如果不是一个命令行重度用户的话,过了一段时间之后,可能已经忘记了这些复杂且冗长的 Linux 命令了。当然,有很多方法可以让你 [回想起遗忘的命令][1]。你可以简单的 [保存常用的命令][2] 然后按需使用。也可以在终端里 [标记重要的命令][3]然后在任何时候你想要的时间使用它们。而且Linux 有一个内建命令 `history` 可以帮助你记忆这些命令。另外一个记住这些如此长的命令的简便方式就是为这些命令创建一个别名。你可以为任何经常重复调用的常用命令创建别名,而不仅仅是长命令。通过这种方法,你不必再过多地记忆这些命令。这篇文章中,我们将会在 Linux 环境下举例说明 `alias``unalias` 命令。
### alias 命令
**alias** 使用一个用户自定义的字符串来代替一个或者一串命令(包括多个选项,参数)。这个字符串可以是一个简单的名字或者缩写,不管这个命令原来多么复杂。alias 命令已经预装在 shell包括 BASHCshKsh 和 Zsh 等) 当中。
`alias` 使用一个用户自定义的字符串来代替一个或者一串命令(包括多个选项、参数)。这个字符串可以是一个简单的名字或者缩写,不管这个命令原来多么复杂。`alias` 命令已经预装在 shell包括 BASH、Csh、Ksh 和 Zsh 等) 当中。
alias 的通用语法是:
`alias` 的通用语法是:
```
alias [alias-name[=string]...]
```
接下来看几个例子。
**列出别名**
#### 列出别名
可能在你的系统中已经设置了一些别名。有些应用在你安装它们的时候可能已经自动创建了别名。要查看已经存在的别名,运行:
@ -40,7 +41,7 @@ alias pbpaste='xclip -selection clipboard -o'
alias update='newsbeuter -r && sudo pacman -Syu'
```
**创建一个新的别名**
#### 创建一个新的别名
像我之前说的,你不必去记忆这些又臭又长的命令。你甚至不必一遍一遍的运行长命令。只需要为这些命令创建一个简单易懂的别名,然后在任何你想使用的时候运行这些别名就可以了。这种方式会让你爱上命令行。
@ -54,21 +55,22 @@ $ du -h --max-depth=1 | sort -hr
$ alias du='du -h --max-depth=1 | sort -hr'
```
这里的 **du** 就是这条命令的别名。这个别名可以被设置为任何名字,主要便于记忆和区别。
这里的 `du` 就是这条命令的别名。这个别名可以被设置为任何名字,主要便于记忆和区别。
在创建一个别名的时候,使用单引号或者双引号都是可以的。这两种方法最后的结果没有任何区别。
现在你可以运行这个别名(例如我们这个例子中的 **du** )。它和上面的原命令将会产生相同的结果。
现在你可以运行这个别名(例如我们这个例子中的 `du` )。它和上面的原命令将会产生相同的结果。
这个别名仅限于当前 shell 会话中。一旦你退出了当前 shell 会话,别名也就失效了。为了让这些别名长久有效,你需要把它们添加到你 shell 的配置文件当中。
BASH编辑 **~/.bashrc** 文件:
BASH编辑 `~/.bashrc` 文件:
```
$ nano ~/.bashrc
```
一行添加一个别名:
![](https://www.ostechnix.com/wp-content/uploads/2018/11/alias.png)
保存并退出这个文件。然后运行以下命令更新修改:
@ -79,21 +81,20 @@ $ source ~/.bashrc
现在,这些别名在所有会话中都可以永久使用了。
ZSH你需要添加这些别名到 **~/.zshrc**文件中。
Fish跟上面的类似添加这些别名到 **~/.config/fish/config.fish** 文件中。
ZSH你需要添加这些别名到 `~/.zshrc`文件中。Fish跟上面的类似添加这些别名到 `~/.config/fish/config.fish` 文件中。
**查看某个特定的命令别名**
#### 查看某个特定的命令别名
像我上面提到的,你可以使用 alias 命令列出你系统中所有的别名。如果你想查看跟给定的别名有关的命令,例如 du,只需要运行:
像我上面提到的,你可以使用 `alias` 命令列出你系统中所有的别名。如果你想查看跟给定的别名有关的命令,例如 `du`,只需要运行:
```
$ alias du
alias du='du -h --max-depth=1 | sort -hr'
```
像你看到的那样,上面的命令可以显示与单词 du 有关的命令。
像你看到的那样,上面的命令可以显示与单词 `du` 有关的命令。
关于 别名 命令更多的细节,参阅 man 手册页:
关于 `alias` 命令更多的细节,参阅 man 手册页:
```
$ man alias
@ -101,23 +102,23 @@ $ man alias
### unalias 命令
跟它的名字说的一样,**unalias** 命令可以很轻松地从你的系统当中移除别名。unalias 命令的通用语法是:
跟它的名字说的一样,`unalias` 命令可以很轻松地从你的系统当中移除别名。`unalias` 命令的通用语法是:
```
unalias <alias-name>
```
要移除命令的别名,像我们之前创建的 du,只需要运行:
要移除命令的别名,像我们之前创建的 `du`,只需要运行:
```
$ unalias du
```
unalias 命令不仅会从当前会话中移除别名,也会从你的 shell 配置文件中永久地移除别名。
`unalias` 命令不仅会从当前会话中移除别名,也会从你的 shell 配置文件中永久地移除别名。
还有一种移除别名的方法,是创建具有相同名称的新别名。
要从当前会话中移除所有的别名,使用 **-a** 选项:
要从当前会话中移除所有的别名,使用 `-a` 选项:
```
$ unalias -a
@ -144,7 +145,7 @@ via: https://www.ostechnix.com/the-alias-and-unalias-commands-explained-with-exa
作者:[SK][a]
选题:[lujun9972][b]
译者:[dianbanjiu](https://github.com/dianbanjiu)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出