专栏首页一日一工具给你的命令行工具加上一个高逼格的banner

给你的命令行工具加上一个高逼格的banner

看不懂man page, 小工具来帮你

你在看别人开源的命令行工具的时候,在支持-h或者-v的时候是不是经常看到下面这样的格式输出,你一定是好奇的,这是如何实现的,那今天就带你一块了解下这块的实现。

比如下面这种

再比如下面这种

或者是下面这种

亦或者是下面这种

不得不提的figlet

什么是figlet

figlet是一个可以生成ASCII Art字体工具,在编写一些CLI工具的时候可以作为banner,支持很多字形,对于终端展示十分炫(zhuang)酷(bi)。

安装

其实figlet支持的安装方式很多很多,比如pip, npm, brew等安装方式,今天我们主要来讲解下pip的安装方式,原因是因为安装完不单单可以作为命令行工具使用,还可以在你的Python程序里导入使用。

pip安装

pip install pyfiglet

brew安装

brew install figlet

npm安装

npm install figlet

命令行使用

> pyfiglet -f Banner3 z h u i m a
########    ##     ##    ##     ##    ####    ##     ##       ###
     ##     ##     ##    ##     ##     ##     ###   ###      ## ##
    ##      ##     ##    ##     ##     ##     #### ####     ##   ##
   ##       #########    ##     ##     ##     ## ### ##    ##     ##
  ##        ##     ##    ##     ##     ##     ##     ##    #########
 ##         ##     ##    ##     ##     ##     ##     ##    ##     ##
########    ##     ##     #######     ####    ##     ##    ##     ##


>

程序里使用

代码程序

# -*- coding: utf-8 -*-
# __Author__ = "zhuima"


from __future__ import absolute_import, unicode_literals

from pyfiglet import figlet_format
import six

try:
    import colorama

    colorama.init()
except ImportError:
    colorama = None

try:
    from termcolor import colored
except ImportError:
    colored = None


def log(string, color, font="Banner3", figlet=False):
    if colored:
        if not figlet:
            six.print_(colored(string, color))
        else:
            six.print_(colored(figlet_format(string, font=font), color))
    else:
        six.print_(string)


log("\nZ H U I M A", color="blue", figlet=True)

效果展示

> python test-figlet.py
########    ##     ##    ##     ##    ####    ##     ##       ###
     ##     ##     ##    ##     ##     ##     ###   ###      ## ##
    ##      ##     ##    ##     ##     ##     #### ####     ##   ##
   ##       #########    ##     ##     ##     ## ### ##    ##     ##
  ##        ##     ##    ##     ##     ##     ##     ##    #########
 ##         ##     ##    ##     ##     ##     ##     ##    ##     ##
########    ##     ##     #######     ####    ##     ##    ##     ##

> 

相关站点

github地址[1]

figlet.org[2]

在线生成[3]

总结

通过上面的简单的示例,这下终于知道酷炫的banner是如何实现的吧,快在你的下一个程序里用起来吧,保证逼格满满,瞬间高大上。

引用链接

[1] github地址: https://github.com/pwaller/pyfiglet [2] figlet.org: http://www.figlet.org/ [3] 在线生成: http://patorjk.com/software/taag

本文分享自微信公众号 - 追马Linux(zhuima_k8s),作者:追马

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 给你的命令行工具加上一个高逼格的banner

    figlet是一個可以生成ASCII Art字体工具,在编写一些CLI工具的时候可以作为banner,支持很多字形,对于终端展示十分炫(zhuang)酷(bi)...

    追马
  • 为你的命令行工具添加牛逼哄哄的进度条

    •自己使用time和sys模块结合循环实现•PyPrind[1] 526 star, 许久不更新了•python-progressbar[2] 353 star...

    追马
  • 推荐一个高大上的网易云音乐命令行播放工具:musicbox

    网易云音乐上有很多适合程序猿的歌单,但是今天文章介绍的不是这些适合程序员工作时听的歌,而是一个用Python开发的开源播放器,专门适用于网易云音乐的播放。这个播...

    Jerry Wang
  • 是时候拥有一个你自己的命令行工具了

    本篇博客主要介绍了如何使用commander, inquirer以及chalk从零开始,创建属于自己的命令行工具。

    SH的全栈笔记
  • 让您爱上Ubuntu的14条有趣命令

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • 世界上最可怕的搜索引擎--shodan自动化利用

    Shodan,是一个暗黑系的谷歌,作为一个针对网络设备的搜索引擎,它可以在极短的时间内在全球设备中搜索到你想找的设备信息。对于渗透工作者来说,就是一个辅助我们寻...

    Ms08067安全实验室
  • Linux Netcat 命令——网络工具中的瑞士军刀

    netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能...

    sunsky
  • Linux真正的优势以及学习方法

    作为一名Linux爱好者,在Linux的世界中也算是半个老司机了,从桌面玩到服务器、从ubuntu到centos、从计算机到路由器,各种Linux的花俏玩法都...

    小小科
  • git进行版本控制管理

    1、获取远程最新代码后,则需要从本地master分支切换到开发分支。(此处我们以每个新功能为一个新的开发分支)

    李才哥
  • Web Interfaces

    Kali中的很多同一个工具其实都有多种接口模式,比如 Web接口,GUI接口,命令行接口,还有一种介于命令行与GUI中的一种模式。比如 Nmap就有命令行和GU...

    意大利的猫
  • Shodan渗透测试手册

    Shodan是一个让你探索互联网的工具;发现连接设备或网络服务、监控网络安全、进行全局统计等。

    半月弧
  • Spring Boot Banner自定义,让你的应用与众不同

    相信玩过Spring Boot的童鞋一定在启动日志中见过类似如下的内容。本文详细探讨如何定制这部分内容,让内容更加趣味性。

    乱敲代码
  • 工具分享 | 一款自己经常使用的URL批量识别小工具

    这是一款对URL进行批量识别存活、常见端口、标题、Banner等信息的工具,虽然之前也写过类似的工具,但是要不速度太慢就是识别出来的效果不够理想。

    TeamsSix
  • 懒人福音——渗透测试单行化

    One-Lin3r是一个简单的轻量级框架,它的设计灵感来源于Metasploit中的web-delivery模块。

    网e渗透安全部
  • 老外手把手带你搭建DMZ渗透测试实验室(Part 1,2)

    小编注: 大家好。接下来给大家带来两篇老外的文章,是关于构建渗透环境的文章,这是第一篇。如果有什么地方翻译地不对,还请各位大大轻拍。下面一系列的步骤都是如何在G...

    FB客服
  • Rollup的基本使用

    rollup.js是一个模块打包工具,可以使项目从一个入口文件开始,将所有使用到的模块文件都打包到一个最终的发布文件中,Rollup极其适合构建一个工具库,Vu...

    WindrunnerMax
  • 设计规范VS设计创造力,谁更胜一筹?

    设计规范和设计创造力哪个更重要?这是一个颇具争议性的话题。如果是3年前问我这个问题我会毫不犹豫的选择设计创造力,毫无疑问,一个好的设计创造力真的是可以让人像打了...

    奔跑的小鹿
  • 提高Linux系统安全的五大方法

    随着Linux操作系统的广泛应用,系统所面临的安全问题也随之而来,越来越多用户的Linux服务器被病毒、黑客等入侵,从而导致数据丢失等问题。那么,我们该怎么提高...

    用户9042463
  • github pages/hexo搭建精致博客

    进入一个文件夹(你想把工程放到哪个文件夹就进入哪个文件夹,我的是 ),初始化一个工程

    神葳

扫码关注云+社区

领取腾讯云代金券