标签 Mac 下的文章

以下是我如何通过很多微妙复杂的方式来保持终端的简单和我的点文件的安全。

 title=

我要向大家坦白。我成为 Mac 用户已经有 10 多年了。起初,鉴于我强大的 Linux 背景,我觉得有点惭愧,但 Mac 给了我一个类似 Unix 的 Shell 和一个伟大的窗口管理器。因为这段历史,我有一个合二为一的功能,它运行在 macOS 上,但又为 Linux 用户所熟悉。没有理由它不能移植到 Linux 上(而且它已经移植了!)。

在 Mac 上使用 iTerm2

很长时间以来,我首选的终端是基本的内置 Term.app,但我最近改用了 iTerm2,因为它有更好的自定义和配置文件支持。对我来说,它的一个主要优点是可以轻松地在 Mac 之间移植配置。对于日常使用,我更喜欢 Solarized Dark 主题;但对于演示文稿,我有一个单独的配置文件,可以放大文本,并使用色彩更鲜艳的纯黑色背景。

要使 iTerm2 可用,我首先要做的是配置 Ctrl+LeftCtrl+Right 箭头,使其尊重经典的终端行为,即跳转到单词边界的开始和结束。要做到这一点,请导航到 “Preferences > Profiles > Your Profile > Keys” 并输入以下内容:

  • 键盘快捷键:^←
  • 行动:发送 Escape 序列
  • Esc+:b

然后是另一个:

  • 键盘快捷键:^→
  • 行动:发送 Escape 序列
  • Esc+:f

了解更多关于 iTerm2 的内容,享受自定义体验。

一个简单的命令提示符

我是那种无聊的终端提示符用户。我不想在其中包含 Git 目录或退出代码,我也只用单行提示符。我唯一使用的花哨组件是 kubectx ,它包括当前的 Kubernetes 上下文。作为一位 OpenShift Dedicated 的站点可靠性工程师(SRE),我必须在运行命令时有相应的上下文,而 kubectx 让我在打字时很容易知道自己在哪里。所以,我的 Bash PS1 就是无聊的 username@host cwd $,免除了 Kubernetes 上下文前缀。(LCTT 译注:如果想将 Kubernetes 上下文和名字空间显示在 PS1,可以看看 kube-ps1。)

毫无疑问,与我见过的一些花哨的终端相比,我是偏向于极简的。有些人喜欢透明背景,有些人则喜欢他们的提示符上有很多信息 —— 从时间到退出代码以及其他一切。我觉得这些在我的终端上会让人分心,所以我很喜欢远离的那些设置。

精美复杂的点文件

与我的极简主义终端相比,很容易看出我在哪里投入了最大的努力:部署我的点文件,包括我的 .bash_profile 和我的整体 Mac 设置。

我使用通过 GitHub 托管的 一系列 Makefile 来管理我的 Mac 设置。这将会拉取我的点文件专用部署机制,它也在 GitHub 上。你要问为什么要围绕安全做这些工具?IT 专业人士和业余爱好者都需要一种强大的方式来将安全的数据片段放在新系统上。也许你想要你的 SSH 配置是隐藏的,或者你通过第三方系统部署凭证。我发现把我的安全数据和其他一切数据放在一起是很有用的,我用 Ansible Vault 解决了这个问题。我所有的机密信息都存储在 Git 中,用 Ansible Vault 加密。解密是用 Makefile 处理的。

无论是第一次安装还是更新现有的点文件,我(当然)都必须有 Ansible Vault,为了避免到处安装,我把它放在一个用 Docker 运行的容器里,这样我就到处都安装好了。我把解密口令放到一个文件中, run make,然后用 make clean 清理一切。你可以通过探索这些点文件来了解更多)。

我想说的是,这种管理方案可能过于夸张,而有些人喜欢复杂的终端提示。所以,也许在权衡之下,一切都会变得平衡。


via: https://opensource.com/article/20/6/iterm2-mac

作者:Lisa Seelye 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

开源意味着我可以在任何终端上找到熟悉的 Linux。

十年前,我开始了我的第一份工作,它要求我使用 Linux 作为我的笔记本电脑的操作系统。如果我愿意的话,我可以使用各种 Linux 发行版,包括 Gentoo,但由于我过去曾短暂地使用过Ubuntu,所以我选择了 Ubuntu Lucid Lynx 10.04。

我的 Konsole 终端使用的是 Zenburn 主题,有一个类似于这样的 Bash 提示符:

machinename ~/path/to/folder $

现在,我使用 Mac,具体来说是 macOS Catalina,我使用 iTerm2Zenburn 主题,zsh 提示符是这样的:

