synth-shell:增强终端体验与生产力的bash脚本集

Boost your terminal, script by script

分支3Tags19
文件最后提交记录最后更新时间
6 年前
6 年前
5 年前
2 年前
2 年前
4 年前
6 年前
5 年前
7 年前
2 年前
4 年前

synth-shell 提升了你的终端体验和生产力,它通过添加颜色、额外信息和便利性来实现这一目标。这不是一个单一工具,而是一系列脚本和别名(你可以自由选择安装你需要的部分),全部用bash编写。查看概述部分以了解详细的列表和选项。



快速设置

本节涵盖了基本步骤,如果你想尽快开始的话。查看文件中的设置部分获取更多细节。在开始之前,为了获得最佳体验,有一些重要的注意事项

  • Power-line字体:在Arch上安装powerline-fonts包,在Ubuntu上安装fonts-powerline

  • 终端字体:配置你的终端模拟器使用美观的字体。我们推荐使用hack-ttf,大多数发行版都可以用这个名字安装。

  • 请记住,对Windows的支持不能保证。但如果你遇到任何bug,欢迎修复并贡献给这个项目。

  • 递归克隆此仓库,因为其中有git子模块(只需复制下面的命令,按原样粘贴)。

一切准备就绪后,运行包含的设置脚本就像复制粘贴以下命令一样简单。

git clone --recursive https://github.com/andresgongora/synth-shell.git
cd synth-shell
./setup.sh

当提示时,选择安装(默认)和用户(默认)。之后,你可能需要打开一个新的终端。然后,你可以按照自己的喜好定制一切



概述

synth-shell 包含以下工具和脚本:

  • 系统状态报告(又称synth-shell-greeter):

    • 在每个新的终端会话(本地、SSH等)中显示。
    • 监控你的服务器、树莓派和工作站。一目了然的所有系统信息(例如外部IP地址、CPU温度等)。
    • 通过打印额外的诊断数据检测损坏的服务或CPU占用过高,但只在需要时。
    • 登录时打印你自己的ASCII徽标,如果没有指定,则打印你的发行版徽标。
  • 炫酷bash提示符(又称synth-shell-prompt):

    • 可配置的颜色和美学。
    • 如果当前工作目录是git仓库的一部分,会显示git状态(需要拉取/推送,是否脏等)。
    • 更好的用户输入与命令输出之间的分离。
  • 更好的ls:一个加强版的ls -la替代品。

  • 别名:向基础命令添加颜色和更友好的行为。

    • grep
    • pacman
    • tree
    • dmesg
    • free
    • sudo:命令自动完成。
    • history:更整洁的格式,没有连续相同的命令。

带有status.sh和fancy-bash-prompt.sh的示例

所有功能都是可选的,大部分也可以根据你的喜好进行自定义。一旦安装,这些脚本将在.bashrc文件内调用,成为bash会话的一部分。一切都用bash编写,并且应该能在几乎任何Linux系统上直接工作(你可能需要安装一些依赖项,仅此而已)。

status.sh

status.sh每次打开新终端时提供简洁的系统报告。如果检测到任何系统参数(如CPU负载、内存等)超过临界阈值,它会发出警告并提供原因的额外信息。最后,但并非最不重要的是,它会打印一个用户可配置的ASCII徽标,让你在图书馆向心仪的TA展示你有多厉害。

通过在~/.config/synth-shell/status.config(用户级安装)或/etc/synth-shell/status.config(全局安装)中可用的许多选项来自定义你的状态报告,或者用同一目录下的示例文件替换它们的内容。

status配置选项预览

fancy-bash-prompt.sh

向bash提示符添加颜色和三角形分隔符,如果当前工作目录是git仓库的一部分,还会显示git状态和分支。为了达到最佳效果,考虑安装(并告诉你的终端使用)hack-ttf字体以及powerline-fonts(后者用于分隔符)。

关于git状态信息,fancy-bash-prompt.sh会打印一个额外的第四条分隔线,显示当前分支名称和表示仓库状态的一个图标(可以在配置文件中更改):

Local-Upstream 本地分支无变化 本地分支已修改
当前同步
你有需要推送到上游
上游有需要拉取到本地
分支已分化,需拉取推送

better-ls.sh

使ls打印更多信息,但排列得更好看。调用ls现在将列出所有文件(-la)、首先排序目录、给输出添加颜色,并在快速分隔符后面列出隐藏文件。但是,如果你用自己的参数调用ls(例如ls -l),除了颜色和排序选项外,它会恢复默认行为。

