标签 终端 下的文章

视频只能在 GUI 下看么?再想想。

我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你一直在看,如果没有,请回到这里开始,自己试试。你会发现 Linux 终端有很多游戏,消遣和奇怪的东西。

虽然你之前可能已经看过我们日历中的一些玩具,但我们希望对每个人至少有一个新事物。

今天我们要在昨天的玩具 MPlayer 上再加上一个 youtube-dl

正如其名称所暗示的那样,youtube-dl 是一个用于下载 YouTube 视频的命令行程序,但它也可以从其他许多站点下载视频,而且它是一个有着丰富文档的功能齐全的程序,从而使视频获取变得容易。注意:请勿在任何违反你所在司法辖区的版权法的情况下使用 youtube-dl

youtube-dl 使用的是 Unlicense 这个公共领域许可,类似于 Creative Common 的 CC0。这里还有哪些公共领域贡献适用于开源领域的法律意见,但它通常被认为与现有的开源许可证兼容,即使是不推荐使用它的组织也是如此。

最简单地,我们将使用 youtube-dl 来获取视频以便在终端中播放。首先,使用适用于你发行版的方法安装它。对我来说,在 Fedora 中,它被打包在我的仓库中,因此安装非常简单:

$ sudo dnf install youtube-dl

然后,获取一个视频。YouTube 允许你按照许可证进行搜索,所以今天我们将根据知识共享署名许可证查看来自 Gemmy’s Videos 中的壁炉视频。对于 YouTube 视频,你可以像这样用文件 ID 下载,我们也可以指定输出文件名。我故意选择了一个短片,因为长视频会变得很大!

$ youtube-dl pec8P5K4s8c -o fireplace.mp4

如果你昨天没有安装 MPlayer,请继续安装好,如果你之前没有安装 libcaca 则需要安装它。如果你直接用 MPlayer 在命令行中播放视频 ( $ mplayer fireplace.webm ),它能够播放,但是会在一个自己的窗口中,这不是我们想要的。

首先,我设置将 libcaca 强制使用 ncurses 作为显示驱动,使输出保持在我的终端:

$ export CACA_DRIVER=ncurses

然后,我放大了终端(“像素”越多越好),并使用以下命令播放文件(强制使用 libcaca 并静默 MPlayer 的文本输出):

$ mplayer -really-quiet -vo caca fireplace.mp4

这就完成了!

你有特别喜欢的命令行小玩具需要我介绍的吗?提交今年的建议有点晚了,但我们仍然希望在新的一年里有一些很酷的命令行玩具。请在下面的评论中告诉我,我会查看的。让我知道你对今天的玩具有何看法。

一定要看看昨天的玩具,在 Linux 终端收听广播,明天还要再来!


via: https://opensource.com/article/18/12/linux-toy-youtube-dl

作者:Jason Baker 选题:lujun9972 译者:geekpi 校对:wxy

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

我不确定有多少 Web 开发者能完全避免使用命令行。就我来说,我从 1997 年上大学就开始使用命令行了,那时的 l33t-hacker 让我着迷,同时我也觉得它很难掌握。

过去这些年我的命令行本领在逐步加强,我经常会去搜寻工作中能用的更好的命令行工具。下面就是我现在使用的用于增强原有命令行工具的列表。

怎么忽略我所做的命令行增强

通常情况下我会用别名将新的增强的命令行工具覆盖原来的命令(如 catping)。

如果我需要运行原来的命令的话(有时我确实需要这么做),我会像下面这样来运行未加修改的原始命令。(我用的是 Mac,你的用法可能不一样)

$ \cat # 忽略叫 "cat" 的别名 - 具体解释: https://stackoverflow.com/a/16506263/22617
$ command cat # 忽略函数和别名

bat > cat

cat 用于打印文件的内容,如果你平时用命令行很多的话,例如语法高亮之类的功能会非常有用。我首先发现了 ccat 这个有语法高亮功能的工具,然后我发现了 bat,它的功能有语法高亮、分页、行号和 git 集成。

bat 命令也能让我在(多于一屏的)输出里使用 / 搜索(和用 less 搜索功能一样)。

 title=

我将别名 cat 指到了 bat 命令:

alias cat='bat'

prettyping > ping

ping 非常有用,当我碰到“糟了,是不是 X 挂了?/我的网不通了?”这种情况下我最先想到的工具就是它了。但是 prettyping(“prettyping” 可不是指“pre typing”)在 ping 的基础上加了友好的输出,这可让我感觉命令行友好了很多呢。

 title=

我也将 ping 用别名链接到了 prettyping 命令:

alias ping='prettyping --nolegend'

fzf > ctrl+r

在终端里,使用 ctrl+r 将允许你在命令历史里反向搜索使用过的命令,这是个挺好的小技巧,尽管它有点麻烦。

fzf 这个工具相比于 ctrl+r 有了巨大的进步。它能针对命令行历史进行模糊查询,并且提供了对可能的合格结果进行全面交互式预览。