machinename ~/path/to/folder
$

我想,十年来几乎相同的提示符,我已经赢得了老古板的称号,不过这只是标志着,我的喜好和习惯与现在耍酷的孩子们不一样而已。

仿佛是为了证明我的古板观点,我想改变我的终端和我的旧终端一样。在 Mac 上获得一个看起来和感觉像 Lucid Lynx 的设置并不简单,而且我很花了一些时间。

我最近最大的改变是从 Bash 转移到 zsh,并迁移了我的 Bash 魔改。但这只是其中一个重大的转变。我学到了许多新式的经验,现在我把这些经验赠送给你,亲爱的读者。

Coreutils 对选项的顺序更宽容

从 Ubuntu 转移到 macOS 并没有太大的转变,直到我开始觉得我失去了 Unix 范。我试着运行一些基本的操作,比如删除文件夹,但却被告知我错误地调用了 rm

事实证明,GNU 风格的实用程序可能看起来 BSD 风格的差不多,但最大的可用性差异之一是参数顺序。未命名参数的排列顺序并不一致。例如:rm

下面是我们熟悉的 GNU 风格的删除目录的命令:

$ rm path/to/folder -rf

这与同一命令的 BSD 风格版本形成鲜明对比:

$ rm path/to/folder -rf
rm: path/to/folder: is a directory
rm: -rf: No such file or directory

我通过 Homebrew 安装 Coreutils 解决了这个问题。这将 GNU 实用程序引入到了 macOS,并使我不必为那些已经深深扎根于我的肌肉记忆中的命令记住选项顺序,从而对选项顺序更加宽容。

强大的 iTerm2

我不知道有哪个操作系统的资深用户会对默认终端满意。在 macOS 这块土地上,我选择了 iTerm2,它允许我比基本的操作系统终端应用更灵活。我最喜欢的 iTerm 强大功能之一是能够使用 Command+DCommand+Shift+D 来垂直和水平分割窗格。还有很多技巧需要学习,但仅是简单的分割窗格就值得用 iTerm2 换掉默认终端。

上下文感知的插件

即使是一个古板的用户也会自定义终端提示,其中一个原因是为了获得一些情境感知。我喜欢终端给我提供上下文,并回答所有想到的问题。不仅仅是我在哪个文件夹里,而是:我在什么机器上?这是个 Git 仓库吗?如果是,我在哪个分支?我是在 Python 虚拟环境中吗?

这些问题的答案最终都归结为一类称之为“上下文感知插件”的终端扩展。

对于当前的 Git 分支,我使用了这个 parse\_git\_branch() 方法(如果你使用的是 Oh My Zsh,也有类似的插件)。对于 Python 来说,virtualenv 会自动给提示符加前缀。Oh My Zsh 有如此多的插件,你一定能找到改善你生活的东西。

至于我的本地机?我就直接用 PS1 格式,因为我喜欢这样的基本信息,而且 macOS 并没有真正让你给机器起个名字。

多行提示符也不错

观察力强的读者可能会注意到,十年来我的提示符有一个变化,就是现在它是两行。这是最近的一个变化,我慢慢学会了喜欢,因为我前面提到的所有这些插件都让我的提示符变得很长很长。你在文件系统中导航不能太深,要不你试图做任何基本的事情都会输入换行。随之而来的是偶尔的重绘问题和可读性问题。

我收到的关于解决这个问题的建议大多围绕着“哦,你在用 zsh?用 Powerlevel10k 吧!”这对于像我这样不固步自封的人来说是不错的,但我能够从这些主题中学习到一些,并从中获取一点技巧。

我所做的是在我的提示符中的最后一个 $ 前加一个 $'\n',这样我的上下文信息 —— 当前机器、当前文件夹、当前 GitHub 分支、当前 virtualenv 等等 —— 都可以在一行中出现,然后我的命令就可以顺利输入了。

我发现唯一的问题是学会在哪里。我习惯于让我的眼睛从行的中心开始,因为以前我的提示符就是从那里开始的。我正在慢慢学会向左看提示符,但这是一个缓慢的过程。我有十几年的眼睛习惯要撤销。

使用适合你的方法

如果你喜欢某种风格或工具,那么你的这种偏好是绝对有效的。你可以尝试其他的东西,但千万不要认为你必须使用最新和最伟大的,只是为了像很酷的孩子一样。你的风格和喜好可以随着时间的推移而改变,但千万不要被迫做出对你来说不舒服的改变。

等下一次,凯蒂阿姨再给你吐槽一下 IDE。


via: https://opensource.com/article/20/7/mac-terminal

