使用bash默认环境
我是在计算机启动后立即打开终端窗口的人之一。 在这一点上并不是没有必要,但是习惯就在那里。 我在职业生涯的大部分时间里都在学习神奇的咒语,并且发现在终端上浏览日常工作可以使工作更愉快。 综上所述,偶尔尝试一些新的东西很高兴。
我最近放弃了默认的命令行解释器Bash,转而使用fish ,后者自豪地将自己称为“ 90年代的命令行外壳”。 这就是我切换的原因。

我发现.bashrc是不够的
一年多以前,我决定停止抽象操作系统,并从头开始学习它。 我最近从苹果切换到Linux ,这给了我一个理由寻找到移植我点文件到新的环境。 令人耳目一新; 我发现了许多令人困惑的快捷方式和重复项,并将它们与可以很好地移植到操作系统之间的东西配对。 以下是一些收藏夹:
## Nicer shell experience
export
GREP_OPTIONS =
"--color=auto" ;
# make grep colorful
export
LSCOLORS =gxfxbEaEBxxEhEhBaDaCaD;
# make ls more colorful as well
export
HISTSIZE =
32768 ;
# Larger bash history (allow 32³ entries; default is 500)
export
HISTFILESIZE =
$HISTSIZE ;
export
HISTCONTROL =ignoredups;
# Remove duplicates from history. I use `git status` a lot.
export
HISTIGNORE =
"ls:cd:cd -:pwd:exit:date:* --help" ;
# Make some commands not show up in history
export
LANG =
"en_US.UTF-8" ;
# Language formatting is still important
export
LC_ALL =
"en_US.UTF-8" ;
# byte-wise sorting and force language for those pesky apps
export
MANPAGER =
"less -X" ;
# Less is more
export
GPG_TTY =$
( tty
) ;
# for gpg key management
我一直在努力揭开环境魔术的神秘面纱,而且这种方法越来越有意义。
自定义破坏了我的.bashrc
在这一点上,我再次陷入困境。 我希望终端中有一些现代约定,尤其是自动建议,语法突出显示和命令输出的颜色化而没有太多的依赖关系,我希望该配置独立于我正在运行的任何命令行解释器。 ( iTerm2在Mac上很棒,但是我不想在我的dotfiles中跟踪其神秘的配置文件。)那么我该怎么办?
第一次获得答案时,我一次解决了一个问题:
- 首先,我自定义了〜/ .inputrc文件,以允许向前和向后搜索。
- 然后,我用美化的ccat输出替换了cat ,并在.bashrc中将cat别名化为ccat 。 后来在某些情况下最终中断了对stdout的写入,因此我停止使用它。
- 最终,我使用了Bash-it ,它是用于自定义Bash的强大插件系统。
在将这些片段一一剥离之后,我感到我对系统的运行方式有了更多的了解。 我感觉自己必须跳过去以获得想要的现代体验,这使我回到了使我达到这一点的标准。 直到决定放弃所有内容并尝试完全不同的方法之前,我觉得自己是历史的囚徒。
鱼壳可轻松实现默认设置和自定义
Fish Shell是一种现代的命令行界面,具有自动建议,制表符补全和语法突出显示(以及其他功能)。 我特别喜欢从第一次尝试键入fish就能获得美好的体验:

在第一行中,该命令为蓝色,因为pwd是有效命令。 在第二行,它是红色的,因为pdw是无效命令。 我按Enter键显示它是正确的,但是我可以Swift更正错误并继续前进。 在第三个命令中,我想将目录( cd )更改为我的Development文件夹,然后fish会像上次一样自动询问是否要跳入dotfiles。 当我两次按下Tab键时 ,它会在同一目录中显示其他选项,就像我期望的那样。
如果我想自定义我的鱼壳体验,则不需要安装任何其他库或框架。 Fish附带fish_config命令,该命令将启动图形用户界面(GUI),您可以在其中选择不同的颜色和提示配置。

更令人印象深刻的是,您还可以从GUI中查看所有可用的函数,变量,绑定等:

如果您调整配置,则所有自定义项都存储在同一位置: 〜/ .config / fish 。 上面的屏幕截图显示,我做了一个自定义函数,使我可以使用pyenv轻松激活Python环境。 查阅有关鱼类功能的教程以获取更多信息。
警告:鱼不像猛禽
将.bashrc和.bash_profile文件转换为fish配置的有用策略 ,但是它比我在本文中要介绍的更多。 因此,尽管我已经爱上了鱼,但我还是建议您参加互动教程,看看是否喜欢它。尝试给鱼一个漂亮的默认外壳
我喜欢通过打开航站楼来开始新的一天,而自从改用鱼壳后,我会更加享受。 它使我从担心Bash中的内容转变为专注于计划编写的代码。 如果您希望摆脱对终端的修改,而将重点更多地放在代码上,请尝试一下。 使用chsh将其设置为默认外壳程序,并让我知道它在注释中的作用。
使用bash默认环境