除了搜索命令历史,fzf 还能预览和打开文件,我在下面的视频里展示了这些功能。

为了这个预览的效果,我创建了一个叫 preview 的别名,它将 fzf 和前文提到的 bat 组合起来完成预览功能,还给上面绑定了一个定制的热键 ctrl+o 来打开 VS Code:

alias preview="fzf --preview 'bat --color \"always\" {}'"
# 支持在 VS Code 里用 ctrl+o 来打开选择的文件
export FZF_DEFAULT_OPTS="--bind='ctrl-o:execute(code {})+abort'"

htop > top

top 是当我想快速诊断为什么机器上的 CPU 跑的那么累或者风扇为什么突然呼呼大做的时候首先会想到的工具。我在生产环境也会使用这个工具。讨厌的是 Mac 上的 top 和 Linux 上的 top 有着极大的不同(恕我直言,应该是差的多)。

不过,htop 是对 Linux 上的 top 和 Mac 上蹩脚的 top 的极大改进。它增加了包括颜色输出,键盘热键绑定以及不同的视图输出,这对理解进程之间的父子关系有极大帮助。

一些很容易上手的热键:

  • P —— 按 CPU 使用率排序
  • M —— 按内存使用排序
  • F4 —— 用字符串过滤进程(例如只看包括 node 的进程)
  • space —— 锚定一个单独进程,这样我能观察它是否有尖峰状态

 title=

在 Mac Sierra 上 htop 有个奇怪的 bug,不过这个 bug 可以通过以 root 运行来绕过(我实在记不清这个 bug 是什么,但是这个别名能搞定它,有点讨厌的是我得每次都输入 root 密码。):

alias top="sudo htop" # 给 top 加上别名并且绕过 Sierra 上的 bug

diff-so-fancy > diff

我非常确定我是几年前从 Paul Irish 那儿学来的这个技巧,尽管我很少直接使用 diff,但我的 git 命令行会一直使用 diffdiff-so-fancy 给了我代码语法颜色和更改字符高亮的功能。

 title=

在我的 ~/.gitconfig 文件里我用了下面的选项来打开 git diffgit showdiff-so-fancy 功能。

[pager]
    diff = diff-so-fancy | less --tabs=1,5 -RFX
    show = diff-so-fancy | less --tabs=1,5 -RFX

fd > find

尽管我使用 Mac,但我绝不是 Spotlight 的粉丝,我觉得它的性能很差,关键字也难记,加上更新它自己的数据库时会拖慢 CPU,简直一无是处。我经常使用 Alfred,但是它的搜索功能也不是很好。

我倾向于在命令行中搜索文件,但是 find 的难用在于很难去记住那些合适的表达式来描述我想要的文件。(而且 Mac 上的 find 命令和非 Mac 的 find 命令还有些许不同,这更加深了我的失望。)

fd 是一个很好的替代品(它的作者和 bat 的作者是同一个人)。它非常快而且对于我经常要搜索的命令非常好记。

几个上手的例子:

$ fd cli # 所有包含 "cli" 的文件名
$ fd -e md # 所有以 .md 作为扩展名的文件
$ fd cli -x wc -w # 搜索 "cli" 并且在每个搜索结果上运行 `wc -w`

 title=

ncdu > du

对我来说,知道当前磁盘空间被什么占用了非常重要。我用过 Mac 上的 DaisyDisk,但是我觉得那个程序产生结果有点慢。

du -sh 命令是我经常会运行的命令(-sh 是指结果以“汇总”和“人类可读”的方式显示),我经常会想要深入挖掘那些占用了大量磁盘空间的目录,看看到底是什么在占用空间。

ncdu 是一个非常棒的替代品。它提供了一个交互式的界面并且允许快速的扫描那些占用了大量磁盘空间的目录和文件,它又快又准。(尽管不管在哪个工具的情况下,扫描我的 home 目录都要很长时间,它有 550G)

一旦当我找到一个目录我想要“处理”一下(如删除,移动或压缩文件),我会使用 cmd + 点击 iTerm2 顶部的目录名字的方法在 Finder 中打开它。

 title=

还有另外一个叫 nnn 的替代选择,它提供了一个更漂亮的界面,它也提供文件尺寸和使用情况,实际上它更像一个全功能的文件管理器。

我的 du 是如下的别名:

alias du="ncdu --color dark -rr -x --exclude .git --exclude node_modules"

选项说明:

  • --color dark 使用颜色方案
  • -rr 只读模式(防止误删和运行新的 shell 程序)
  • --exclude 忽略不想操作的目录
  • 安装指引

tldr > man

几乎所有的命令行工具都有一个相伴的手册,它可以被 man <命令名> 来调出,但是在 man 的输出里找到东西可有点让人困惑,而且在一个包含了所有的技术细节的输出里找东西也挺可怕的。