作者:Katie McLaughlin 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你想重温或看看上世纪 90 年代使用的 Mac 是什么样子,那么现在有个机会。Slack 开发者 Felix Rieseberg 将 Mac OS 8 改造成了一个可以安装在 Mac 或 PC 上的 Electron 应用。

继 2018 年将 Windows 95 转化为应用后,Rieseberg 决定将 1991 年的 Macintosh Quadra 与 Mac OS 8.1 整个转化为一个 Electron 应用。该应用可以安装在 macOS、Windows 和 Linux 上。

它收录了一张 1997 年的 MacWorld 演示光盘中的许多游戏和应用的演示版,这包括《毁灭公爵 3D版》、《文明 2》、《龙与地下城》、《Namely》、《俄勒冈之路》、《Alley 19 Bowling》和《Damage Incorporated》等经典游戏,还有一些应用程序,如 Photoshop 3、Premiere 4、Illustrator 5.5、StuffIt 解压软件等等。

这个应用使用一个虚拟机来模拟 Macintosh Quadra 900,其 CPU 是苹果在过渡到 IBM 的 PowerPC 芯片之前使用的摩托罗拉 CPU。

Rieseberg 说,他是使用 JavaScript 编写的 Electron 应用,虽然效果看起来还可以,但是不要有过高的期望。有人尝试运行了《文明 2》,但是马上就崩溃了,总之,它可以作为娱乐和怀旧,但是显然不能用作正式的使用场合。

虽然这个应用里面预装了 Internet Explorer 和 Netscape,但由于这三十年来互联网发生了太多的变化,因此它不能访问互联网,Rieseberg 说“连 Google 都打不开”。但是,你可以将文件传输到该应用内,也可以挂载外部的磁盘镜像。不管怎么说,上世纪 90 年代版本的 Mac OS 被移植到 JavaScript 中运行,这让人印象深刻。

如果你有兴趣尝试这款应用,其独立版本都不到 250MB,可以从 GitHub 下载。请再次享受,一次回忆之旅。

macOS 用户可以运行 Java 的开源版本,以及用于 云原生 cloud native 开发的新框架。

五月底,Java 庆祝了它的 25 周年纪念日,为了纪念这一时刻,世界各地的开发人员使用 #MovedByJava 这一标签分享他们使用这一编程语言的成就、记忆以及愿景。

我的时间线:

感谢你 @java#MovedByJava

— Graeme Rocher (@graemerocher) 2020年5月21日

多年来,许多技术和趋势都促进了 Java 堆栈的开发、部署和在标准应用程序服务器上运行多个应用的能力。为 Kubernetes 构建容器镜像使得 Java 开发者可以在多个云环境中打包和部署 微服务 microservices ,而不是在虚拟机上运行几个应用程序服务器。

 title=

有了这些技术,Java 应用程序栈被优化为运行更大的堆和可以在运行时做出决策的高动态框架。然而不幸的是,这些努力还不足以使 Java 成为开发人员为 无服务器 serverless 和事件驱动平台开发 云原生 cloud native Java 应用程序的首选编程语言。其他语言填补了这部分空缺,特别是 JavaScript、Python 和 Go,而 Rust 和 WebAssembly 也成了新的选择。

尽管存在这种竞争, 云原生 Java cloud native Java 正在对以云为中心的软件开发产生影响。好在,新的 Java 框架(比如,QuarkusMicronautHelidon)最近已经战胜了这些挑战,它们提供了编译速度更快而且更小的应用,同时它们在设计之初就将分布式系统考虑了进去。

如何在 macOS 上安装 Java

Java 开发的未来将从更多人安装和使用 Java 开始。因此,我将介绍如何在 macOS 上安装并开始使用 Java 开发环境。(如果你运行的是 Linux,请查看 Seth Kenlon 的文章《如何在 Linux 上安装 Java》)

通过 Brew 仓库安装 OpenJDK

Homebrew 是 macOS 事实上的标准软件包管理器。如果你还没有安装的话,Matthew Broberg 的文章《Homebrew 简介》将带你完成这些步骤。

当你在 Mac 上安装好 Homebrew 后,使用 brew 命令安装 OpenJDK,这是编写 Java 应用程序的开源方式:

$ brew cask install java

不到一分钟就能看到:

? java was successfully installed!

通过 java -version 命令确认 OpenJDK 已经正确安装:

$ java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7)
OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing

从输出中可以确认 OpenJDK 14 (本文撰写时的最新版本)已经安装。

从二进制文件安装 OpenJDK

如果你并不热衷于包管理器,并且更愿意自己来管理 Java 的话,那么你总是可以选择下载并且手动安装。

