linux 自定义shell命令,如何在Linux中自定义bash命令提示符
前言
众所周知, bash (the B ourne- A gain Sh ell)是目前绝大多数 Linux 发行版使用的默认 shell。本文将会介绍如何通过添加颜色和样式来自定义 bash 命令提示符的显示。尽管很多插件或工具都可以很轻易地满足这一需求,但我们也可以不使用插件和工具,自己手动自定义一些基本的显示方式,例如添加或者修改某些元素、更改前景色、更改背景色等等。
在 Linux 中自定义 bash 命令提示符
在 bash 中,我们可以通过更改 $PS1 环境变量的值来自定义 bash 命令提示符。
一般情况下,bash 命令提示符会是以下这样的形式:
在上图这种默认显示形式当中,“sk” 是我的用户名,而 “ubuntuserver” 是我的主机名。
只要插入一些以反斜杠开头的特殊转义字符串,就可以按照你的喜好修改命令提示符了。下面我来举几个例子。
在开始之前,我强烈建议你预先备份 ~/.bashrc 文件。
$ cp ~/.bashrc ~/.bashrc.bak
更改 bash 命令提示符中的 username@hostname 部分
如上所示,bash 命令提示符一般都带有 “username@hostname” 部分,这个部分是可以修改的。
只需要编辑 ~/.bashrc 文件:
$ vi ~/.bashrc
在文件的最后添加一行:
PS1="ostechnix> "
将上面的 “ostechnix” 替换为任意一个你想使用的单词,然后按 ESC 并输入 :wq 保存、退出文件。
执行以下命令使刚才的修改生效:
$ source ~/.bashrc
你就可以看见 bash 命令提示符中出现刚才添加的 “ostechnix” 了。
再来看看另一个例子,比如将 “username@hostname” 替换为 “Hello@welcome>”。
同样是像刚才那样修改 ~/.bashrc 文件。
然后执行 source ~/.bashrc 让修改结果立即生效。
以下是我在 Ubuntu 18.04 LTS 上修改后的效果。
仅显示用户名
如果需要仅显示用户名,只需要在 ~/.bashrc 文件中加入以下这一行。
export PS1="\u "
这里的 \u 就是一个转义字符串。
下面提供了一些可以添加到 $PS1 环境变量中的用以改变 bash 命令提示符样式的转义字符串。每次修改之后,都需要执行 source ~/.bashrc 命令才能立即生效。
显示用户名和主机名
export PS1="\u\h "
命令提示符会这样显示:
skubuntuserver
显示用户名和完全限定域名
export PS1="\u\H "
在用户名和主机名之间显示其它字符
如果你还需要在用户名和主机名之间显示其它字符(例如 @ ),可以使用以下格式:
export PS1="\u@\h "
命令提示符会这样显示:
sk@ubuntuserver
显示用户名、主机名,并在末尾添加 $ 符号
export PS1="\u@\h\\$ "
综合以上两种显示方式
export PS1="\u@\h> "
命令提示符最终会这样显示:
sk@ubuntuserver>
相似地,还可以添加其它特殊字符,例如冒号、分号、星号、下划线、空格等等。
显示用户名、主机名、shell 名称
export PS1="\u@\h>\s "
显示用户名、主机名、shell 名称以及 shell 版本
export PS1="\u@\h>\s\v "
bash 命令提示符显示样式:
显示用户名、主机名、当前目录
export PS1="\u@\h\w "
如果当前目录是 $HOME ,会以一个波浪线( ~ )显示。
在 bash 命令提示符中显示日期
除了用户名和主机名,如果还想在 bash 命令提示符中显示日期,可以在 ~/.bashrc 文件中添加以下内容:
export PS1="\u@\h>\d "
在 bash 命令提示符中显示日期及 12 小时制时间
export PS1="\u@\h>\d\@ "
显示日期及 hh:mm:ss 格式时间
export PS1="\u@\h>\d\T "
显示日期及 24 小时制时间
export PS1="\u@\h>\d\A "
显示日期及 24 小时制 hh:mm:ss 格式时间
export PS1="\u@\h>\d\t "
以上是一些常见的可以改变 bash 命令提示符的转义字符串。除此以外的其它转义字符串,可以在 bash 的 man 手册 PROMPTING 章节中查阅。
你也可以随时执行以下命令查看当前的命令提示符样式。
$ echo $PS1
在 bash 命令提示符中去掉 username@hostname 部分
如果我不想做任何调整,直接把 username@hostname 部分整个去掉可以吗?答案是肯定的。
如果你是一个技术方面的博主,你有可能会需要在网站或者博客中上传自己的 Linux 终端截图。或许你的用户名和主机名太拉风、太另类,不想让别人看到,在这种情况下,你就需要隐藏命令提示符中的 “username@hostname” 部分。
如果你不想暴露自己的用户名和主机名,只需要按照以下步骤操作。
编辑 ~/.bashrc 文件:
$ vi ~/.bashrc
在文件末尾添加这一行:
PS1="\W> "
输入 :wq 保存并关闭文件。
执行以下命令让修改立即生效。
$ source ~/.bashrc
现在看一下你的终端,“username@hostname” 部分已经消失了,只保留了一个 ~> 标记。
如果你想要尽可能简单的操作,又不想弄乱你的 ~/.bashrc 文件,最好的办法就是在系统中创建另一个用户(例如 “user@example”、“admin@demo”)。用带有这样的命令提示符的用户去截图或者录屏,就不需要顾虑自己的用户名或主机名被别人看见了。
警告:在某些情况下,这种做法并不推荐。例如像 zsh 这种 shell 会继承当前 shell 的设置,这个时候可能会出现一些意想不到的问题。这个技巧只用于隐藏命令提示符中的 “username@hostname” 部分,仅此而已,如果把这个技巧挪作他用,也可能会出现异常。
为 bash 命令提示符着色
目前我们也只是变更了 bash 命令提示符中的内容,下面介绍一下如何对命令提示符进行着色。
通过向 ~/.bashrc 文件写入一些配置,可以修改 bash 命令提示符的前景色(也就是文本的颜色)和背景色。
例如,下面这一行配置可以令某些文本的颜色变成红色:
export PS1="\u@\[\e[31m\]\h\[\e[m\] "
添加配置后,执行 source ~/.bashrc 立即生效。
你的 bash 命令提示符就会变成这样:
类似地,可以用这样的配置来改变背景色:
export PS1="\u@\[\e[31;46m\]\h\[\e[m\] "
添加 emoji
大家都喜欢 emoji。还可以按照以下配置把 emoji 插入到命令提示符中。
PS1="\W
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
linux 自定义shell命令,如何在Linux中自定义bash命令提示符相关推荐
- java 自定义xml_6.1 如何在spring中自定义xml标签
dubbo自定义了很多xml标签,例如,那么这些自定义标签是怎么与spring结合起来的呢?我们先看一个简单的例子. 一 编写模型类 1 packagecom.hulk.testdubbo.model ...
- linux整理碎片命令,如何在 Linux 中整理磁盘碎片
如何在 Linux 中整理磁盘碎片 有一个神话是 linux 的磁盘从来不需要整理碎片.在大多数情况下这是真的,大多数因为是使用的是优秀的日志文件系统(ext3.4等等)来处理文件系统.然而,在一些特 ...
- eclipse中自定义视图_如何在Windows中自定义文件夹视图设置
eclipse中自定义视图 While the Windows File Explorer seems somewhat simplified compared to older versions, ...
- linux启动postfix命令,如何在Linux停止和启动postfix服务的命令
1.启动Postfix服务 启动Postfix服务的命令为:/etc/init.d/postfix start 命令执行后如图所示,则表示启动Postfix服务成功. 2.停止Postfix服务 停止 ...
- outlook自定义快捷键_如何在Outlook中自定义导航窗格
outlook自定义快捷键 The Outlook client comes with several different panes that you can show and hide. Each ...
- 八、Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程(中)
@Author : Runsen @Date:2020/9/11 文章是Runsen在Gitchat付费文章分享:Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程 顺便同步到C ...
- linux中安shell怎么传入参数,【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】...
方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...
- 七、Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程(上)
@Author : Runsen @Date:2020/9/11 文章是Gitchat付费文章分享:Linux 常用 Shell 命令,控制台的快捷键以及 Shell 编程 顺便同步到CSDN中,这里 ...
- Python下调用Linux的Shell命令
转载:http://blog.csdn.net/my2010sam/article/details/18315785 有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文 ...
最新文章
- php-fpm 启动参数及重要配置详解
- python面向对象编程的优点-Python 基础知识----面向对象编程
- autoenv的使用方法
- 项目管理-时间冲突带来的问题
- 自百度2012吧——这些都是巧合吗
- PMP 之程序性计划、实体性计划、综合计划
- 一个二线城市程序员的一年【坐标成都】
- php遍历文件夹及其子文件夹并计算所占的磁盘空间
- ES2005 js =
- HTML5的表单验证属性--pattern
- iOS之获取设备的UUID
- python 正则表达式学习-group
- Java 学生管理系统 GUI txt文件存储
- Unity使用Remote直接在手机上调试游戏
- matlab 3维平滑,matlab 曲面平滑
- MFC实现点击按钮打开一个指定的文件或者网址或者exe
- MySQL/Mariadb基准测试工具-TPC,TPCC,TPMC(计算机性能衡量指标)
- centos安装aria2c_CentOS安装aria2 + yaaw实现离线下载
- 微信服务号突破每个月4条的限制
- ZigBee模块学习