这就是 TL;DR 项目(LCTT 译注:英文里“文档太长,没空去读”的缩写)创建的初衷。这是一个由社区驱动的文档系统,而且可以用在命令行上。就我现在使用的经验,我还没碰到过一个命令没有它相应的文档,你也可以做贡献

 title=

一个小技巧,我将 tldr 的别名链接到 help(这样输入会快一点……)

alias help='tldr'

ack || ag > grep

grep 毫无疑问是一个强力的命令行工具,但是这些年来它已经被一些工具超越了,其中两个叫 ackag

我个人对 ackag 都尝试过,而且没有非常明显的个人偏好,(也就是说它们都很棒,并且很相似)。我倾向于默认只使用 ack,因为这三个字符就在指尖,很好打。并且 ack 有大量的 ack --bar 参数可以使用!(你一定会体会到这一点。)

ackag 默认都使用正则表达式来搜索,这非常契合我的工作,我能使用类似于 --js--html 这种标识指定文件类型搜索。(尽管 agack 在文件类型过滤器里包括了更多的文件类型。)

两个工具都支持常见的 grep 选项,如 -B-A 用于在搜索的上下文里指代“之前”和“之后”。

 title=

因为 ack 不支持 markdown(而我又恰好写了很多 markdown),我在我的 ~/.ackrc 文件里加了以下定制语句:

--type-set=md=.md,.mkd,.markdown
--pager=less -FRX

jq > grep 及其它

我是 jq 的忠实粉丝之一。当然一开始我也在它的语法里苦苦挣扎,好在我对查询语言还算有些使用心得,现在我对 jq 可以说是每天都要用。(不过从前我要么使用 grep 或者使用一个叫 json 的工具,相比而言后者的功能就非常基础了。)

我甚至开始撰写一个 jq 的教程系列(有 2500 字并且还在增加),我还发布了一个网页工具和一个 Mac 上的应用(这个还没有发布。)

jq 允许我传入一个 JSON 并且能非常简单的将其转变为一个使用 JSON 格式的结果,这正是我想要的。下面这个例子允许我用一个命令更新我的所有 node 依赖。(为了阅读方便,我将其分成为多行。)

$ npm i $(echo $(\
    npm outdated --json | \
    jq -r 'to_entries | .[] | "\(.key)@\(.value.latest)"' \
))

上面的命令将使用 npm 的 JSON 输出格式来列出所有过期的 node 依赖,然后将下面的源 JSON 转换为:

{
    "node-jq": {
        "current": "0.7.0",
        "wanted": "0.7.0",
        "latest": "1.2.0",
        "location": "node_modules/node-jq"
    },
        "uuid": {
        "current": "3.1.0",
        "wanted": "3.2.1",
        "latest": "3.2.1",
        "location": "node_modules/uuid"
    }
}

转换结果为:

[email protected]
[email protected]

上面的结果会被作为 npm install 的输入,你瞧,我的升级就这样全部搞定了。(当然,这里有点小题大做了。)

很荣幸提及一些其它的工具

我也在开始尝试一些别的工具,但我还没有完全掌握它们。(除了 ponysay,当我打开一个新的终端会话时,它就会出现。)

你有什么好点子吗?

上面是我的命令行清单。你的呢?你有没有试着去增强一些你每天都会用到的命令呢?请告诉我,我非常乐意知道。


via: https://remysharp.com/2018/08/23/cli-improved

作者:Remy Sharp 选题:lujun9972 译者:DavidChenLiang 校对:pityonline, wxy

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

本简要指南介绍了在类 Unix 操作系统中如何在不使用功能键的情况下切换 TTY。在进一步讨论之前,我们将了解 TTY 是什么。正如在 AskUbuntu 论坛的一个答案中所提到的,TTY这个词来自 TeleTYpewriter(电传打字机)。在 Unix 的早期,连接到计算机的用户终端就是机电的电传机或电传打字机(简称 tty)。从那时起,TTY 这个名称继续用于纯文本控制台。如今,所有文本控制台都代表虚拟控制台,而不是物理控制台。TTY 命令打印连接到标准输入的终端的文件名。

在 Linux 中切换 TTY

默认情况下,Linux 中有 7 个 tty。它们被称为 tty1、tty2……tty7。1 到 6 的 tty 只是命令行。第 7 个 tty 是 GUI(你的 X 桌面会话)。你可以使用 CTRL+ALT+Fn 键在不同的 TTY 之间切换。例如,要切换到 tty1,我们按下 CTRL+ALT+F1。这就是 tty1 在 Ubuntu 18.04 LTS 服务器中的样子。

如果你的系统没有 X 会话, 只需要按下 Alt+Fn 键,不需要按下 CTRL

在某些 Linux 版本中(例如,从 Ubuntu 17.10 开始),登录屏开始使用 1 号虚拟控制台。因此,你需要按 CTRL+ALT+F3CTRL+ALT+F6 来访问虚拟控制台。要返回桌面环境,请在 Ubuntu 17.10 及更高版本上按下 CTRL+ALT+F2CTRL+ALT+F7