我在 OpenJDK 主页上找到了最新版本的下载链接。下载 OpenJDK 14 的二进制文件:

$ wget https://download.java.net/java/GA/jdk14.0.1/664493ef4a6946b186ff29eb326336a2/7/GPL/openjdk-14.0.1_osx-x64_bin.tar.gz

移动到你保存二进制文件的目录,然后解压:

$ tar -xf openjdk-14.0.1_osx-x64_bin.tar.gz

接下来,将 Java 加入到你的 PATH:

$ export PATH=$PWD/jdk-14.0.1.jdk/Contents/Home/bin:$PATH

同时,将这条命令加到你的点文件中,.bash_profile 还是 .zshrc 取决于你运行的 shell。你可以在《如何在 Linux 中设置你的 PATH 变量》一文中了解更多关于配置 PATH变量][23]》一文中了解更多关于配置‘](https://opensource.com/article/17/6/set-path-linux)》一文中了解更多关于配置 $PATH` 变量的内容。

最后,验证你安装的 OpenJDK 14:

$ java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7)
OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)

在 Mac 上编写你的第一个 微服务 microservices

现在,你已经准备好在 maxOS 上使用 OpenJDK 堆栈开发 云原生 cloud native Java 应用程序了。在本教程中,你将在 Quarkus 上创建一个新的 Java 项目,这个项目使用 依赖注入 dependency injection 来公布 REST API。

你需要 Maven 启动,它是一个非常流行的 Java 依赖管理器。从 Maven 的网站安装它,或者通过 Homebrew 使用 brew install maven 命令。

执行以下 Maven 命令来配置 Quarkus 项目,并且创建一个简单的 web 应用:

$ mvn io.quarkus:quarkus-maven-plugin:1.5.1.Final:create \
    -DprojectGroupId=com.example \
    -DprojectArtifactId=getting-started \
    -DclassName="com.example.GreetingResource" \
    -Dpath="/hello"
cd getting-started

运行这个应用:

$ ./mvnw quarkus:dev

当应用程序运行的时候,你可以看到这个输出:

__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \  
\--\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/  
2020-06-13 00:03:06,413 INFO  [io.quarkus] (Quarkus Main Thread) getting-started 1.0-SNAPSHOT on JVM (powered by Quarkus 1.5.1.Final) started in 1.125s. Listening on: <http://0.0.0.0:8080>
2020-06-13 00:03:06,416 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2020-06-13 00:03:06,416 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, resteasy]

使用 curl 命令访问 REST 端点:

$ curl -w "\n" http://localhost:8080/hello
hello

恭喜!通过使用 Mavan 和 Quarkus,你很快从没有安装 Java 的环境里创建了第一个 web 应用。

接下来用 Java 做什么

Java 是一个成熟的编程语言,通过专门为 云原生 cloud native 应用程序开发设计的新框架,Java 的热度会一直持续下去。

如果你正走在这样构建未来应用的路上,你可能会对更多实用的 Quarkus 开发课程或其他现代化框架感兴趣。无论你在构建什么,下一步是配置你的文本编辑器。阅读我关于《在 VS Code 用 Quarkus 编写 Java》的教程,然后再看看你能做什么。


via: https://opensource.com/article/20/7/install-java-mac

作者:Daniel Oh 选题:lujun9972 译者:Yufei-Yan 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你几乎可以在 Linux 上做任何你在 Mac 上可以做的事情 —— 这是你拥有一个开源操作系统的自由。

从 Mac 转到 Linux 已经两年了。在使用 Linux 之前,我用的 Apple 的系统用了 15 年,而当我在 2018 年安装第一个 Linux 发行版时,还只是一个纯粹的新手。

这些日子以来,我只用 Linux,我可以用它完成任何任务。浏览网页、观看 Netflix 影片、写作以及编辑我的 Wordpress 博客,甚至还在上面跑我的开源网页分析项目

我甚至还不是一个开发者!Linux 被认为不适合日常使用,对非技术人员也不够友好的日子已经一去不返了。

最近有很多关于 Mac 的讨论,越来越多的人已经在考虑转到 Linux。我打算分享我的切换过程中的一些经验,帮助其它新手也能从容转移。

你该不该换?

在换系统之前,最好想清楚,因为有时候 Linux 可能跟你预期不一样。如果你仍希望跟 Apple Watch 无缝配对、可以用 FaceTime 给朋友打电话、或者你想打开 iMovie 看视频,那最好还是不要换了。这些都是 Apple 的专有产品,你只能在 Apple 的“围墙花园”里面使用。如果离不开 Apple 的生态系统,那么 Linux 可能不太适合你。