别名

  • grepgrep --color=auto
  • pacmanpacman --color=auto
  • treetree --dirsfirst -C
  • dmesgdmesg --color=auto --reltime --human --nopager --decode
  • freefree -mht
  • sudo 添加 complete -cf sudo 自动完成命令。
  • history 各种改变。



设置

自动设置

包含的设置脚本将引导你逐步完成过程,让你可以选择要安装哪些特性。在此过程中,你可以选择仅为当前用户安装synth-shell(推荐)或全局安装(需要超级用户权限)。要继续, 在这个新标签页中播放这个链接,然后在你的终端中输入以下内容:

git clone --recursive https://github.com/andresgongora/synth-shell.git
chmod +x synth-shell/setup.sh
cd synth-shell
./setup.sh

请注意,对于fancy-bash-prompt.sh,你可能还需要Power-line字体。可以通过以下方式安装(具体包名因发行版而异):

  • ArchLinux:sudo pacman -S powerline-fonts
  • Debian/Ubuntu:sudo apt install fonts-powerline

最后,打开一个新的终端测试一切是否正常工作。有时,尽管已经正确安装了power-line字体,但如果安装了fancy-bash-prompt.sh(如果已安装),三角形分隔符可能仍然不会显示。在这种情况下,请确保你的locale设置为UTF-8,编辑/etc/locale.conf文件(选择你的语言,但使用UTF-8格式),然后运行sudo locale-gen了解更多有关locale的信息。或者,尝试在你的终端模拟器中使用不同的字体。有些字体不支持特殊字符。我们发现使用hack-ttf可以获得最好的效果。

配置与自定义

您可以通过修改相应的配置文件来定制您的脚本。根据安装方式的不同,这些配置文件以及示例配置文件位于以下文件夹:

  • 仅限当前用户:~/.config/synth-shell/
  • 系统全局:/etc/synth-shell/

卸载

  1. 编辑~/.bashrc并移除与synth-shell相关的行,这些行通常在文件底部。如果您想临时禁用脚本,只需在行前加上#注释。

    nano ~/.bashrc
    
  2. 删除包含脚本的文件夹,该文件夹通常位于您的主文件夹下的~/.config/synth-shell/

    rm -r ~/.config/synth-shell/
    

贡献

这个项目得益于许多人的努力和热情,包括开发者、测试人员,当然还有我们心爱的咖啡机的支持者。您可以查看AUTHORS.md中详细的贡献者名单。感谢你们所有人!

如果您喜欢此项目并希望贡献力量,非常欢迎您这样做。

帮助我们改进

  • 报告问题:如果发现某些功能未正常工作,请告诉我们。我们会尽快修复。
  • 提出想法:想在下一个版本看到的功能?发送邮件或直接打开一个问题
  • 成为开发者:fork这个仓库并积极参与开发!查看问题列表以了解从何处入手,并参考我们的编码规范
  • 宣传推广:最快的分享途径是告诉您的朋友,让更多可能喜爱它的人接触到这代码。

Git 分支

此存储库中有两个分支:

  • master:这是主要分支,包含完全可用的脚本。作为普通用户使用时,应从此分支克隆或下载。
  • develop:包含所有新特性和最新的贡献。从稳定性的角度看,它是可以使用的,但容易存在未被发现的错误,且可能发生重大且未经宣布的变化。若要贡献代码,应向此分支发起pull request。

关于

synth-shell最初是一系列我用于系统维护的(非常简单)Bash脚本集合。起初,它们只是简化我日常操作的小助手,但随着我对Bash逐渐熟练,我也希望它们能在终端展示出更友好的输出。

这个仓库最初的形态大不相同,大多数脚本的内容是由第三方片段拼凑而成,虽能运作但并不完美符合我的需求。随着时间推移,我几乎重写了所有的脚本,剔除了冗余部分,并有幸与一众友善、活跃的贡献者合作,形成了您今天所见的结果。诚然,它并不华丽,但在脚本开发过程中确实乐趣满满。

至于名字,很简单。在我编程的那些狂热时光里,我常听SynthWave音乐,让自己感觉像电影中的“黑客”。


许可证

版权所有 © 2014-2021,Andres Gongora - www.andresgongora.com

项目介绍

逐步提升您的终端性能,脚本一个接一个。【此简介由AI生成】

定制我的领域
251.14 K241访问 GitHub