如果你使用的是Linux桌面(例如:Fedora或者Ubuntu)的话,在Terminal上使用Bash通常是必须地,但是默认的Bash提示符都很普通。本文将提供简单的Bash脚本(通过定制PS1)定制炫酷的命令提示符(注: 绝非奇技淫巧)。

  • 脚本代码 - foo.bashrc
    COLOR_GRAY='\[\033[1;30m\]'
COLOR_RED='\[\033[1;31m\]'
COLOR_GREEN='\[\033[1;32m\]'
COLOR_YELLOW='\[\033[1;33m\]'
COLOR_BLUE='\[\033[1;34m\]'
COLOR_MAGENTA='\[\033[1;35m\]'
COLOR_CYAN='\[\033[1;36m\]'
COLOR_WHITE='\[\033[1;37m\]'
COLOR_NONE='\[\033[m\]' PS1_USER="${COLOR_MAGENTA}\u${COLOR_NONE}"
PS1_HOST="${COLOR_CYAN}\h${COLOR_NONE}"
PS1_PWD="${COLOR_YELLOW}\w${COLOR_NONE}" export PS1="${PS1_USER}@${PS1_HOST}:${PS1_PWD}\\\$ "
  • 效果图

  • 说明

01 -foo.bashrc添加到你的.bashrc文件中就可以使用炫酷的PS1了,当然,你也可以根据你的偏好自己设定PS1

02 - 在颜色定制文本(例如: COLOR_GRAY='\[\033[1;30m\]')中,开始的\[和结尾的\]是必须的,否则当输入的命令很长的时候,就会回车但不换行,于是覆盖了行首的有颜色的字符串。例如:

P.S. 上面的诡异问题曾经困扰我了很多年,直到我偶然发现了\[\]的特殊作用。 我们期望的是另起一行,正确的输出行为应该是这样子滴,

但是,通过Bash编程在Terminal上输出彩色的字符串,是不能添加\[\]的。 例如:

function print { printf -- "$*\n"; }

function _isatty
{
typeset -l isatty=${ISATTY:-"auto"}
[[ $isatty == "yes" ]] && return # yes
[[ $isatty == "no" ]] && return # no
[[ -t && -t ]] && return || return # auto
} function str2gray { _isatty && print "\033[1;30m$@\033[m" || print "$@"; }
function str2red { _isatty && print "\033[1;31m$@\033[m" || print "$@"; }
function str2green { _isatty && print "\033[1;32m$@\033[m" || print "$@"; }
function str2yellow { _isatty && print "\033[1;33m$@\033[m" || print "$@"; }
function str2blue { _isatty && print "\033[1;34m$@\033[m" || print "$@"; }
function str2magenta { _isatty && print "\033[1;35m$@\033[m" || print "$@"; }
function str2cyan { _isatty && print "\033[1;36m$@\033[m" || print "$@"; }
function str2white { _isatty && print "\033[1;37m$@\033[m" || print "$@"; }

完整代码文件libstr.sh请戳这里

Don't believe what your eyes are telling you. All they show is limitation. Look with your understanding. | 不要相信眼睛告诉你的。眼睛展现的内容是有限的。用你的悟性来观察。 