我对 Apple 生态没有太多挂念,我不用 iPhone,所以跟手机的协作没那么必要。我也不用 iCloud、FaceTime,当然也包括 Siri。我早就对开源充满兴趣,只是一直没有行动。

检查你的必备软件清单

我还在使用 Mac 的时候,就已经开始探索开源软件,我发现大部分在 Mac 上使用的软件,在 Linux 也可以运行。

很熟悉用火狐浏览网页吗?在 Linux 上它也可以运行。想用 VLC 看视频?它也有 Linux 版本。喜欢用 Audacity 录制、编辑音频?它正在 Linux 上等着你呢。你用 OBS Studio 直播?在 Linux 直接下载安装吧。一直用 Telegram 跟朋友和家人保持联系吗?Linux 上当然少不了它。

此外,Linux 不仅仅意味着开源软件。你最喜欢的大部分(也可能是所有)非 Apple 专有软件,都能在 Linux 见到它们的身影。Spotify、Slack、Zoom、Stream、Discord、Skype、Chrome 以及很多闭源软件,都可以使用。而且,在你 Mac 浏览器里面运行的任何东西,同样能够运行在 Linux 浏览器。

你能在 Linux 找到你的必备软件,或者更好的替代品吗?请再三确认,做到有备无患。用你最常用的搜索引擎,在网上检索一下。搜索“软件名 + Linux” 或者“软件名 + Linux 替代品”,然后再去 Flathub 网站查看你能在 Linux 用 Flatpak 安装的专有软件有哪些。

请牢记:Linux 不等于 Mac

如果你希望能够从 Mac 轻松转移到 Linux,我相信有一点很重要,你需要保持包容的思想以及愿意学习新操作系统的心态。Linux 并不等于 Mac,所以你需要给自己一些时间去接触并了解它。

如果你想让 Linux 用起来、看起来跟你习惯的 macOS 一模一样,那么 Linux 可能也不适合你。尽管你可以通过各种方法把 Linux 桌面环境打造得跟 macOS 相似,但我觉得要想成功转移到 Linux,最好的办法是从拥抱 Linux 开始。

试试新的工作流,该怎么用就怎么用。不要总想着把 Linux 变成其它东西。你会跟我一样,像享受 Mac 一样享受 Linux,甚至能有更好的体验感。

还记得你第一次使用 Mac 吧:你肯定花了不少时间去习惯它的用法。那么请给 Linux 同样多的时间和关怀。

选择一个 Linux 发行版

有别于 Windows 和 macOS,Linux 不止一个单一的操作系统。不同的 Linux 操作系统被称作发行版,开始使用 Linux 之后,我尝试过好几个不同的发行版。我也用过不同的桌面环境,或者图形界面。在美观度、易用性、工作流以及集成软件上,它们有很大差异。

尽管作为 Mac 的替代品,被提及最多的是 ElementaryOSPop!\_OS,但我仍建议从 Fedora 工作站 开始,理由如下:

  • 使用 Fedora 介质写入器,容易安装
  • 几乎可以支持你所有的硬件,开箱即用
  • 支持最新的 Linux 软件
  • 运行原生无改动的 GNOME 桌面环境
  • 有一个大型开发团队以及一个庞大的社区在背后支持

在我看来,对从 macOS 过来的新手来说,GNOME 是易用性、一致性、流畅性和用户体验最好的桌面环境。它拥有 Linux 世界中最多的开发资源和用户基数,所以你的使用体验会很好。

Fedora 可以为你打开一扇 Linux 的大门,当你适应之后,就可以开始进一步探索各个发行版、桌面环境,甚至窗口管理器之类的玩意了。

熟悉 GNOME

GNOME 是 Fedora 和许多其它 Linux 发行版的默认窗口管理器。它最近 升级到 GNOME 3.36,带来了 Mac 用户会喜欢的现代设计。

一定要做好心理准备,Linux、Fedora 工作站和 GNOME 并不是 Apple 和 macOS。GNOME 非常干净、简约、现代、独创。它不会分散你的注意力,没有桌面图标,没有可见的坞站,窗口上甚至没有最小化和最大化按钮。但是不要慌张,如果你去尝试,它会证明这是你用过最好、最有生产力的操作系统。

GNOME 不会给你带来困扰。启动之后,你唯一能看到的东西只有顶栏和背景图片。顶栏由这几样东西组成,“活动”在左边,时间和日期在中间(这也是你的通知中心),右边是网络、蓝牙、VPN、声音、亮度、电池等托盘图标之类的东西。

为什么 GNOME 像 Mac

