一款优秀的Linux终端Starship

news/2024/11/28 21:35:14/

简介

Starship是一款轻量、迅速、可无限定制的高颜值终端!

兼容性优先
Starship 可以在各种常见的操作系统和常见的 shell 上运行。

使用 Rust 编写
具有 Rust 独树一帜的速度与安全性,使你的提示符尽可能的快速可靠。

可自定义
每个小细节都可以按您喜欢的自定义,不论是最小化以求速度,还是最大化以获得最完善的功能。

安装

1.安装 starship 二进制文件:

安装最新版本

使用 Shell 命令:

curl -sS https://starship.rs/install.sh | sh    

自更新 Starship ,运行下面脚本 将会在不改动 Starship 配置文件的情况下升级版本

实际运行

[root@localhost ~]# curl -sS https://starship.rs/install.sh | shConfiguration
> Bin directory: /usr/local/bin
> Platform:      unknown-linux-musl
> Arch:          x86_64> Tarball URL: https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-musl.tar.gz
? Install Starship latest to /usr/local/bin? [y/N] y
> Installing Starship, please wait…
✓ Starship installed> Please follow the steps for your shell to complete the installation:bashAdd the following to the end of ~/.bashrc:eval "$(starship init bash)"zshAdd the following to the end of ~/.zshrc:eval "$(starship init zsh)"ionAdd the following to the end of ~/.config/ion/initrc:eval $(starship init ion)tcshAdd the following to the end of ~/.tcshrc:eval `starship init tcsh`xonshAdd the following to the end of ~/.xonshrc:execx($(starship init xonsh))fishAdd the following to the end of ~/.config/fish/config.fish:starship init fish | sourceelvishWarning Only elvish v0.17 or higher is supported.And add the following to the end of ~/.elvish/rc.elv:eval (starship init elvish)nushellWarning This will change in the future.Only Nushell v0.61 or higher is supported.Add the following to the end of your Nushell env file (find it by running $nu.env-path in Nushell): "mkdir ~/.cache/starship; starship init nu | save ~/.cache/starship/init.nu"And add the following to the end of your nu config file (find it by running $nu.config-path in Nushell):mkdir ~/.cache/starshipstarship init nu | save ~/.cache/starship/init.nusource ~/.cache/starship/init.nuPowerShellAdd the following to the end of Microsoft.PowerShell_profile.ps1:You can check the location of this file by querying the $PROFILE variable in PowerShell.Typically the path is ~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 or ~/.config/powershell/Microsoft.PowerShell_profile.ps1 on -Nix.Invoke-Expression (&starship init powershell)CmdYou need to use Clink (v1.2.30+) with Cmd. Add the following to a file starship.lua and place this file in Clink scripts directory:load(io.popen('starship init cmd'):read("*a"))()[root@localhost ~]#

2.将初始化脚本添加到您的 shell 的配置文件:

Bash

~/.bashhrc 的最后,添加以下内容:

# ~/.bashrceval "$(starship init bash)"

实际操作

vim ~/.bashrc

# .bashrc# User specific aliases and functionsalias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fieval "$(starship init bash)"
~                                   

配置

https://starship.rs/zh-CN/config/#username

您需要创建配置文件 ~/.config/starship.toml 以供 Starship 使用。

mkdir -p ~/.config && touch ~/.config/starship.toml

Starship 的所有配置都在此 TOML 配置文件中完成:

# 设置配置范例,开启编辑器的自动补全
"$schema" = 'https://starship.rs/config-schema.json'# 在命令之间插入空行
add_newline = true# 将提示符的“❯”替换为“➜”
[character] # “character”是我们正在配置的组件
success_symbol = "[➜](bold green)" # 设置“success_symbol” 字段为绿色加粗的“➜”# 禁用 package 组件,完全隐藏它的提示符
[package]
disabled = true

您可以使用 STARSHIP_CONFIG 环境变量更改默认配置文件的位置:

export STARSHIP_CONFIG=~/example/non/default/path/starship.toml

其他模式:

# Use custom format
format = """
[┌───────────────────>](bold green)
[](bold green)$directory$rust$package
[└─>](bold green) """# Wait 10 milliseconds for starship to check files under the current directory.
scan_timeout = 10# Disable the blank line at the start of the prompt
add_newline = false

效果

┌───────────────────>  localhost in  root in 
│/var/www/html 
└─>

日志

默认情况下,Starship 会将警告和错误日志记录到文件 ~/.cache/starship/session_${STARSHIP_SESSION_KEY}.log. 其中 session key 与您的终端实例相对应。 不过,这也可以使用 STARSHIP_CACHE 环境变量来修改:

export STARSHIP_CACHE=~/.starship/cache

安装字体nerd-fonts

https://www.nerdfonts.com/
https://github.com/ryanoasis/nerd-fonts/

在里面选择一个自己喜欢的字体,我选择下载了JetBrainsMono.zip 字体。

编写脚本安装字体

vim install.sh