目前为止我们看到我们可以使用 CTRL+ALT+FnF1 - F7)在 TTY 之间轻松切换。但是,如果出于任何原因你不想使用功能键,那么在 Linux 中有一个名为 chvt 的简单命令。

chvt N 命令让你切换到前台终端 N,这与按 CTRL+ALT+Fn 相同。如果它不存在,则创建相应的屏幕。

让我们试试显示当前的 tty:

$ tty

我的 Ubuntu 18.04 LTS 服务器的示例输出。

现在让我们切换到 tty2。为此,请输入:

$ sudo chvt 2

记住你需要在 chvt 命令一同使用 sudo

现在,使用命令检查当前的 tty:

$ tty

你会看到 tty 现在已经改变了。

同样,你可以使用 sudo chvt 3 切换到 tty3,使用 sudo chvt 4 切换到 tty4 等等。

当任何一个功能键不起作用时,chvt 命令会很有用。

要查看活动虚拟控制台的总数,请运行:

$ fgconsole
2

如你所见,我的系统中有两个活动的虚拟终端。

你可以使用以下命令查看下一个未分配的虚拟终端:

$ fgconsole --next-available
3

如果虚拟控制台不是前台控制台,并且它没有打开任何进程来读取或写入,并且未在其屏幕上选择任何文本,则它是未使用的。

要移除未使用的虚拟终端,只需键入:

$ deallocvt

上面的命令为所有未使用的虚拟控制台释放内核内存和数据结构。简单地说,此命令将释放连接到未使用的虚拟控制台的所有资源。

有关更多详细信息,请参阅相应命令的手册页。

$ man tty
$ man chvt
$ man fgconsole
$ man deallocvt

就是这些了。希望这很有用。还有更多的好东西。敬请关注!

干杯!


via: https://www.ostechnix.com/how-to-switch-between-ttys-without-using-function-keys-in-linux/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

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

今天,我偶然发现了一组适用于命令行重度用户的实用 BASH 脚本,这些脚本被称为 Bash-Snippets,它们对于那些整天都与终端打交道的人来说可能会很有帮助。想要查看你居住地的天气情况?它为你做了。想知道股票价格?你可以运行显示股票当前详细信息的脚本。觉得无聊?你可以看一些 YouTube 视频。这些全部在命令行中完成,你无需安装任何严重消耗内存的 GUI 应用程序。

在撰写本文时,Bash-Snippets 提供以下 19 个实用工具:

  1. Cheat – Linux 命令备忘单。
  2. Cloudup – 一个将 GitHub 仓库备份到 bitbucket 的工具。
  3. Crypt – 加解密文件。
  4. Cryptocurrency – 前 10 大加密货币的实时汇率转换。
  5. Currency – 货币转换器。
  6. Geo – 提供 wan、lan、router、dns、mac 和 ip 的详细信息。
  7. Lyrics – 从命令行快速获取给定歌曲的歌词。
  8. Meme – 创造命令行表情包。
  9. Movies – 搜索并显示电影详情。
  10. Newton – 执行数值计算一直到符号数学解析。(to 校正:这里不理解)
  11. Qrify – 将给定的字符串转换为二维码。
  12. Short – 缩短 URL
  13. Siteciphers – 检查给定 https 站点启用或禁用的密码。
  14. Stocks – 提供某些股票的详细信息。
  15. Taste – 推荐引擎提供三个类似的项目,如提供物品(如书籍、音乐、艺术家、电影和游戏等。)
  16. Todo – 命令行待办事项管理。
  17. Transfer – 从命令行快速传输文件。
  18. Weather – 显示你所在地的天气详情。
  19. Youtube-Viewer – 从终端观看 YouTube 视频。

作者可能会在将来添加更多实用程序和/或功能,因此我建议你密切关注该项目的网站或 GitHub 页面以供将来更新。

安装

你可以在任何支持 BASH 的操作系统上安装这些脚本。

首先,克隆 git 仓库,使用以下命令:

$ git clone https://github.com/alexanderepstein/Bash-Snippets

进入目录:

$ cd Bash-Snippets/

切换到最新的稳定版本:

$ git checkout v1.22.0

最后,使用以下命令安装 Bash-Snippets:

$ sudo ./install.sh

这将询问你要安装哪些脚本。只需输入 Y 并按回车键即可安装相应的脚本。如果你不想安装某些特定脚本,输入 N 并按回车键。

Do you wish to install currency [Y/n]: y

要安装所有脚本,运行:

$ sudo ./install.sh all

要安装特定的脚本,比如 currency,运行:

$ sudo ./install.sh currency

你也可以使用 Linuxbrew 包管理器来安装它。

安装所有的工具,运行:

$ brew install bash-snippets

安装特定的工具:

$ brew install bash-snippets --without-all-tools --with-newton --with-weather

另外,对于那些基于 Debian 系统的,例如 Ubuntu、Linux Mint,可以添加 PPA 源:

$ sudo add-apt-repository ppa:navanchauhan/bash-snippets
$ sudo apt update
$ sudo apt install bash-snippets

用法

需要网络连接才能使用这些工具。用法很简单。让我们来看看如何使用其中的一些脚本,我假设你已经安装了所有脚本。

1、 Currency – 货币转换器

这个脚本根据实时汇率转换货币。输入当前货币代码和要交换的货币,以及交换的金额,如下所示:

$ currency
What is the base currency: INR
What currency to exchange to: USD
What is the amount being exchanged: 10

=========================
| INR to USD
| Rate: 0.015495
| INR: 10
| USD: .154950
=========================

你也可以在单条命令中传递所有参数,如下所示:

$ currency INR USD 10

参考以下屏幕截图:

Bash-Snippets

2、 Stocks – 显示股票价格详细信息

如果你想查看一只股票价格的详细信息,输入股票即可,如下所示:

$ stocks Intel

INTC stock info
=============================================
| Exchange Name: NASDAQ
| Latest Price: 34.2500
| Close (Previous Trading Day): 34.2500
| Price Change: 0.0000
| Price Change Percentage: 0.00%
| Last Updated: Jul 12, 4:00PM EDT
=============================================

上面输出了 Intel 股票 的详情。

3、 Weather – 显示天气详细信息

让我们查看以下天气详细信息,运行以下命令:

$ weather

示例输出:

正如你在上面屏幕截图中看到的那样,它提供了 3 天的天气预报。不使用任何参数的话,它将根据你的 IP 地址显示天气详细信息。你还可以显示特定城市或国家/地区的天气详情,如下所示:

$ weather Chennai

同样,你可以查看输入以下命令来查看月相(月亮的形态):

$ weather moon

示例输出:

4、 Crypt – 加解密文件

此脚本对 openssl 做了一层包装,允许你快速轻松地加密和解密文件。

要加密文件,使用以下命令:

$ crypt -e [original file] [encrypted file]

例如,以下命令将加密 ostechnix.txt,并将其保存在当前工作目录下,名为 encrypt_ostechnix.txt

$ crypt -e ostechnix.txt encrypt_ostechnix.txt

输入两次文件密码:

Encrypting ostechnix.txt...
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
Successfully encrypted

上面命令将使用 AES 256 位密钥加密给定文件。密码不要保存在纯文本文件中。你可以加密 .pdf、.txt、 .docx、 .doc、 .png、 .jpeg 类型的文件。

要解密文件,使用以下命令:

$ crypt -d [encrypted file] [output file]

例如:

$ crypt -d encrypt_ostechnix.txt ostechnix.txt

输入密码解密:

Decrypting encrypt_ostechnix.txt...
enter aes-256-cbc decryption password:
Successfully decrypted

5、 Movies – 查看电影详情

使用这个脚本,你可以查看电影详情。

以下命令显示了一部名为 “mother” 的电影的详情:

$ movies mother

==================================================
| Title: Mother
| Year: 2009
| Tomato: 95%
| Rated: R
| Genre: Crime, Drama, Mystery
| Director: Bong Joon Ho
| Actors: Hye-ja Kim, Bin Won, Goo Jin, Je-mun Yun
| Plot: A mother desperately searches for the killer who framed her son for a girl's horrific murder.
==================================================

6、 显示类似条目

要使用这个脚本,你需要从这里 获取 API 密钥。不过不用担心,它完全是免费的。一旦你获得 API 密钥后,将以下行添加到 ~/.bash_profileexport TASTE_API_KEY=”你的 API 密钥放在这里”。(LCTT 译注: TasteDive 是一个推荐引擎,它会根据你的品味推荐相关项目。)

现在你可以根据你提供的项目查看类似项目,如下所示:

$ taste -i Red Hot Chilli Peppers

7、 Short – 缩短 URL

这个脚本会缩短给定的 URL。

$ short <URL>

8、 Geo – 显示网络的详情

这个脚本会帮助你查找网络的详细信息,例如广域网、局域网、路由器、 dns、mac 地址和 ip 地址。

例如,要查找你的局域网 ip,运行:

$ geo -l

我系统上的输出:

192.168.43.192

查看广域网 ip:

$ geo -w

在终端中输入 geo 来查看更多详细信息。

$ geo
Geo
Description: Provides quick access for wan, lan, router, dns, mac, and ip geolocation data
Usage: geo [flag]
 -w Returns WAN IP
 -l Returns LAN IP(s)
 -r Returns Router IP
 -d Returns DNS Nameserver
 -m Returns MAC address for interface. Ex. eth0
 -g Returns Current IP Geodata
Examples:
 geo -g
 geo -wlrdgm eth0
Custom Geo Output =>
[all] [query] [city] [region] [country] [zip] [isp]
Example: geo -a 8.8.8.8 -o city,zip,isp
 -o [options] Returns Specific Geodata
 -a [address] For specific ip in -s
 -v Returns Version
 -h Returns Help Screen
 -u Updates Bash-Snippets