你会注意到一些跟 macOS 的相似之处,例如窗口吸附、空格预览(用起来跟 “Quick Look” 一模一样)。

如果你把鼠标光标移动到左上角,点击顶栏的“活动”,或者按下键盘上超级键(Super 键,也就是 Mac 上的 键),你会看到“活动概览”。它有点像 macOS 系统上“调度中心”和“聚焦搜索”的结合体。它会在屏幕中间展示已打开软件和窗口的概览。在左手边,你可以看到坞站,上面有你打开的软件和常用软件。所有打开的软件下面会有一个指示标志,在右手边,你可以看到不同的工作区。

在顶栏中间,有一个搜索框。只要你开始输入,焦点就会转移到搜索框。它能搜索你已经安装的软件和文件内容,可以在软件中心搜索指定的软件、进行计算、向你展示时间或者天气,当然它能做的还有很多。它就像“聚焦”一样。只需开始输入你要搜索的内容,按下回车就可以打开软件或者文件。

你也能看到一列安装好的软件(更像 Mac 上的“启动台”),点击坞站中的“显示应用”图标,或者按 Super + A 就行。

总体来说,Linux 是一个轻量级的系统,即使在很老的硬件上也能跑得很顺畅,跟 macOS 比起来仅仅占用很少的磁盘空间。并且不像 macOS,你可以删除任何你不想要或不需要的预装软件。

自定义你的 GNOME 设置

浏览一下 GNOME 设置,熟悉它的选项,做一些更改,让它用起来更舒服。下面是一些我装好 GNOME 必做的事情。

  • 在“鼠标和触摸板”中,我禁用“自然滚动”、启用“轻触点击”。
  • 在“显示”中,我打开“夜光”功能,在晚上,屏幕会让颜色变暖,减少眼睛疲劳。
  • 我也安装了 GNOME 优化,因为它可以更改额外的设置选项。
  • 在“GNOME 优化”中,我启用了 “Over-Amplification” 设置,这样就能获得更高的音量。
  • 在“GNOME 优化”中,相比默认的亮色主题,我更喜欢 “Adwaita Dark” 主题。

习惯使用键盘操作

GNOME 是以一个极度以键盘为中心的操作系统,所以尽量多使用键盘。在 GNOME 设置中的“键盘快捷键”部分,你可以找到各个快捷键。

你也可以根据自己的理想工作流程来设置键盘快捷键。我将我最常用的应用程序设置为使用超级键打开。比如说,Super + B 打开我的浏览器,Super + F 打开“文件”,Super + T 打开终端。我还把 Ctrl + Q 设置成关闭窗口。

我使用 Super + Tab 在打开的应用程序之间切换,Super + H 隐藏一个窗口,F11 全屏打开软件,Super + Left 把窗口吸附到屏幕左边,Super + Right 把窗口吸附到屏幕左边,等等。

在 Mac 上尝试 Linux 之后再做决定

在完全安装 Linux 之前,在你的 Mac 上先尝试 Fedora。从 Fefora 官网下载 ISO 镜像。使用 Etcher 将 ISO 镜像写入 USB 驱动器,然后在启动时点击 Option 键,这样你就可以在即用模式下尝试了。

现在您无需在 Mac 上安装任何东西就可以探索 Fedora 工作站了。试试各种东西,能否正常工作:能不能连接 WiFi?触控板是否正常?有没有声音?等等。

也记得花时间来尝试 GNOME。测试我上面提到的不同功能。打开一些安装好的软件。如果一切看起来都还不错,如果你喜欢这样的 Fedora 工作站和 GNOME,并且很肯定这就是你想要的,那么把它安装到你的 Mac 吧。

尽情探索 Linux 世界吧!


via: https://opensource.com/article/20/6/mac-to-linux

作者:Marko Saric 选题:lujun9972 译者:nophDog 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Homebrew 软件包管理器可以让你轻松地在 Mac 上安装和更新应用程序和实用程序。

在我追求“万物自动化”的过程中,我一直坚持走在用代码来管理我的 Mac 笔记本电脑的路上。与其用鼠标或触控板手动管理我的应用程序和实用程序,我更喜欢使用软件包管理软件来安装、更新和删除不需要的软件。

这对 Mac 用户来说是个挑战。Mac 的操作系统 macOS 始终落后于 Linux 的一个地方就是在包管理方面。Mac 用户没有默认的软件包管理器,而 Linux 用户则有很多选择 —— 从熟悉的 yumapt 到现代的 Flatpak。但 Mac 呢?

这就是 Homebrew 的作用。Homebrew(自酿)填补了 MacOS 事实上的软件包管理器的空白(它也是 Linux 上的又一个可选的包管理器)。它为任何熟悉命令行的人提供了令人难以置信的流畅而直接的体验,如果你是新手,它是学习命令行的好方法。

