热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

让你的Shell命令提示符飞起来~

前段时间,刚来实习的时候,由于自己的开发机环境还没配好,就用了老大的机器,打开之后,咦~!为啥不是传统Linux的[root@hostname]?这引起了本宝宝极大的好奇心(为啥装嫩?难道要装老

前段时间,刚来实习的时候,由于自己的开发机环境还没配好,就用了老大的机器,打开之后,咦~!为啥不是传统Linux的[root@hostname] ?这引起了本宝宝极大的好奇心(为啥装嫩?难道要装老?),于是乎,再一次打开了鸟哥的菜谱(鸟哥的Linux私房菜),同时也为了一下度娘,总算有了答案。

PS1!没错,就是这个叫做PS1的东西,打开Linux,输入命令

echo $PS1

你看到的就是这个,

[root@localhost ~]# echo $PS1
[\u@\h \W]\$

就是这个PS1左右着你的Linux的shell命令提示符!

这个PS1,究竟是什么意思呢?经过百度得到了答案:

    \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"

    \H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

    \h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

    \t :显示时间为24小时格式,如:HH:MM:SS

    \T :显示时间为12小时格式

    \A :显示时间为24小时格式:HH:MM

    \u :当前用户的账号名称

    \v :BASH的版本信息

    \w :完整的工作目录名称。家目录会以 ~代替

    \W :利用basename取得工作目录名称,所以只会列出最后一个目录

    \# :下达的第几个命令

    \$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

可是,为什么老大机器上不同的位置为啥颜色还不一样呢?别急,我们往下看:

我们可以通过设置PS1变量使得提示符变成彩色。在PS1中设置字符序列颜色的格式为:\[\e[F;Bm\]    其中“F”为字体颜色,编号30~37;“B”为背景色,编号40~47。不过呢,能设置颜色,他就肯定能够取消设置,注意:这里的取消设置,和不设置是两吗事情!至于详细区别,当你读完了我的博文你就O了。呵呵。取消设置:\[\e[m\]

颜色表

 

 前景   背景   颜色

30      40      黑色

31      41      红色

32      42      绿色

33      43      黄色

34      44      蓝色

35      45      紫红色

36      46      青蓝色

37      47      白色

 

代码      意义

0            OFF

1            高亮显示

4            underline           

7            反白显示

8            不可见

 

举个例子吧~

打开我们的 .bashrc 文件

vim ~/.bashrc

往里边添加一行

 export PS1="[\[\e[32m\]#\##\[\e[31m\]\u@\[\e[36m\]\h \w]\$\[\e[m\]"

然后,保存并用source执行:

source ~/.bashrc

 

 
现在来看\[\e[32m\],这部分是用来设置颜色的,这几个字符结合上述的说明,可能看出此处是设置为绿色。接下来的\[\e[32m\]是设置为红色……而最后的\[\e[m\]是告诉Linux,往后的内容不需要颜色了~使用默认的颜色就好了。
然后#\##就是显示现在运行的是第几条命令了,看到了吧。我这里是第四条。
[#4# root@localhost ~]$
下来就是\u这是嘛意思?自己差表看去,然后不又是一个设在颜色的么(这里显示的不怎么好),
\h  \w 是什么意思?\h 是说:仅取主机的第一个名字,\w是说:显示完整的路径,如果是在用户的默认路径下则显示 ~,其余情况下都是显示完整路径的哦。
最前边的[ 和 最后的] 就是你看到的那个最外边包裹着的中括号了。明白了吧~
 
可是不少童鞋又有疑问了,这个只是设置了颜色和样式,平时好多童鞋在开发中都要用到git,那么在命令提示符里边如果有git状态的显示岂不是很完美?是的啊,接下来我们就来探讨下,如何让它显示git的状态。
 
经过博主的搜索,最终得到了一套方法:
那就是
在.bashrc文件中添加以下内容:
function parse_git_dirty {
[[ $(git status
2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function parse_git_branch {
git branch
--no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/git:\1$(parse_git_dirty)/"
}
export PS1
="\[\e[36m\]○ \[\e[33m\]\$(parse_git_branch)\[\e[m\] \w \[\e[36m\]\t\[\e[m\]\n\[\e[35m\]→\[\e[m\]"
 
具体意思各位看官就自行琢磨吧~!效果就先不秀了哈~
 
当然使用zsh会有更赞的效果,博主会在下周进行分享~敬请期待。
 
本文参考了:
鸟哥的Linux私房菜
http://blog.sina.com.cn/s/blog_6268defa0100wijx.html

 


推荐阅读
  • 关于linux下,ls vi等命令失效的解决方法(配置下环境变量出现问题)
    配置完环境变量source之后,linux的lsvi命令均失效,报错如下:解决方法1.输入 exportPATHusrbin:usrsbin:bin:sbin:usrX11R6bi ... [详细]
  • kafkamanager(cmak)安装及使用
    1.软件下载kafka-manager工具目前改名为cmak,下载地址为:https:github.comyahooCMAKreleasestag3.0.0.5现在 ... [详细]
  • Ubuntu16.0464位安装armlinuxgcc交叉编译器以及samba服务器
    交叉编译器是嵌入式开发的必要工具,但是由于目前大多数人使用64位ubuntu,在照着很多教程做的时候,就会失败,失败原因是64位ubuntu需要额外安装32位的兼容包。以arm-l ... [详细]
  • 关键词:LinuxJDKJRE解决JRE中文乱码解决FireFox不支持appletl 安装JDK1、  安装jdkroot用户进入jdk安装文件所在目录,键入chmoda+xjd ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Linux Shell基础脚本执行方式和Bash基本功能
    一概述1Shell是一个命令行解释器,它为用户提供了一个向内核发送请求以便运行程序的界面系统级程序Shell还是一个功能强大的编程语言,易编写,易调试,灵活性较强,Shell是解释 ... [详细]
  • Vue项目结构分析-项目结构重点在src文件夹:assets——静态资源,如css,jscomponents——公共组件router——路由文件(vuecli3.x没有自 ... [详细]
  • 1.安装cordovapluginaddcordova-plugin-file-transfercordovapluginaddcordova-plugin-fi ... [详细]
  • MQ的使用
    安装环境:linuxredhatactivemq版本:5.8.01.从http:activemq.apache.orgdownload.html地址下载 ... [详细]
  • 13Linux基本命令和配置服务器来电后自动开机
    本节所讲内容:Linux终端介绍Shell提示符BashShell基本语法基本命令的使用:ls、pwd、cd查看系统和BIOS硬件时间Linux如何获得 ... [详细]
  • Shell脚本统计文件行数转自http:www.jb51.netarticle61943.htm示例:row_count.sh文件awk{printNR}row_co ... [详细]
  • 大数据学习环境安装关于防火墙​centos7使用的是firewalld,centos之前使用的是iptablesCentOS7关闭防火墙查看防火墙状态sudosy ... [详细]
  • 结束jquery时间不长,写代码感觉很生,而且敢接写起来很费劲做点简单的总结。首先主要要先引入.juery.js文件第二一些js插件文件也要在jquer ... [详细]
  • 如何配置mysql双主_MySQL双主配置_MySQL
    准备环境:服务器操作系统为RHEL6.4x86_64,为最小化安装。主机A和主机B均关闭防火墙和SELINUX,IP地址分别为192.168.131.1 ... [详细]
  • 前言可能你并不太了解msys2,但是作为一个程序员,你一定知道mingw,而msys2就集成了mingw,同时msys2还有一些其他的特性,例如包管理器等。msys2可以在wind ... [详细]
author-avatar
请叫我浪漫先生_858
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有