Linux 爱好者的极简 Mac 终端

以下是我如何通过许多微妙的复杂性来保持终端的简洁和 dotfiles 的安全。
98 位读者喜欢这篇文章。
Getting started with Perlbrew

freephotocc 通过 Pixabay CC0

我坦白说:我已经使用 Mac 超过 10 年了。 起初,考虑到我强大的 Linux 背景,我感到有些羞愧,但 Mac 为我提供了一个类似 Unix 的 shell 和一个出色的窗口管理器。 由于这段历史,我混合使用了一些可以在 macOS 上运行但 Linux 用户会感到熟悉的功能。 没有理由不能移植到 Linux(而且已经移植了!)。

在 Mac 上使用 iTerm2

长期以来,我首选的终端是基本的内置 Terminal.app,但最近我切换到了 iTerm2,因为它具有更好的自定义和配置文件支持。 对我来说,它的一个关键优势是它很容易将设置从一台 Mac 移植到另一台 Mac。 对于日常使用,我更喜欢 Solarized Dark 主题,但在演示文稿中,我有一个单独的配置文件,可以放大文本并使用带有更鲜艳色彩的纯黑色背景。

我使 iTerm2 可用的第一件事是配置 Ctrl+LeftCtrl+Right 箭头,以尊重跳转到单词边界的开始和结束的经典终端行为。 为此,请导航至“Preferences(偏好设置)”>“Profiles(配置文件)”>“Your Profile(你的配置文件)”>“Keys(按键)”并输入以下内容。

  • 键盘快捷键:^←
  • 操作:发送转义序列
  • Esc+:b

然后是另一个:

  • 键盘快捷键:^→
  • 操作:发送转义序列
  • Esc+:f

了解更多关于你可以用 iTerm2 做的事情,并享受自定义体验。

一个简单的命令提示符

我是那些无聊的终端提示符用户之一。 我不包含 Git 目录或退出代码,我只使用单行。 我使用的唯一花哨的组件是 kubectx,它包含当前的 Kubernetes 上下文。 作为 OpenShift Dedicated 站点可靠性工程师 (SRE),我必须使用适当的上下文运行命令,并且 kubectx 可以让我轻松知道我在键入时所处的位置。 因此,我的 Bash PS1 很无聊 username@host cwd $,除了 Kubernetes 上下文前缀。

毫无疑问,与我所见过的一些花哨的终端相比,我是极简主义者。 有些人喜欢透明度,另一些人则喜欢提示中包含大量信息 - 从时间到退出代码以及其他所有内容。 我觉得它在我的终端中令人分心,所以我远距离欣赏这些设置。

精美而复杂的 dotfiles

与我的极简终端相比,很容易看出我将最大的精力放在哪里:部署我的 dotfiles,包括我的 .bash_profile 和我的整体 Mac 设置。

我使用 一系列 Makefiles,通过 GitHub 托管,来管理我的 Mac 设置。 这引入了我的 特定于 dotfile 的部署机制,它也在 GitHub 中。 为什么所有围绕安全性的工具? IT 专业人士和爱好者都需要一种强大的方式来将安全数据放在新系统上。 也许您希望隐藏您的 SSH 配置,或者您可能正在通过第三方系统部署凭据。 我发现将我的安全数据与其他所有内容放在一起很有用,我使用 Ansible Vault 解决了这个问题。 我的所有秘密都存储在 Git 中,并使用 Ansible Vault 进行加密。 解密由 Makefiles 处理。

无论是第一次安装还是更新现有的 dotfiles,我(当然)都必须有 Ansible Vault,为了避免到处都安装它,我把它放在一个容器中,我用 Docker 运行它,我确实到处都安装了它。 我将解密密码短语放入一个文件中,run make,并使用 make clean 清理所有内容。 (您可以通过 浏览 dotfiles 了解更多信息。)

我想说这种管理方案可能有点过分,但有些人喜欢复杂的终端提示。 因此,也许在平衡中,一切都会变得平衡。

接下来要阅读什么
User profile image.
Lisa 是一位长期的 Linux 用户,前 Gentoo 开发者(2003-2007)。 她是一位终身游戏玩家,这促使她在视频游戏行业工作并编写了 Eve Online(一款涉及严肃的互联网太空飞船业务的视频游戏)的早期 API 库之一。

2 条评论

这太棒了 Lisa,感谢分享! 我喜欢你的 Makefile 方法!

我喜欢这个,我经常在“测试”笔记本电脑上进行 p̶l̶a̶y̶i̶n̶g̶ 发行版跳转,这很麻烦

sudo "packageManger" install $preferredTerminal $preferredShell
git clone UserName/dotfiles

添加/创建 20 个别名/缩写

更多 CLI 命令可以根据我的喜好进行调整。

我已经开始研究创建 Docker 容器或 shell 脚本以获得“一行”解决方案。 但我只使用过前者两次,而后者我必须针对每个案例调试发行版/软件包管理器。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.