Starship定制shell提示符实现信息自由

目录
  • 安装 Starship
  • 配置 Starship
  • 自定义 Starship
  • 控制提示符

控制你的提示符,让你需要的所有信息触手可及。

没有什么比我忘记在我的 Git 仓库中 git add 文件更让我恼火的了。我在本地测试,提交,然后推送,却发现在持续集成阶段失败了。更糟糕的是,我在 main 分支而不是特性分支上,并不小心推送到它。最好的情况是,因为分支保护而失败,我需要做一些操作才能把改动推送到一个分支。更糟糕的是,我没有正确配置分支保护,不小心直接推送到了 main 分支。

如果这些信息能在提示中直接获得,那不是很好吗?

在提示符中甚至还有更多有用的信息。虽然 Python 虚拟环境的名称在提示符中,但虚拟环境的 Python 版本却不在提示符中。

可以仔细地将 PS1 环境变量配置为所有相关的信息。这可能会变得很长,很烦人,而且调试起来并不简单。

这就是 Starship 被设计来解决的问题。

安装 Starship

Starship 的初始设置只需要两个步骤:安装并配置你的 shell。安装可以很简单:

$ curl -fsSL https://starship.rs/install.sh

阅读安装脚本,确保你理解它的作用,然后让它可执行并运行它:

$ chmod +x install.sh
$ ./install.sh

还有其他的安装方法,在其网站上有介绍。你可以在构建镜像的步骤中设置虚拟机或容器。

配置 Starship

下一步是配置你的 shell 来使用它。要一次性尝试,假设 shell 是 bash 或 zsh,请运行以下命令:

$ eval "$(starship init $(basename $SHELL))"

你的提示符立即改变:

localhost in myproject on  master
>

如果你喜欢你所看到的,把 eval "$(starship init $(basename $SHELL))" 添加到你的 shell 的 rc 文件中,使其永久化。

自定义 Starship

默认安装假定你可以安装“电脑迷字体”,例如 Fantasque Sans Mono。 特别是,你需要一种带有来自 Unicode 的“私有实现”部分的字形的字体。

这在控制终端时非常有效,但有时,终端的配置并不容易。例如,当使用一些浏览器内的 shell 抽象时,配置浏览器的字体可能是不太容易的。

该码位的最大用户是 Git 集成,它使用一个特殊的自定义符号来表示“分支”。禁用它可以通过使用文件 ~/.config/starship.toml 来配置 starship.rs

禁用分支符号是通过配置 git_branch 部分的 format 变量完成的:

[git_branch]
format = "on [$branch]($style) "

starship.rs 的一个好处是,改变配置会立即生效。保存文件,按下回车,看看字体是否符合预期。

还可以配置提示符中不同部分的颜色。例如,如果 Python 部分的亮黄色在白色背景上有点难看,你可以配置为蓝色:

[python]
style = "blue bold"

许多语言都有配置支持,包括 Go、.NET 和 JavaScript。还支持显示命令的持续时间(只针对耗时超过阈值的命令)等。

控制提示符

控制你的提示符,让你需要的所有信息触手可及。安装 Starship,让它为你工作,并享受吧!

via: https://opensource.com/article/22/2/customize-prompt-starship

以上就是Starship定制shell提示符实现信息自由的详细内容,更多关于Starship定制shell提示符的资料请关注我们其它相关文章!

(0)

