在Bash中定制炫酷的命令提示符
如果你使用的是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中定制炫酷的命令提示符的更多相关文章
- 如何在你的blog中添加炫酷的飘雪动画效果
将下面的代码复制到你的设置栏下页眉html代码框中即可 <script> (function($){$.fn.snow=function(options){,maxSize:,newOn: ...
- 告诉你如何在Xcode中安装炫酷的插件!!!!!
(如果你已经有了自己喜欢的插件,你可以直接找到该插件的下载地址,下载下来,参照下面的步骤来安装到Xcode工程之中) 如果还没有找到自己想要的插件,那么推荐你在开源中国社区http://www.osc ...
- 炫酷的 CSS 形状(值得收藏)
在今日头条中看到炫酷的 CSS 形状,就记录一下: 1.圆形 #circle { width: 100px; height: 100px; background: red; border-radius ...
- Linux系统中命令提示符解释-Linux中命令格式、分类-bash中的快捷键
1.命令提示符 [root@mysqlserver01 opt]# [root@mysqlserver01 ~]# root 当前用户名 @ 固定的(格式) mysqlserver01 主机名 opt ...
- activate-power-mode,让你在Python编码中,感受炫酷的书写特效!
Atom Atom 是github专门为程序员推出的一个跨平台文本编辑器,具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言.说到这里大家以为我 ...
- kubernetes生态--交付prometheus监控及grafana炫酷dashboard到k8s集群
由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控: 什么是Prometheus? Prometheus是由Sou ...
- Photoshop和WPF双剑配合,打造炫酷个性的进度条控件
现在如果想打造一款专业的App,UI的设计和操作的简便性相当重要.UI设计可以借助Photoshop或者AI等设计工具,之前了解到WPF设计工具Expression Blend可以直接导入PSD文件或 ...
- Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI
1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过 TabPageIndicator,并且很多知名APP都使用过这个 ...
- 基于jQuery和CSS3炫酷图片3D旋转幻灯片特效
在线预览 源码下载 iPresenter是一款效果非常炫酷的jQuery和CSS3 3D旋转幻灯片特效插件.你可以使用它来制作产品展示.图片画廊或者各种幻灯片和轮播图特效.这款幻灯片插件的特点有: ...
随机推荐
- hibernate中常用的Hql语句总结
// HQL: Hibernate Query Language. // 特点: // >> 1,与SQL相似,SQL中的语法基本上都可以直接使用. // >> 2,SQL查询 ...
- 【WinRT】使用 T4 模板简化字符串的本地化
在 WinRT 中,对控件.甚至图片资源的本地化都是极其方便的,之前我在博客中也介绍过如何本地化应用名称:http://www.cnblogs.com/h82258652/p/4292157.html ...
- SQL Server Extended Events 进阶 1:从SQL Trace 到Extended Events
http://www.sqlservercentral.com/articles/Stairway+Series/134869/ SQL server 2008 中引入了Extended Events ...
- oracle 导出导入命令
imp YG_XSOA_NEW/kingo@20.14.12.14/XSSJZX file=d:\daochu.dmp full=y (导入) exp YG_XSOA_NEW/kingo@20 ...
- 什么是fortran语言之fortran语言入门
Fortran源自于“公式翻译”(英语:FormulaTranslation)的缩写,是一种编程语言.它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域.FORTRAN语言以其特 ...
- BootStrap 4正式版发布(原文翻译)
原文链接:http://blog.getbootstrap.com/2018/01/18/bootstrap-4/ 关于Bootstrap 什么是Bootstrap Bootstrap,来自 Twit ...
- Day 42 协程. IO 并发
一.什么是协程? 是单线程下的并发,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的. 协程相比于线程切换效率更快了. ...
- jzoj5710
對於每個詢問,我們先考慮插入1~r中每個數的答案,這樣子就不用考慮後面數對現在的影響 那麼我們可以在權值線段樹的每一個位置存儲每一個值最後一次結束的位置 問題變成了,如何判斷區間連續? 我們可以對線段 ...
- 在.net core Mvc中使用Options和IOptionsSnapshot
1.Startup.cs 下代码 using System; using System.Collections.Generic; using System.Linq; using System.Thr ...
- 【转】JMeter学习参数化User Defined Variables与User Parameters
偶然发现JMeter中有两个元件(User Defined Variables与User Parameters)很相近,刚开始时我也没注意,两者有什么不同.使用时却发现两者使用场景有些不同,现在小结一 ...