网站搜索

Linux 乐趣 - 如何在终端中创建 ASCII 文本横幅


最近,我们解释了如何使用一个名为 ASCII-Art-Splash-Screen 的程序在 Linux 终端上随机显示预定义的 ASCII 艺术。在本文中,我们将展示如何使用名为 FIGletTOIlet 的两个命令行实用程序从纯文本创建您自己的吸引人的 ASCII 文本横幅。

另请阅读:在终端中享受乐趣的 20 个有趣的 Linux 命令

FIGlet 是一个简单的命令行实用程序,用于从普通文本中创建 ASCII 文本横幅或大字母,而 TOIlet (TOIlet 下的子命令) figlet)是一个命令行实用程序,用于从普通文本创建彩色大字符。

如何在 Linux 中安装和使用 Figlet 和 Bathroom 工具

要同时使用 FIGletTOIlet 工具,您首先需要使用默认包管理器将它们安装在 Linux 系统上,如图所示。

sudo apt install figlet toilet    [On Debian/Ubuntu]
sudo yum install figlet toilet    [On CentOS/RHEL]
sudo dnf install figlet toilet    [On Fedora 22+]

安装后,使用 figlet 的基本方法是提供您想要转换为横幅或大文本的文本作为参数,如图所示。

figlet TecMint.com

 _____         __  __ _       _                        