相关推荐

  • Linux命令提示符显示格式的配置方法

    linux用户登录以后,命令提示符上一般有形如 [root@hostname /usr/local ] $ 这样的格式,如果要修改命令提示符的显示方式,可以通过修改环境变量PS1来实现. 我自己的配置是: export PS1='[\u@\h $PWD]\$ ' 显示出来的结果就是 [allenlinrui@HOSTNAME /data/allenlinrui]$ 其中的参数介绍如下: \u 显示当前用户账号 \h 显示当前主机名 \W 只显示当前路径最后一个目录 \w 显示当前绝对路径(当前用

  • 如何在Linux中自定义bash命令提示符

    前言 众所周知, bash (the B ourne- A gain Sh ell)是目前绝大多数 Linux 发行版使用的默认 shell.本文将会介绍如何通过添加颜色和样式来自定义 bash 命令提示符的显示.尽管很多插件或工具都可以很轻易地满足这一需求,但我们也可以不使用插件和工具,自己手动自定义一些基本的显示方式,例如添加或者修改某些元素.更改前景色.更改背景色等等. 在 Linux 中自定义 bash 命令提示符 在 bash 中,我们可以通过更改 $PS1 环境变量的值来自定义 ba

  • Linux shell下30个有趣的命令和提示(推荐)

    这些是我收集了多年的Linux shell的30个有趣的命令和提示. 1. 监控命令(每2秒运行一次) watch "ls -larth" 2. 使用一个端口杀死程序 sudo fuser -k 8000/tcp 3. 限制以下命令的内存使用 ulimit -Sv 1000 # 1000 KBs = 1 MB ulimit -Sv unlimited # Remove limit 4. 使用正则表达式重命名所选文件 rename 's/\.bak$/.txt/' *.bak 5. 获得

  • Linux Bash 提示符的一些骚操作(自定义 Bash 提示符)

    一些能让你自定义 Bash 提示符的黑科技 当你在 Linux 环境下打开一个 Shell 终端时,会看到命令行中出现了类似下面的一个 Bash 提示符: [user@$host ~]$ 你知道命令行提示符其实是可以自己设置添加许多非常有用的信息的吗?在这篇文章中我就会教你如何自定义自己的 Bash 命令行提示符,想看的话就接着看吧~ 如何设置 Bash 提示符 Bash 提示符是通过环境变量 PS1 (提示符字符串 1Prompt String 1) 来设置的,它用于交互式 shell 提示符

  • Starship定制shell提示符实现信息自由

    目录 安装 Starship 配置 Starship 自定义 Starship 控制提示符 控制你的提示符,让你需要的所有信息触手可及. 没有什么比我忘记在我的 Git 仓库中 git add 文件更让我恼火的了.我在本地测试,提交,然后推送,却发现在持续集成阶段失败了.更糟糕的是,我在 main 分支而不是特性分支上,并不小心推送到它.最好的情况是,因为分支保护而失败,我需要做一些操作才能把改动推送到一个分支.更糟糕的是,我没有正确配置分支保护,不小心直接推送到了 main 分支. 如果这些信

  • 在 Shell 提示符中显示 Git 分支名称的方法

    Git 的好处之一就是把代码的分支管理变成了一件极其便捷的事情,分支只保留差异,不用复制任何文件,不用连接网络,快速创建,用完即删.Git 分支与项目的复杂程度无关,不管你的项目多么复杂,创建 Git 分支永远都是瞬间的事情.同时,因为保留了父类分支的信息,所以分支的合并也变得异常简单. 当在一个项目中频繁使用多个分支时,可以使用 git status 命令查询自己现在正工作在哪个分支下面,不过难免有脑子发昏的时候,忘记自己在哪个分支下面,因而发生误操作之类的杯具. 那么把分支显示在 Shell

  • linux Shell入门:掌握Linux,OS X,Unix的Shell环境

    在Linux或类Unix系统中,每个用户和进程都运行在一个特定环境中.这个环境包含了变量.设置.别名.函数以及更多的东西.下面是对Shell环境下一些常用命令的简单介绍,包括每个命令如何使用的例子,以及在命令行下设定你自己的环境来提高效率. 找出你当前的shell 在终端应用中输入下面命令中的任意一个: ps $$ ps -p $$ 或者 echo "$0" 输出范例: 图1:找出当前的shell 找出所有已安装的shell 找到已安装shell的完整路径: type -a zsh t

  • 什么是Shell?Shell脚本基础知识详细介绍

    Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好L

  • 浅谈Shell 流程控制

    和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); } else { // 不做任何事情 } 在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else. if else if if 语句语法格式: if condition then command1 command2 ... commandN fi 写成一行(适用于终端命令提示符):

  • 学习shell脚本之前的基础知识[图文]

    日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要不断的练习,只要你shell脚本写的好,相信你的linux求职路就会轻松的多.笔者在这一章中并不会多么详细的介绍shell脚本

  • Shell脚本break和continue命令简明教程

    在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue. break命令 break命令允许跳出所有循环(终止执行后面的所有循环). 下面的例子中,脚本进入死循环直至用户输入数字大于5.要跳出这个循环,返回到shell提示符下,需要使用break命令. 复制代码 代码如下: #!/bin/bash while : do     echo -n "Input a number between 1 to 5: "    

  • 浅析shell脚本知识之符号篇

    shell Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一 个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲 命令.Shell脚本和编程语言很相似,也有变量和流程控制语句,包括循环和分支.但Shell脚本是解释执行的,不需 要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一 行敲到Shell提示符下执行.作为程序设计语言,它虽然不是 Linux系统内核的一部分,但它调用了系统

  • python执行shell获取硬件参数写入mysql的方法

    本文实例讲述了python执行shell获取硬件参数写入mysql的方法.分享给大家供大家参考.具体分析如下: 最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python执行shell获取这些信息,python执行shell脚本有以下三种方法: 1. os.system() 复制代码 代码如下: os.system('ls') #返回结果0或者1,不能得到

随机推荐