9、 Cheat – 显示 Linux 命令的备忘单

想参考 Linux 命令的备忘单吗?这是可能的。以下命令将显示 curl 命令的备忘单:

$ cheat curl

只需用你选择的命令替换 curl 即可显示其备忘单。这对于快速参考你要使用的任何命令非常有用。

10、 Youtube-Viewer – 观看 YouTube 视频

使用此脚本,你可以直接在终端上搜索或打开 YouTube 视频。(LCTT 译注:在媒体播放器中,而不是文本的终端中打开)

让我们来看一些有关 Ed Sheeran 的视频。

$ ytview Ed Sheeran

从列表中选择要播放的视频。所选内容将在你的默认媒体播放器中播放。

要查看艺术家的近期视频,你可以使用:

$ ytview -c [channel name]

要寻找视频,只需输入:

$ ytview -s [videoToSearch]

或者:

$ ytview [videoToSearch]

11、 cloudup – 备份 GitHub 仓库到 bitbucket

你在 GitHub 上托管过任何项目吗?如果托管过,那么你可以随时间 GitHub 仓库备份到 bitbucket,它是一种用于源代码和开发项目的基于 Web 的托管服务。

你可以使用 -a 选项一次性备份指定用户的所有 GitHub 仓库,或者备份单个仓库。

要备份 GitHub 仓库,运行:

$ cloudup

系统将要求你输入 GitHub 用户名, 要备份的仓库名称以及 bitbucket 用户名和密码等。

12、 Qrify – 将字符串转换为二维码

这个脚本将任何给定的文本字符串转换为二维码。这对于发送链接或者保存一串命令到手机非常有用。

$ qrify convert this text into qr code

示例输出:

很酷,不是吗?

13、 Cryptocurrency

它将显示十大加密货币实时汇率。

输入以下命令,然后单击回车来运行:

$ cryptocurrency

14、 Lyrics

这个脚本从命令行快速获取一首歌曲的歌词。

例如,我将获取 “who is it” 歌曲的歌词,这是一首由 迈克尔·杰克逊 Michael Jackson 演唱的流行歌曲。

$ lyrics -a michael jackson -s who is it

15、 Meme

这个脚本允许你从命令行创建简单的表情贴图。它比基于 GUI 的表情包生成器快得多。

要创建一个表情贴图,只需输入:

$ meme -f mymeme
Enter the name for the meme's background (Ex. buzz, doge, blb ): buzz
Enter the text for the first line: THIS IS A
Enter the text for the second line: MEME

这将在你当前的工作目录创建 jpg 文件。

16、 Newton

厌倦了解决复杂的数学问题?你来对了。Newton 脚本将执行数值计算,乃至于符号数学解析。

17、 Siteciphers

这个脚本可以帮助你检查在给定的 https 站点上启用/禁用哪些加密算法。(LCTT 译注:指 HTTPS 通讯中采用的加密算法)

$ siteciphers google.com

18、 Todo

它允许你直接从终端创建日常任务。

让我们来创建一些任务。

$ todo -a The first task
01). The first task Tue Jun 26 14:51:30 IST 2018

要添加其它任务,只需添加任务名称重新运行上述命令即可。

$ todo -a The second task
01). The first task Tue Jun 26 14:51:30 IST 2018
02). The second task Tue Jun 26 14:52:29 IST 2018

要查看任务列表,运行:

$ todo -g
01). The first task Tue Jun 26 14:51:30 IST 2018
02). A The second task Tue Jun 26 14:51:46 IST 2018

一旦你完成了任务,就可以将其从列表中删除,如下所示:

$ todo -r 2
Sucessfully removed task number 2
01). The first task Tue Jun 26 14:51:30 IST 2018

要清除所有任务,运行:

$ todo -c
Tasks cleared.

19、 Transfer

Transfer 脚本允许你通过互联网快速轻松地传输文件和目录。

让我们上传一个文件:

$ transfer test.txt
Uploading test.txt
################################################################################################################################################ 100.0%
Success!
Transfer Download Command: transfer -d desiredOutputDirectory ivmfj test.txt
Transfer File URL: https://transfer.sh/ivmfj/test.txt

该文件将上传到 transfer.sh 站点。Transfer.sh 允许你一次上传最大 10 GB 的文件。所有共享文件在 14 天后自动过期。如你所见,任何人都可以通过 Web 浏览器访问 URL 或使用 transfer 目录来下载文件,当然,transfer 必须安装在他/她的系统中。

现在从你的系统中移除文件。

$ rm -fr test.txt

现在,你可以随时(14 天内)从 transfer.sh 站点下载该文件,如下所示:

$ transfer -d Downloads ivmfj test.txt

获取关于此实用脚本的更多详情,参考以下指南。

获得帮助

如果你不知道如何使用特定脚本,只需输入该脚本的名称,然后按下 ENTER 键,你将会看到使用细节。以下示例显示 Qrify 脚本的帮助信息。