# array中换成你要安装的字体的zip压缩包的名称
array=(JetBrainsMono DroidSansMono DejaVuSansMono UbuntuMono CodeNewRoman BitstreamVeraSansMono)
current_dir=`pwd`
for font in ${array[@]}
dosudo unzip ${font} -d /usr/share/fonts/${font}cd /usr/share/fonts/${font}sudo mkfontscale # 生成核心字体信息sudo mkfontdir # 生成字体文件夹sudo fc-cache -fv # 刷新系统字体缓存cd ${current_dir}
done

安装 fish

说明

Fish Shell是一个非常优秀的终端 Shell 工具,拥有许多开箱即用的功能,例如语法自动推荐补全、语法高亮显示或使用快捷键在最近访问的文件夹之间来回切换。

https://fishshell.com/
https://fishshell.com/docs/current/index.html#syntax-overview

yum install fish -y

实际安装

yum install  fish
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                                                                | 7.9 kB  00:00:00     * base: mirrors.ustc.edu.cn* epel: mirrors.bfsu.edu.cn* extras: mirrors.ustc.edu.cn* updates: mirrors.ustc.edu.cn
atomic                                                                                                                                              | 3.0 kB  00:00:00     
base                                                                                                                                                | 3.6 kB  00:00:00     
docker-ce-stable                                                                                                                                    | 3.5 kB  00:00:00     
epel                                                                                                                                                | 4.7 kB  00:00:00     
extras                                                                                                                                              | 2.9 kB  00:00:00     
updates                                                                                                                                             | 2.9 kB  00:00:00     
webtatic                                                                                                                                            | 3.6 kB  00:00:00     
正在解决依赖关系
--> 正在检查事务
---> 软件包 fish.x86_64.0.2.3.1-2.el7 将被 安装
--> 解决依赖关系完成依赖关系解决=====================================================================================================Package                               架构                                    版本                                            源                                     大小
============================================================================================================
正在安装:fish                                  x86_64                                  2.3.1-2.el7                                     epel                                  1.5 M事务概要
=============================================================================================
安装  1 软件包总下载量:1.5 M
安装大小:7.4 M
Is this ok [y/d/N]: y
Downloading packages:
fish-2.3.1-2.el7.x86_64.rpm                                    | 1.5 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装    : fish-2.3.1-2.el7.x86_64                                                                                                                                1/1 验证中      : fish-2.3.1-2.el7.x86_64                                                                                                                                1/1 已安装:fish.x86_64 0:2.3.1-2.el7                                                                                                                                                完毕!

启动fish

fish

http://www.ppmy.cn/news/2538.html

相关文章

路由表和转发表的区别

1.路由表 路由信息最终要存储在用于路由器的主机或者专业路由器上,存放这些信息的地方称为路由表。其中最低包含三元素:目标地址,掩码,下一跳。 1.1.查询路由表的开销 有人认为查询路由表是一件和交换机查询MAC地址一样的事&…

直播带货行业如何入局?先了解一下直播商城源码吧

直播行业的爆火已经持续了多个年头,直到今天,在人们的生活中依然有着举足轻重的地位,它通过多元化的方案为许多行业带来了新的思路,特别是与传统商业所结合的“直播电商”、“直播商城”的卖货新形式,让多方因此而受益…

[附源码]Python计算机毕业设计SSM佳音大学志愿填报系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

20221207比对python和C的运行效率(以六元一次方程组为例)【大概300倍】

20221207比对python和C的运行效率(以六元一次方程组为例) 2022/12/7 17:30 C:\20221207比对python和C的运行效率(以六元一次方程组为例)\1000-1000-1000-1000-1000-1000 (只跑一次) Python源码&#xff1a…

如何基于企业微信通讯录,同步生成对外的LDAP服务?

不少企业使用企业微信作为办公协同的工具,并通过企业微信的组织架构(即通讯录)来管理员工身份。那么如何利用当前企业微信的组织架构和用户身份,同步生成对外的 LDAP 服务呢? 为什么要同步创建 LDAP 服务? …

【网络安全工程师】从零基础到进阶,看这一篇就够了

学前感言 1.这是一条需要坚持的道路,如果你只有三分钟的热情那么可以放弃往下看了。 2.多练多想,不要离开了教程什么都不会,最好看完教程自己独立完成技术方面的开发。 3.有问题多google,baidu…我们往往都遇不到好心的大神,谁…

阿里面试Redis最常问的三个问题:缓存穿透、缓存击穿、缓存雪崩(带答案)

一、缓存穿透 如上图,正常情况下,如果用户在redis缓存中没有查询到自己想要的数据,就会去mysql数据库中查询。如果mysql数据库中也没有,在没有任何措施下,用户一定会不断的去mysql数据库中查询,随着时间的推…

在地图上基于OpenLayers实现点/线/面静态的绘制显示

在做GIS相关的工作过程中,是离不开矢量的数据的。矢量作为最基础的数据形式,一般通用在各个项目中。在导航软件开发或者应用中,点/线/面的标记,标绘,显示等都是不可缺少的。本文主要是来介绍在地图上基于OpenLayers实现…