2016-02-01 07:48:36 +08:00
|
|
|
|
Linux/Unix 桌面趣事:终端上的圣诞树
|
2015-12-14 22:28:12 +08:00
|
|
|
|
================================================================================
|
|
|
|
|
|
2016-02-01 07:48:36 +08:00
|
|
|
|
给你的Linux或Unix控制台创造一棵圣诞树玩玩吧。在此之前,需要先安装一个Perl模块,命名为Acme::POE::Tree。这是一棵很喜庆的圣诞树,我已经在Linux、OSX和类Unix系统上验证过了。
|
2015-12-14 22:28:12 +08:00
|
|
|
|
|
|
|
|
|
### 安装 Acme::POE::Tree ###
|
|
|
|
|
|
2016-02-01 07:48:36 +08:00
|
|
|
|
安装perl模块最简单的办法就是使用CPAN(Perl综合典藏网(Comprehensive Perl Archive Network))。打开终端,把下面的指令敲进去便可安装Acme::POE::Tree。
|
2015-12-14 22:28:12 +08:00
|
|
|
|
|
|
|
|
|
## 以root身份运行 ##
|
|
|
|
|
perl -MCPAN -e 'install Acme::POE::Tree'
|
|
|
|
|
|
2016-02-01 07:48:36 +08:00
|
|
|
|
**示例输出:**
|
2015-12-14 22:28:12 +08:00
|
|
|
|
|
|
|
|
|
Installing /home/vivek/perl5/man/man3/POE::NFA.3pm
|
|
|
|
|
Installing /home/vivek/perl5/man/man3/POE::Kernel.3pm
|
|
|
|
|
Installing /home/vivek/perl5/man/man3/POE::Loop.3pm
|
|
|
|
|
Installing /home/vivek/perl5/man/man3/POE::Resource.3pm
|
|
|
|
|
Installing /home/vivek/perl5/man/man3/POE::Filter::Map.3pm
|
|
|
|
|
Installing /home/vivek/perl5/man/man3/POE::Resource::SIDs.3pm
|
|
|
|
|
Installing /home/vivek/perl5/man/man3/POE::Loop::IO_Poll.3pm
|
|
|
|
|
Installing /home/vivek/perl5/man/man3/POE::Pipe::TwoWay.3pm
|
|
|
|
|
Appending installation info to /home/vivek/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod
|
|
|
|
|
RCAPUTO/POE-1.367.tar.gz
|
|
|
|
|
/usr/bin/make install -- OK
|
|
|
|
|
RCAPUTO/Acme-POE-Tree-1.022.tar.gz
|
|
|
|
|
Has already been unwrapped into directory /home/vivek/.cpan/build/Acme-POE-Tree-1.022-uhlZUz
|
|
|
|
|
RCAPUTO/Acme-POE-Tree-1.022.tar.gz
|
|
|
|
|
Has already been prepared
|
|
|
|
|
Running make for R/RC/RCAPUTO/Acme-POE-Tree-1.022.tar.gz
|
|
|
|
|
cp lib/Acme/POE/Tree.pm blib/lib/Acme/POE/Tree.pm
|
|
|
|
|
Manifying 1 pod document
|
|
|
|
|
RCAPUTO/Acme-POE-Tree-1.022.tar.gz
|
|
|
|
|
/usr/bin/make -- OK
|
|
|
|
|
Running make test
|
|
|
|
|
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
|
|
|
|
|
t/01_basic.t .. ok
|
|
|
|
|
All tests successful.
|
|
|
|
|
Files=1, Tests=2, 6 wallclock secs ( 0.09 usr 0.03 sys + 0.53 cusr 0.06 csys = 0.71 CPU)
|
|
|
|
|
Result: PASS
|
|
|
|
|
RCAPUTO/Acme-POE-Tree-1.022.tar.gz
|
|
|
|
|
Tests succeeded but one dependency not OK (Curses)
|
|
|
|
|
RCAPUTO/Acme-POE-Tree-1.022.tar.gz
|
|
|
|
|
[dependencies] -- NA
|
|
|
|
|
|
|
|
|
|
### 在Shell中显示圣诞树 ###
|
|
|
|
|
|
|
|
|
|
只需要在终端上运行以下命令:
|
|
|
|
|
|
|
|
|
|
perl -MAcme::POE::Tree -e 'Acme::POE::Tree->new()->run()'
|
|
|
|
|
|
2016-02-01 07:48:36 +08:00
|
|
|
|
**示例输出**
|
2015-12-14 22:28:12 +08:00
|
|
|
|
|
|
|
|
|
![Gif 01: An animated christmas tree in Perl](http://s0.cyberciti.org/uploads/cms/2015/12/perl-tree.gif)
|
|
|
|
|
|
|
|
|
|
Gif 01: 一棵用Perl写的喜庆圣诞树
|
|
|
|
|
|
|
|
|
|
### 树的定制 ###
|
|
|
|
|
|
|
|
|
|
以下是我的脚本文件tree.pl的内容:
|
|
|
|
|
|
|
|
|
|
#!/usr/bin/perl
|
|
|
|
|
|
|
|
|
|
use Acme::POE::Tree;
|
|
|
|
|
my $tree = Acme::POE::Tree->new(
|
|
|
|
|
{
|
|
|
|
|
star_delay => 1.5, # shimmer star every 1.5 sec
|
|
|
|
|
light_delay => 2, # twinkle lights every 2 sec
|
|
|
|
|
run_for => 10, # automatically exit after 10 sec
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
$tree->run();
|
|
|
|
|
|
2016-02-01 07:48:36 +08:00
|
|
|
|
这样就可以通过修改star_delay、run_for和light_delay参数的值来自定义你的树了。一棵好玩的终端圣诞树就此诞生。
|
2015-12-14 22:28:12 +08:00
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
via: http://www.cyberciti.biz/open-source/command-line-hacks/linux-unix-desktop-fun-christmas-tree-for-your-terminal/
|
|
|
|
|
|
|
|
|
|
作者:Vivek Gite
|
|
|
|
|
译者:[soooogreen](https://github.com/soooogreen)
|
2016-02-01 07:48:36 +08:00
|
|
|
|
校对:[wxy](https://github.com/wxy)
|
2015-12-14 22:28:12 +08:00
|
|
|
|
|
|
|
|
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|