$ qrify
Qrify
Usage: qrify [stringtoturnintoqrcode]
Description: Converts strings or urls into a qr code.
 -u Update Bash-Snippet Tools
 -m Enable multiline support (feature not working yet)
 -h Show the help
 -v Get the tool version
Examples:
 qrify this is a test string
 qrify -m two\\nlines
 qrify github.com # notice no http:// or https:// this will fail

更新脚本

你可以随时使用 -u 选项更新已安装的工具。以下命令更新 “weather” 工具。

$ weather -u

卸载

你可以使用以下命令来卸载这些工具。

克隆仓库:

$ git clone https://github.com/alexanderepstein/Bash-Snippets

进入 Bash-Snippets 目录:

$ cd Bash-Snippets

运行以下命令来卸载脚本:

$ sudo ./uninstall.sh

输入 y,并按下回车键来移除每个脚本。

Do you wish to uninstall currency [Y/n]: y

另请阅读:

好了,这就是全部了。我必须承认,在测试这些脚本时我印象很深刻。我真的很喜欢将所有有用的脚本组合到一个包中的想法。感谢开发者。试一试,你不会失望的。

干杯!


via: https://www.ostechnix.com/collection-useful-bash-scripts-heavy-commandline-users/

作者:SK 选题:lujun9972 译者:MjSeven 校对:wxy

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

许多 Linux 用户认为在终端中工作太复杂、无聊,并试图逃避它。但这里有个改善方法 —— 四款终端下很棒的开源程序。它们既有趣又易于使用,甚至可以在你需要在命令行中工作时照亮你的生活。

No More Secrets

这是一个简单的命令行工具,可以重现 1992 年电影 Sneakers 中所见的著名数据解密效果。该项目让你编译个 nms 命令,该命令与管道数据一起使用并以混乱字符的形式打印输出。开始后,你可以按任意键,并能在输出中看到很酷的好莱坞效果的现场“解密”。

安装说明

一个全新安装的 Fedora Workstation 系统已经包含了从源代码构建 No More Secrets 所需的一切。只需在终端中输入以下命令:

git clone https://github.com/bartobri/no-more-secrets.git
cd ./no-more-secrets
make nms
make sneakers ## Optional
sudo make install

对于那些记得原来的电影的人来说,sneakers 命令是一个小小的彩蛋,但主要的英雄是 nms。使用管道将任何 Linux 命令重定向到 nms,如下所示:

systemctl list-units --type=target | nms

当文本停止闪烁,按任意键“解密”它。上面的 systemctl 命令只是一个例子 —— 你几乎可以用任何东西替换它!

lolcat

这是一个用彩虹为终端输出着色的命令。没什么用,但是它看起来很棒!

安装说明

lolcat 是一个 Ruby 软件包,可从官方 Ruby Gems 托管中获得。所以,你首先需要 gem 客户端:

sudo dnf install -y rubygems

然后安装 lolcat 本身:

gem install lolcat

再说一次,使用 lolcat 命令管道任何其他命令,并在 Fedora 终端中享受彩虹(和独角兽!)。

chafa

chafa 是一个命令行图像转换器和查看器。它可以帮助你在不离开终端的情况下欣赏图像。语法非常简单:

chafa /path/to/your/image

你可以将几乎任何类型的图像投射到 chafa,包括 JPG、PNG、TIFF、BMP 或几乎任何 ImageMagick 支持的图像 - 这是 chafa 用于解析输入文件的引擎。最酷的部分是 chafa 还可以在你的终端内显示非常流畅的 GIF 动画!

安装说明

chafa 还没有为 Fedora 打包,但从源代码构建它很容易。首先,获取必要的构建依赖项:

sudo dnf install -y autoconf automake libtool gtk-doc glib2-devel ImageMagick-devel

接下来,克隆代码或从项目的 GitHub 页面下载快照,然后 cd 到 chafa 目录,这样就行了:

git clone https://github.com/hpjansson/chafa
./autogen.sh
make
sudo make install

大的图像在第一次运行时可能需要一段时间处理,但 chafa 会缓存你加载的所有内容。下一次运行几乎是瞬间完成的。

Browsh

Browsh 是完善的终端网页浏览器。它比 Lynx 更强大,当然更引人注目。 Browsh 以无头模式启动 Firefox Web 浏览器(因此你无法看到它)并在特殊 Web 扩展的帮助下将其与你的终端连接。因此,Browsh 能像 Firefox 一样呈现所有富媒体内容,只是有点像素化的风格。

安装说明

该项目为各种 Linux 发行版提供了包,包括 Fedora。以这种方式安装:

sudo dnf install -y https://github.com/browsh-org/browsh/releases/download/v1.4.6/browsh_1.4.6_linux_amd64.rpm

之后,启动 browsh 命令并给它几秒钟加载。按 Ctrl+L 将焦点切换到地址栏并开始浏览 Web,就像以前一样使用!使用 Ctrl+Q 返回终端。