在Bash中定制炫酷的命令提示符的更多相关文章

  1. 如何在你的blog中添加炫酷的飘雪动画效果

    将下面的代码复制到你的设置栏下页眉html代码框中即可 <script> (function($){$.fn.snow=function(options){,maxSize:,newOn: ...

  2. 告诉你如何在Xcode中安装炫酷的插件!!!!!

    (如果你已经有了自己喜欢的插件,你可以直接找到该插件的下载地址,下载下来,参照下面的步骤来安装到Xcode工程之中) 如果还没有找到自己想要的插件,那么推荐你在开源中国社区http://www.osc ...

  3. 炫酷的 CSS 形状(值得收藏)

    在今日头条中看到炫酷的 CSS 形状,就记录一下: 1.圆形 #circle { width: 100px; height: 100px; background: red; border-radius ...

  4. Linux系统中命令提示符解释-Linux中命令格式、分类-bash中的快捷键

    1.命令提示符 [root@mysqlserver01 opt]# [root@mysqlserver01 ~]# root 当前用户名 @ 固定的(格式) mysqlserver01 主机名 opt ...

  5. activate-power-mode,让你在Python编码中,感受炫酷的书写特效!

    Atom Atom 是github专门为程序员推出的一个跨平台文本编辑器,具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言.说到这里大家以为我 ...

  6. kubernetes生态--交付prometheus监控及grafana炫酷dashboard到k8s集群

    由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控: 什么是Prometheus? Prometheus是由Sou ...

  7. Photoshop和WPF双剑配合,打造炫酷个性的进度条控件

    现在如果想打造一款专业的App,UI的设计和操作的简便性相当重要.UI设计可以借助Photoshop或者AI等设计工具,之前了解到WPF设计工具Expression Blend可以直接导入PSD文件或 ...

  8. Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI

    1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过 TabPageIndicator,并且很多知名APP都使用过这个 ...

  9. 基于jQuery和CSS3炫酷图片3D旋转幻灯片特效

    在线预览   源码下载 iPresenter是一款效果非常炫酷的jQuery和CSS3 3D旋转幻灯片特效插件.你可以使用它来制作产品展示.图片画廊或者各种幻灯片和轮播图特效.这款幻灯片插件的特点有: ...

随机推荐

  1. 从数据库到NoSQL思路整理

    1. 数据库为什么要算范式?细说起来太多. 范式解决了数据冗余,从而保证ACID的操作性能.不然一堆删除异常,插入异常,就没法愉快的写SQL了 另外,对于多个业务公用的数据库,范式解决了集成的问题. ...

  2. java细节问题

    保留两位小数:1.234, 1.23, 1.2, 1.0, 1. package test; import java.math.BigDecimal; import java.text.Decimal ...

  3. EBS Webservice Timeout,HTTP Server Return "500 Internal Server Error"

    http://blog.itpub.net/26687597/viewspace-1207571/ 基于Oracle EBS R12,开发了一个Webservice用于返回某项主数据,当请求的数据量非 ...

  4. .NET 任务调度Quartz系列(1)——自建定时任务

    在我们平时项目中经常会遇到定时任务,比如定时同步数据,定时备份数据,定时统计数据等,定时任务我们都知道使用Quartz.net,此系列写的也是Quartz,但是在此之前,我们先用其他方式做个简单的定时 ...

  5. ABP框架踩坑记录

    ABP框架踩坑记录 ASP.NET Boilerplate是一个专用于现代Web应用程序的通用应用程序框架. 它使用了你已经熟悉的工具,并根据它们实现最佳实践. 文章目录 使用MySQL 配置User ...

  6. 基于JMS的ActiveMQ搭建与实现

    1.JMS Java消息服务(Java Message Service)即JMS,是一个Java平台中关于面向消息中间件的API,用于两个程序之间,或分布式系统中发送消息,进行异步通信. JMS包括队 ...

  7. 如何将Spring Boot项目打包部署到外部Tomcat

    1.项目打包     项目开发结束后,需要打包部署到外部服务器的Tomcat上,主要有几种方式. (1)生成jar包 cd 项目跟目录(和pom.xml同级)mvn clean package## 或 ...

  8. “全栈2019”Java多线程第二十一章:同步代码块产生死锁的例子

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  9. *p++与(*p)++与*(p++)------自增运算符常见误区

    自增运算符(++) 自增\自减运算符分为前缀形(++a)和后缀形(a++),这里重点分析自增 大部分人对前缀和后缀的理解一般是,前缀形式是先++再使用(先变后用),后缀形式是先使用再++(先用后变) ...

  10. What are rules about using an underscore in a c identifier

    http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-a-c-identi ...