|_   _|__  ___|  \/  (_)_ __ | |_   ___ ___  _ __ ___  
  | |/ _ \/ __| |\/| | | '_ \| __| / __/ _ \| '_ ` _ \ 
  | |  __/ (__| |  | | | | | | |_ | (_| (_) | | | | | |
  |_|\___|\___|_|  |_|_|_| |_|\__(_)___\___/|_| |_| |_|

设置输出对齐方式

如果您希望在中心创建输出,请使用 -c 标志,如图所示。

figlet -c TecMint.com

             _____         __  __ _       _                        
            |_   _|__  ___|  \/  (_)_ __ | |_   ___ ___  _ __ ___  
              | |/ _ \/ __| |\/| | | '_ \| __| / __/ _ \| '_ ` _ \ 
              | |  __/ (__| |  | | | | | | |_ | (_| (_) | | | | | |
              |_|\___|\___|_|  |_|_|_| |_|\__(_)___\___/|_| |_| |_|

此外,还可以使用 -l 将输出设置为左侧,或使用 -r 将其打印到右侧。

定义输出宽度

您还可以使用-w开关控制输出宽度,默认宽度为80列。

figlet -w 100 I Love TecMint.com

 ___   _                     _____         __  __ _       _                        
|_ _| | |    _____   _____  |_   _|__  ___|  \/  (_)_ __ | |_   ___ ___  _ __ ___  
 | |  | |   / _ \ \ / / _ \   | |/ _ \/ __| |\/| | | '_ \| __| / __/ _ \| '_ ` _ \ 
 | |  | |__| (_) \ V /  __/   | |  __/ (__| |  | | | | | | |_ | (_| (_) | | | | | |
|___| |_____\___/ \_/ \___|   |_|\___|\___|_|  |_|_|_| |_|\__(_)___\___/|_| |_| |_|

如果您有更宽的终端,则可以通过 -t 开关使用终端的整个宽度。

figlet -t TecMint.com

在输出字符之间添加空格

为了获得更清晰的输出,您可以使用 -k 标志在打印字符之间添加一点空格:检查上面和下面输出之间的差异,如图所示。

figlet -t -k I Love TecMint.com

 ___   _                        _____            __  __  _         _                            
|_ _| | |     ___ __   __ ___  |_   _|___   ___ |  \/  |(_) _ __  | |_     ___  ___   _ __ ___  
 | |  | |    / _ \\ \ / // _ \   | | / _ \ / __|| |\/| || || '_ \ | __|   / __|/ _ \ | '_ ` _ \ 
 | |  | |___| (_) |\ V /|  __/   | ||  __/| (__ | |  | || || | | || |_  _| (__| (_) || | | | | |
|___| |_____|\___/  \_/  \___|   |_| \___| \___||_|  |_||_||_| |_| \__|(_)\___|\___/ |_| |_| |_|

从文件读取输入

您可以使用 -p 选项从文件中读取文本,而不是在命令行上键入文本,如图所示。

echo "I wish I could chmod 644 my Girlfriend" >girlfriend.txt
figlet -kp < girlfriend.txt

 ___             _       _       ___                      _      _ 
|_ _| __      __(_) ___ | |__   |_ _|   ___  ___   _   _ | |  __| |
 | |  \ \ /\ / /| |/ __|| '_ \   | |   / __|/ _ \ | | | || | / _` |
 | |   \ V  V / | |\__ \| | | |  | |  | (__| (_) || |_| || || (_| |
|___|   \_/\_/  |_||___/|_| |_| |___|  \___|\___/  \__,_||_| \__,_|
                                                                   
       _                            _    __    _  _    _  _   
  ___ | |__   _ __ ___    ___    __| |  / /_  | || |  | || |  
 / __|| '_ \ | '_ ` _ \  / _ \  / _` | | '_ \ | || |_ | || |_ 
| (__ | | | || | | | | || (_) || (_| | | (_) ||__   _||__   _|
 \___||_| |_||_| |_| |_| \___/  \__,_|  \___/    |_|     |_|  
                                                              
                     ____  _        _   __        _                   _  
 _ __ ___   _   _   / ___|(_) _ __ | | / _| _ __ (_)  ___  _ __    __| | 
| '_ ` _ \ | | | | | |  _ | || '__|| || |_ | '__|| | / _ \| '_ \  / _` | 
| | | | | || |_| | | |_| || || |   | ||  _|| |   | ||  __/| | | || (_| | 
|_| |_| |_| \__, |  \____||_||_|   |_||_|  |_|   |_| \___||_| |_| \__,_|

更改输出字体

您可以使用-f标志指定其他字体,字体是存储在/usr/中的.flf.tlf文件分享/figlet。您可以像这样查看可用的字体。

ls /usr/share/figlet/

646-ca2.flc  646-es.flc   646-kr.flc   646-yu.flc  8859-9.flc	   
646-ca.flc   646-fr.flc   646-no2.flc  8859-2.flc  ascii12.tlf	   
646-cn.flc   646-gb.flc   646-no.flc   8859-3.flc  ascii9.tlf	  
646-cu.flc   646-hu.flc   646-pt2.flc  8859-4.flc  banner.flf	   
646-de.flc   646-irv.flc  646-pt.flc   8859-5.flc  bigascii12.tlf  
646-dk.flc   646-it.flc   646-se2.flc  8859-7.flc  bigascii9.tlf  
646-es2.flc  646-jp.flc   646-se.flc   8859-8.flc  big.flf	   

然后使用特定的字体,例如我使用字体 slant.tlf 如图所示。

figlet -f slant "Sudo I Love You"

   _____           __         ____   __                       __  __           
  / ___/__  ______/ /___     /  _/  / /   ____ _   _____      \ \/ /___  __  __
  \__ \/ / / / __  / __ \    / /   / /   / __ \ | / / _ \      \  / __ \/ / / /
 ___/ / /_/ / /_/ / /_/ /  _/ /   / /___/ /_/ / |/ /  __/      / / /_/ / /_/ / 
/____/\__,_/\__,_/\____/  /___/  /_____/\____/|___/\___/      /_/\____/\__,_/

使用 TOIlet 创建彩色 ASCII 文本横幅

toilet 命令还用于将文本转换为大的 ASCII 字符。最简单的运行方法如下。

toilet TecMint.com

mmmmmmm               m    m   "             m                               
   #     mmm    mmm   ##  ## mmm    m mm   mm#mm          mmm    mmm   mmmmm 
   #    #"  #  #"  "  # ## #   #    #"  #    #           #"  "  #" "#  # # # 
   #    #""""  #      # "" #   #    #   #    #           #      #   #  # # # 
   #    "#mm"  "#mm"  #    # mm#mm  #   #    "mm    #    "#mm"  "#m#"  # # #  

要更改为特定字体,请使用 -f 选项,它还会从与 figlet 相同的源读取字体。

toilet -kf script TecMint.com

 ______       ,__ __                                       
(_) |        /|  |  |  o                                   
    | _   __  |  |  |      _  _  _|_   __   __   _  _  _   
  _ ||/  /    |  |  |  |  / |/ |  |   /    /  \_/ |/ |/ |  
 (_/ |__/\___/|  |  |_/|_/  |  |_/|_/o\___/\__/   |  |  |_/

我们在上面看到的figlet的许多选项也适用于toilet。有关更多信息,请参阅他们的手册页。

man figlet
man toilet

另请阅读:Neofetch – 显示带有发行版徽标的 Linux 系统信息

概括

在本文中,我们研究了两个用于将文本转换为大 ASCII 文本字符的命令行实用程序,这对于创建横幅或消息非常有用。通过下面的反馈表分享您对这些命令的想法。