lolcat——Linux路上不是只有黑白

lolcat——Make your Terminal Colourful

lolcat 一个在Linux终端中输出彩虹特效的命令行工具。他是一个针对Linux,BSD和OSX平台的工具,类似于cat 命令,并为cat 的输出添加彩虹般的色彩。

Installing

这里我们以windows10内嵌的ubuntu子系统来进行操作,跟树莓派上的操作是一样的。

首先打开终端,已经把子系统路径加入系统环境变量,直接Win+r ,输入bash ,树莓派中可以直接Alt + T ,这时候用到apt-get 命令,如有需求自行复习在终端中输入:

sudo apt-get install lolcat
# it will be installing automatically
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  lolcat
0 upgraded, 1 newly installed, 0 to remove and 88 not upgraded.
Need to get 5,514 B of archives.
After this operation, 70.7 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe lolcat all 42.0.99-1 [5,514 B]
Fetched 5,514 B in 9s (556 B/s)
Selecting previously unselected package lolcat.
(Reading database ... 51497 files and directories currently installed.)
Preparing to unpack .../lolcat_42.0.99-1_all.deb ...
Unpacking lolcat (42.0.99-1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up lolcat (42.0.99-1) ...

How to use

安装好之后,在使用之前我们先通过命令行来了解它可用的选项和其帮助文档。终端输入:

lolcat -h

很调皮,只看文档说明就能看出来这个软件的效果:

Usage: lolcat [OPTION]... [FILE]...

Concatenate FILE(s), or standard input, to standard output.
With no FILE, or when FILE is -, read standard input.

    --spread, -p <f>:   Rainbow spread (default: 3.0)
      --freq, -F <f>:   Rainbow frequency (default: 0.1)
      --seed, -S <i>:   Rainbow seed, 0 = random (default: 0)
       --animate, -a:   Enable psychedelics
  --duration, -d <i>:   Animation duration (default: 12)
     --speed, -s <f>:   Animation speed (default: 20.0)
         --force, -f:   Force color even when stdout is not a tty
       --version, -v:   Print version and exit
          --help, -h:   Show this message

Examples:
  lolcat f - g      Output f's contents, then stdin, then g's contents.
  lolcat            Copy standard input to standard output.
  fortune | lolcat  Display a rainbow cookie.

Report lolcat bugs to <http://www.github.org/busyloop/lolcat/issues>
lolcat home page: <http://www.github.org/busyloop/lolcat/>
Report lolcat translation bugs to <http://speaklolcat.com/>

上面就是参数的详细说明,这样看好像没有效果,废话说完了,直接上图:

lolcat -h

哈哈 看到效果了吧,效果还是极其美妙的。我们可以这样用:

sudo ls -al | lolcat -F 0.3

那么就会出现这样的效果:

ls -al

这个样子可以玩一年,多试试不同的参数,总能带来不一样的惊喜。

After

这个软件是我最先接触到的比较好玩,无聊,有趣的,当命令行遇到lolcat ,改变了对命令行的认识,仿佛像打开新世界的大门,充满着孩童般的好奇。这段主要提及到lolcat 的安装使用,具体怎么玩,自己探索或者可以跟lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具 进行交流。

愿Linux路上不孤单。

如果在C++中使用管道来获取命令行输出,并且输出结果包含了特殊的字符或颜色控制代码,那么在将输出显示到终端时可能会出现乱码。 乱码的原因是终端无法正确解析和显示特殊字符或颜色控制代码。这些特殊字符和控制代码通常用于在终端中添加颜色、样式或其他特殊效果。 要解决乱码问题,可以使用`std::cout`输出流,并在输出时禁用终端颜色控制代码的解析。可以使用以下方法之一: 1. 使用`std::cout`输出流,并在输出时过滤掉控制代码。下面是一个简单的示例代码: ```cpp #include <iostream> #include <unistd.h> #include <sys/wait.h> #include <regex> int main() { int pipefd[2]; pipe(pipefd); pid_t pid = fork(); if (pid == 0) { close(pipefd[0]); dup2(pipefd[1], STDOUT_FILENO); execlp("your_command", "your_command", nullptr); std::cerr << "Failed to execute command" << std::endl; exit(1); } else { close(pipefd[1]); char buffer[4096]; ssize_t bytesRead; while ((bytesRead = read(pipefd[0], buffer, sizeof(buffer))) > 0) { // 过滤掉控制代码 std::string output(buffer, bytesRead); std::regex controlCodeRegex("\033\\[[0-9;]+m"); std::cout << std::regex_replace(output, controlCodeRegex, ""); } int status; waitpid(pid, &status, 0); } return 0; } ``` 在上面的代码中,使用`std::regex`过滤掉了控制代码,并将过滤后的输出打印到终端。 2. 使用第三方库,如`pstreams`,来处理命令行输出。`pstreams`库提供了更高级的管道操作,包括对特殊字符和颜色控制代码的处理。使用该库可以更方便地获取并处理命令行输出。你可以在https://github.com/p-ranav/pstreams 找到该库的源代码和使用示例。 无论你选择哪种方法,都可以解决输出乱码的问题,并正确显示命令行输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShareWow丶

前人栽树,分享知识,传播快乐。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值