(LCTT 译注:Homebrew 系统中采用了大量针对自酿啤酒相关的比喻,大家在使用过程中会发现这些有趣的形容。)

如果你在 Mac 上还没有 Homebrew,你可以这样来安装:

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

该命令将执行 Homebrew 团队提供的安装程序脚本。如果你喜欢谨慎一点,可以 curl 下来这个文件,审核后再手动运行。

$ curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh --output homebrew_installer.sh
$ more homebrew_installer.sh # 审核该脚本,直到你觉得没问题了
$ bash homebrew_installer.sh

使用“酿造”来管理你的命令行实用程序

Homebrew 号称它“可以安装苹果(或你的 Linux 系统)默认没有安装的必需之物”。安装是通过 brew(酿造)命令进行的,它使我们能够访问成千上万的命令行实用程序,但不是更复杂的应用程序。

对于我们这些搞技术的人来说,符合“必需之物”类别的实用工具包括显示目录结构的方便的 tree 命令和我用来 管理多个 Python 版本pyenv

你可以用 search 子命令看到 Homebrew 中所有的“ 秘方 formula ”,我用 wc 命令显示有多少个“秘方”。

# -l 统计行数
$ brew search | wc -l
    5013

有 5000 多个“秘方”,这是一个不可思议的软件数量。所以,在搜索那个庞大的清单之前,最好先对自己想要的东西有个概念。值得庆幸的是,浏览起来很方便。“秘方”被编入并集中存储到核心库中,核心库按操作系统划分(Mac 在 Homebrew Core,Linux 在 Linux Core)。它们也可以通过 Homebrew API 和网站列出。

口碑是另一个寻找实用工具的好方法。考虑到这一点,如果你正在寻找灵感,这里有一些我的最爱:

  • pyenvrbenvnodenv 分别用于管理 Python、Ruby 和 Node.js 的版本
  • imagemagick 用于可脚本化的图像编辑
  • pandoc 用于可脚本化的文件转换(我经常从 .docx 切换到 .md 或 .html)
  • hub 为 GitHub 用户提供了更好的 Git 体验
  • tldr 提供了解如何使用命令行工具的例子

举个例子,看看 tldr 页面,这是一个用户友好的替代方式,可以滚动浏览应用程序的手册页。你可以通过再次运行 search 来确认它是否可用:

$ brew search tldr
==> Formulae
tldr ✔

成功了!这个对勾让你知道它是可用的。现在你可以安装它了:

$ brew install tldr
==> Downloading https://homebrew.bintray.com/bottles/tldr-1.3.0_2.catalina.bottle.tar.gz
Already downloaded: /Users/mbbroberg/Library/Caches/Homebrew/downloads/901bc14594a9283e9ab20aec942dc5a9a2befb7e96e1b0fcccb4e3257918813c--tldr-1.3.0_2.catalina.bottle.tar.gz
==> Installing tldr
==> Pouring tldr-1.3.0_2.catalina.bottle.tar.gz
?  /usr/local/Cellar/tldr/1.3.0_2: 6 files, 35.5KB

值得庆幸的是,Homebrew 预先构建了二进制文件,所以你不必在本地机器上从源代码构建。这样就节省了很多时间,并免除了 CPU 风扇的噪音。我对 Homebrew 赞赏的另一件事是,你可以在不完全了解其含义的情况下欣赏此功能。

但如果你喜欢,看看复杂的东西也是很有趣的。对 tldr 运行 info 子命令,你可以看到所有的依赖管理、源代码,甚至公共分析。

$ brew info tldr
tldr: stable 1.3.0 (bottled), HEAD
Simplified and community-driven man pages
https://tldr.sh/
Conflicts with:
  tealdeer (because both install `tldr` binaries)
/usr/local/Cellar/tldr/1.3.0_2 (6 files, 35.5KB) *
  Poured from bottle on 2020-05-20 at 15:12:12
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/tldr.rb
==> Dependencies
Build: pkg-config ✔
Required: libzip ✔
==> Options
--HEAD
        Install HEAD version
==> Analytics
install: 2,811 (30 days), 7,875 (90 days), 27,105 (365 days)
install-on-request: 2,806 (30 days), 7,860 (90 days), 27,080 (365 days)
build-error: 0 (30 days)

最后,和其他优秀的软件包管理器一样,Homebrew 的 brew uninstall 子命令可用于快速清理和删除未使用的实用程序。

用“酒桶”管理你的应用程序