via: https://fedoramagazine.org/4-cool-apps-for-your-terminal/

作者:atolstoy 选题:lujun9972 译者:geekpi 校对:wxy

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

在 Linux 命令行当中使用不同颜色以期提供一种根据文件类型来识别文件的简单方式。你可以修改这些颜色,但是在做之前应该对你做的事情有充分的理由。

如果你在 Linux 命令行上花费了大量的时间(如果没有,那么你可能不会读这篇文章),你无疑注意到了 ls 以多种不同的颜色显示文件。你可能也注意到了一些区别 —— 目录是一种颜色,可执行文件是另一种颜色等等。

这一切是如何发生的呢?以及,你可以选择哪些选项来改变颜色分配可能就不是很多人都知道的。

一种方法是运行 dircolors 命令得到一大堆展示了如何指定这些颜色的数据。它会显示以下这些东西:

$ dircolors
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do
=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg
=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01
;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01
;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=0
1;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31
:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.
xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.t
bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.j
ar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.a
lz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.r
z=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.
mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:
*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:
*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;3
5:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;
35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01
;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01
;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01
;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;3
5:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;3
5:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;3
6:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;
36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;
36:*.spx=00;36:*.xspf=00;36:';
export LS_COLORS

如果你擅长解析文件,那么你可能会注意到这个列表有一种 模式 patten 。用冒号分隔开,你会看到这样的东西:

$ dircolors | tr ":" "\n" | head -10
LS_COLORS='rs=0
di=01;34
ln=01;36
mh=00
pi=40;33
so=01;35
do=01;35
bd=40;33;01
cd=40;33;01
or=40;31;01

OK,这里有一个模式 —— 一系列定义,有一到三个数字组件。我们来看看其中的一个定义。

pi=40;33

有些人可能会问的第一个问题是“pi 是什么?”在这里,我们研究的是颜色和文件类型,所以这显然不是以 3.14 开头的那个有趣的数字。当然不是,这个 “pi” 代表 “pipe(管道)” —— Linux 系统上的一种特殊类型的文件,它可以将数据从一个程序传递给另一个程序。所以,让我们建立一个管道。

$ mknod /tmp/mypipe p
$ ls -l /tmp/mypipe
prw-rw-r-- 1 shs shs 0 May 1 14:00 /tmp/mypipe

当我们在终端窗口中查看我们的管道和其他几个文件时,颜色差异非常明显。

font colors

pi 的定义中(如上所示),“40” 使文件在终端(或 PuTTY)窗口中使用黑色背景显示,31 使字体颜色变红。管道是特殊的文件,这种特殊的处理使它们在目录列表中突出显示。

bdcd 定义是相同的 —— 40;33;01,它有一个额外的设置。这个设置会导致 块设备 block device (bd)和 字符设备 character device (cd)以黑色背景,橙色字体和另一种效果显示 —— 字符将以粗体显示。

以下列表显示由 文件类型 file type 所指定的颜色和字体分配:

setting         file type
=======         =========
rs=0            reset to no color
di=01;34        directory
ln=01;36        link
mh=00           multi-hard link
pi=40;33        pipe
so=01;35        socket
do=01;35        door
bd=40;33;01     block device
cd=40;33;01     character device
or=40;31;01     orphan
mi=00           missing?
su=37;41        setuid
sg=30;43        setgid
ca=30;41        file with capability
tw=30;42        directory with sticky bit and world writable
ow=34;42        directory that is world writable
st=37;44        directory with sticky bit
ex=01;93        executable

你可能已经注意到,在 dircolors 命令输出中,我们的大多数定义都以星号开头(例如,*.wav=00;36)。这些按 文件扩展名 file extension 而不是文件类型定义显示属性。这有一个示例:

$ dircolors | tr ":" "\n" | tail -10
*.mpc=00;36
*.ogg=00;36
*.ra=00;36
*.wav=00;36
*.oga=00;36
*.opus=00;36
*.spx=00;36
*.xspf=00;36
';
export LS_COLORS

这些设置(上面列表中所有的 00;36)将使这些文件名以青色显示。可用的颜色如下所示。

all colors

如何改变设置

你要使用 ls 的别名来打开颜色显示功能。这通常是 Linux 系统上的默认设置,看起来是这样的:

alias ls='ls --color=auto'

如果要关闭字体颜色,可以运行 unalias ls 命令,然后文件列表将仅以默认字体颜色显示。

你可以通过修改 $LS_COLORS 设置和导出修改后的设置来更改文本颜色。

$ export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;...

注意:上面的命令由于太长被截断了。

如果希望文本颜色的修改是永久性的,则需要将修改后的 $LS_COLORS 定义添加到一个启动文件中,例如 .bashrc

更多关于命令行文本

你可以在 NetworkWorld 的 2016 年 11 月的帖子中找到有关文本颜色的其他信息。


via: https://www.networkworld.com/article/3269587/linux/customizing-your-text-colors-on-the-linux-command-line.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:MjSeven 校对:pityonline

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