命令行实用程序是一匹孤狼,但完整的应用程序呢?Homebrew 保持了其标准命令的简单性,只通过其默认的 brew 命令行界面安装单文件应用。而应用程序不符合这种结构。它们的目录层次比较复杂,比单一的二进制要复杂得多。

幸运的是,Mac 上的 Homebrew 包含了一个名为 cask(酒桶)的子命令,用于处理更复杂的多目录结构。特别好的是,cask 使用了与标准 brew 命令类似的命令结构,所以你可以使用类似的 searchinstallinfo 子命令:

brew search --cask | wc -l
    4772

哇,有近 5000 个应用程序,在 Homebrew 的网站上浏览更方便。

我将用我新喜欢的一款应用来引导你完成 caskMeld(我在 Opensource.com 上读到的)。这是一个功能丰富的编辑器,可以帮助管理合并冲突。在它的网站上有下载的链接,我可以运行安装程序,并将其拖放到我的应用程序文件夹中。但我不想再这样做了,我用的是 Homebrew。

首先,我可以通过稍微不同的语法确认它可以使用:

$ brew search --casks meld
==> Casks
meld

然后我使用 cask 子命令来安装它:

$ brew cask install meld
==> Downloading https://github.com/yousseb/meld/releases/download/osx-19/meldmerge.dmg
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/28624006/66cb25
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'meld'.
==> Installing Cask meld
==> Moving App 'Meld.app' to '/Applications/Meld.app'.
==> Linking Binary 'meld.wrapper.sh' to '/usr/local/bin/meld'.
?  meld was successfully installed!

Homebrew 不仅安装了应用程序,而且还在我当前的路径 /usr/local/bin/ 下提供了它。现在,我可以从命令行运行 meld 或从应用程序文件夹中启动应用程序。

更新一切的“酿造升级”

我一直使用软件包管理器的主要原因是,我可以不断升级我的软件,以避免已知的安全漏洞,并确保我总是有最新的功能。如果我手工安装所有的东西,我必须关注每一个工具和应用程序,以了解它是否有自动更新程序,如果没有,就得自己拉回最新的版本。

升级功能是优秀的软件包管理的闪光点。由于我没有什么特殊的版本要求,所以我只需要运行一个命令就可以顺利更新一切:

$ brew upgrade
==> Upgrading 6 outdated packages:
helm 3.2.1 -> 3.2.2
[email protected] 3.8.2_4 -> 3.8.3
ipython 7.14.0 -> 7.15.0
go 1.14.2_1 -> 1.14.3
libzip 1.6.1 -> 1.6.1_1
sqlite 3.31.1 -> 3.32.1

如果你有更复杂的需求,或者想在安装升级前关注一下升级情况,有很多功能标志可供选择。例如,-n 提供了一个 “模拟运行”,列出了可用的升级,而不会进行安装。你也可以 “” 住应用程序版本来防止它升级。

备份你的安装

当该工具允许你像其它点文件的版本控制方案一样备份你的安装环境时,命令行实用程序和应用程序的管理就跳到了一个全新的水平。Homebrew 就有这样的功能,可以在 dump 子命令下使用。它会生成一个 Brewfile,这是一个可重复使用的当前所有安装的工具的列表。要从你的安装的环境中生成一个,进入你的合适的文件夹并运行:

$ cd ~/Development/dotfiles # 这是我的点文件的文件夹
$ brew bundle dump

当我换了机器,想用 Homebrew 安装相同的应用程序时,我就会进入装有 Brewfile 的文件夹并运行。

$ brew bundle

它将在我的新机器上安装所有列出的“秘方”和“酒桶”。

用 Homebrew 进行软件包管理

Homebrew 是我常用的命令行工具和应用程序的管理器。它可以让我保持有条理和及时更新,它的设计在易用性和功能深度之间取得了美丽的平衡。Homebrew 将软件包管理的细节最小化到只需要你知道的程度,大多数用户都会从中受益。

如果你对 Linux 软件包管理器已经驾轻就熟,你可能会认为 Homebrew 太简单了,但不要误以为 Homebrew 的易用性是功能的缺乏。稍微深入一点看,就会发现很多高级选项,远远超出了我在这里向你展示的范围。将 -h 添加到任何 brew 子命令中,会显示可用来升级、删除、故障排除,甚至使用模板贡献新 “秘方” 的丰富功能。

总的来说,Homebrew 可以让一个重度命令行的 Mac 用户变得很开心。此外,它是开源的,所以如果你愿意,你可以贡献代码。尝试一下它,让我知道你的想法,在下面留下评论。


via: https://opensource.com/article/20/6/homebrew-mac

作者:Matthew Broberg 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出