▼
Pandas
▲
现在几乎所有的个人电脑都带有图形用户界面(GUI)。在苹果Macintosh发布之前,大多数电脑都是启动到一个终端,纯文本环境。现在你所看到的只是一个闪烁的光标。
如果你的电脑没有附带用户手册,你可能会对你应该输入哪些命令感到费力,因为没用过命令行的一般都不会知晓这些命令。如果你不是用终端机长大的,那么我可以想象如果鼠标失灵或者无法用图形界面操作时查看电脑mac地址命令是什么,你的电脑无异于一块砖头。
这就是我写这个系列的初衷!我希望我的读者在使用终端时,就像使用鼠标和图形用户界面一样轻松自如。
1.Mac终端
↑点击上方蓝字进入查看↑
macOS操作系统自带了很多预装的应用程序。其中一些你知道–日历、邮件、照片和Safari。其他的,你就不熟悉了,它们更多的是被称为命令–包括cat、cp、df、echo和rm。
自2001年首次发布macOS以来,就有一款应用程序被捆绑在macOS中。这款应用通常被归为Mac普通用户下载安装互联网程序的一种方式。这个应用程序叫做”终端”,如图1-1所示。在本章中,我们先对这个应用程序进行高层次的了解,然后再在以后的章节中对其进行深入的探讨。
图1-1终端应用
本书是一次进入Terminal世界的旅程,以及那些你不可能知道的隐藏命令和实用程序。这些命令与一般的应用程序不同,在那里你使用鼠标和GUI与它们进行交互。命令没有传统的图形用户界面,它们完全是通过键盘操作的。
使用这些命令的方法是使用每个版本的macOS都提供的终端应用程序,隐藏在Utilities文件夹中,如图1-2所示。Utilities文件夹可以在Applications文件夹内找到。
图1-2实用工具文件夹中的终端应用程序
进入Terminal的最快捷方法是激活Spotlight。你可以通过按⌘+空格键来实现,如图1-3所示。
图1-3搜索栏
然后可以在搜索栏中输入”终端”,Spotlight就会显示出供你启动的应用程序,如图1-4所示。
图1-4在搜索框下的终端
初级程序员必备
我为什么说终端是初级程序员必备?它可以让你在电脑上输入命令。使用GUI,你可能会不小心把一个文件移动到错误的位置。相比之下,当你使用终端时。你可以随意更改命令,直到你按下Enter键。只有在你按下Enter之后,计算机才会执行你的命令。
终端的另一个用途是启用应用程序中的隐藏功能。例如,Safari有一个隐藏的Debug菜单,只有使用Terminal才能打开,如图1-5所示。
% defaults write com.apple.Safari IncludeInternalDebugMenu 1
图1-5Safari中隐藏的Debug菜单
作为一名数据分析师,我使用macOS来做数据分析,因为macOS终端和Linux终端非常相似。
如果我想把一个叫files的文件夹从我的桌面复制到我的web服务器上,就像使用scp命令一样简单。
% scp ~/Desktop/files/* user@example.org:~/files/
你可以下载一个SCP(Secure CoPy)GUI应用程序,比如CyberDuck,但是使用GUI应用程序可能比使用这个简单的命令需要更长时间。
终端并不适合每个人,但如果你有编程需求,那么掌握它十分有必要。GUI中的许多活动可以在Terminal中更快地完成。这就是希望你在这个系列的学习过程中能够体会到的。
关于这个系列文章的一些约定
这个系列文章我将完整带大家实现输入、输出的完整过程。
我们用%来指代命令提示符,并把你需要输入的放入到代码框中。
%date
命令下面会出现输出,像这样。
date2020年12月31日 星期四 19时54分04秒 CST
如果一个命令与文本块在一起,我将在代码框中作以注明。例如,要将当前时间打印到终端,你可以使用date命令。在不方便的情况下,输出结果会以截图的形式放到文章中。
电脑配置最低要求
正如苹果公司所说,以下苹果电脑可以运行Catalina。
我个人用的是2019年10月7日发布的macOS(10.15)的Catalina版本。
所有苹果的旧电脑(自2013年以来)都可以运行Catalina,一些2012年的电脑也可以运行。如果你还没有运行Catalina,最好检查一下你的Mac是否兼容。
如果你运行的是旧版本的macOS,你可能会遇到一些命令不存在或者是旧版本的问题。
我们还将安装Homebrew,它是macOS终端的软件包管理器。它需要在macOS High Sierra(10.13)或更高版本上运行。
我们将在这篇文章后面更详细地讨论Homebrew,并在这个系列文章第四篇左右学习我们可以用它来安装什么。
如果你在过去四年内使用的是苹果电脑,你应该已经或将能够将你的macOS版本升级到Catalina。
你需要安装Xcode或Command Line Developer工具,这将在下一节”安装Xcode”中讨论。这些程序为Homebrew提供了必要的工具,使其能够为你的终端建立和安装新的命令。
在你的Mac上至少有20-30GB的可用空间也是有利的,这样你就可以安装所有的要求和额外的命令。你永远不希望你的Mac的磁盘空间用完,因为没有可用的磁盘空间,许多应用程序无法正常运行。
最后一个要求是,你需要一个互联网连接。有些技巧需要连接互联网才能使用。Homebrew还需要互联网来下载新文件,安装新的应用程序,并更新现有的应用程序。
一旦你把这些东西都设置好了,你就可以继续了。
2.安装Homebrew
↑点击上方蓝字进入查看↑
安装XCODE
你需要使用Xcode的Command Line Developer工具来为Homebrew建立新的命令并保持它们的更新。值得庆幸的是,现在你可以通过一个简单的命令轻松安装Apple的Command Line Tools。
% xcode-select --install
当你输入这个命令时,在你按下Enter之前,它应该像图1-6一样。
图1-6在终端中输入xcode-select命令
然后,你应该看到图1-7中的对话框,要求你确认工具的安装。
图1-7xcode-select的安装对话框
命令行工具的安装大约需要500MB的磁盘空间,并将安装几乎所有Homebrew需要编译你安装的命令。
根据Homebrew文档,安装完整版的Xcode就可以否定安装这些工具的必要性。然而,根据我的经验,安装Xcode之后,你仍然需要安装开发者工具。
在某些情况下,Homebrew需要Xcode的完整版本,所以为了完整,我将包括它的安装说明。
安装Xcode很简单,只要到App Store搜索Xcode即可,如图1-8所示。
图1-8在App Store中搜索Xcode
目前,Xcode的下载大小只有11.2GB不到。安装过程中会提取Xcode,使用量约30GB。
使用HOMEBREW
作为一个macOS用户,你可以用网络浏览器从互联网上下载应用程序,也可以使用App Store。偶尔你也会得到新的应用程序,作为macOS系统更新的一部分。
其他操作系统,如Linux和UNIX,都有软件包管理器来帮助维护已安装的应用程序。包管理器让你执行搜索、安装、升级或从系统中删除应用程序等任务。
Linux 的软件包管理器的例子包括 apt、yum、pacman 和 portage。这个列表并不详尽。
macOS自带一个名为App Store的软件包管理器。然而,这只处理苹果批准的软件查看电脑mac地址命令是什么,他们通常只使用图形用户界面(GUI)。有很多有用的开源程序,可以在命令行(macOS上的终端)上运行。你可以下载Xcode,应用程序的源代码及其所有的依赖关系。之后,你将不得不自己手动编译源代码。这可能会变得相当混乱。所以让我告诉你一个更简单的方法。
Homebrew被称为”macOS上缺失的软件包管理器”。还有其他的包管理器,比如MacPorts、pkgsrc、Nix和Fink,但我觉得Homebrew得到了正确的平衡。当你安装Homebrew时,你会得到一个新的命令,叫做brew。从现在开始,我把Homebrew称为brew。
为什么使用Brew?
有数千种不同的应用程序,手动安装它们可能会很繁琐。
你首先需要下载你想要的应用程序的源代码。然后你需要确定应用程序的所有依赖关系。这些都是以函数库的形式存在,可以节省开发人员的时间,不必重新发明轮子。
万物皆有库,有时还不止一个,如表1-1所示。这些库为程序提供了功能,为你节省了时间。例如,libxml2提供了对读取一种称为XML的文件格式的支持。
表1-1
图书馆及其功能
图书馆
宗旨
libcurl
文件传输库
libtls
用于证书验证的TLS库
libreadline
允许用户在输入命令时进行编辑。
libxml2
XML解析器
重点是,你需要安装所有所需的库,很可能是通过从源码中编译它们。然后你就可以编译你最初想要的应用程序了。
这就是包管理器诞生的原因。他们跟踪每一个软件和所有需要的库。当你安装一个应用程序时,软件包管理器会将依赖关系与当前安装的所有软件进行比较,并安装任何缺少的软件。
有一个庞大的开发者社区在生产和维护软件,这些软件可以使用Brew安装在你的计算机上。通过利用Brew,您可以从你之前的所有人身上获益。
安装BREW
在您的计算机上安装Brew是一个非常简单的过程。默认情况下,Brew会安装到一个名为/usr/local的共享文件夹中。这将允许你在Mac上的所有用户之间共享安装的命令。但是,只有安装Brew的用户才能修改命令。
如果你想让所有用户都能修改已安装的命令,他们需要自己安装Brew。
安装Brew更简单的方法是从网站上抓取安装命令,网址是
https://brew.sh/
安装命令虽然简单但功能强大。你需要做的就是将该命令复制并粘贴到终端,然后按回车键。脚本将开始运行,你将得到Brew安装位置的确认。
如果你乐意继续安装,那么按Enter键继续。如果你不想继续,你可以按任何其他按钮来中止安装。
注意,如果脚本需要额外的权限来启动安装,可能会提示你输入密码。
为每个电脑用户安装Brew
默认情况下,Brew会将自己安装到/usr/local中,这一点可以被覆盖。
例如,如果您想将Brew安装到您的主目录中,您可以使用这些命令。
mkdir ~/homebrewcurl -L https://github.com/Homebrew/brew/tarball/mastertar xz --strip 1 -C ~/homebrew
不过,除非你是高级用户,否则我强烈建议你让Brew自己安装到/usr/local,因为你更有可能获得更好的体验。
将Brew安装到/usr/local的一个缺点是,它是由同一台计算机上的所有用户共享的。先安装Brew的人拥有所有权,那么其他任何人想使用Brew都会遇到权限问题。不过此时,我建议用前面的命令将Brew安装到你的主目录中。
安装后
一旦安装完成,你应该运行几个命令来仔细检查一切是否设置正确。
现在你已经安装了Brew环境,并确认一切正常工作。
在BREW中寻找应用
你已经安装了Brew,所以现在您需要了解一些基本的Brew命令。
一个你会经常使用的命令是 brew search。它将允许你通过名称搜索应用程序。例如,你可以搜索nano,它是一个命令行文本编辑器,搜索的命令是 brew search nano。该搜索的命令是 brew search nano。
如果你搜索PHP,你会看到所有不同版本的PHP和所有不同的模块与它一起。
brew search php
如果你只对 PHP 7.3 版感兴趣,你可以做一个更有针对性的搜索。
% brew search php@7.3
现在,我已经向你展示了如何使用brew搜索来寻找要安装的应用程序。然而,只有当你知道你要安装的是什么时,这才是有用的。
你也可以使用Brew网站(),它允许你搜索名称和/或描述。它还可以为您提供命令的完整描述。网站上还有其他有用的信息。
现在你应该可以搜索安装应用程序了。
安装BREW的应用
现在你知道如何找到应用程序,你需要知道如何安装它们。
如何安装fortune?
brew install fortune
现在,你可以在终端上运行fortune。
fortune每个人或多或少都会在某一点上疯狂。-- 鲁德亚德-吉卜林
不用担心会出错。要么你会发现包名不存在,因为这样。
brew install fortune-typError: No available formula with the name "fortune-typo"==> Searching for a previously deleted formula (in the last month)...Error: No previously deleted formula found.==> Searching for similarly named formulae...Error: No similarly named formulae found.==> Searching taps...==> Searching taps on GitHub...Error: No formulae found in taps.
或者你会安装一些你不想要的东西。这也没关系。如果你不小心安装了一个应用程序或命令,你可以很容易地再次删除它,如下。
brew uninstall fortunUninstalling /usr/local/Cellar/fortune/9708... (118 files, 3.4MB)
升级已安装的应用。
您已经安装了Brew的应用程序和命令。
然后,你听说这些应用程序中有一个很酷的新功能。你意识到你的应用程序版本中缺少这个功能。你需要升级你的应用程序,以获得这个最新的功能(或可能修复一个错误)。
如果你运行的是付费应用,那么你很可能要为最新的升级付费。
输入 brew upgrade (其中是实际应用程序的名称)来升级应用程序。如果你已经在运行最新的版本,你会得到一个类似下面的错误。
% brew upgrade fortuneError: fortune 9708 already installed
它的外观比它需要的更可怕。这意味着Brew无法升级你的应用程序,因为你已经有了最新的版本。
这就是你升级成功后的样子。
不过,这个输出完全是瞎编的,因为fortune从1998年开始就没有升级过。
你也可以输入brew升级,不需要额外的参数,这样就可以升级所有由Brew管理的东西。
brew upgrade==> Upgrading 56 outdated packages:php-cs-fixer 2.15.1 -> 2.15.3aws/tap/aws-sam-cli 0.17.0 -> 0.23.0ffmpeg 4.1.3_1 -> 4.2.1_1
Brew会列出所有需要升级的包,然后再进行操作。先了解一下Brew会升级什么,做一个干货,可能会更安全一些。
brew upgrade --dry-run==> Would upgrade 56 outdated packages:php-cs-fixer 2.15.1 -> 2.15.3aws/tap/aws-sam-cli 0.17.0 -> 0.23.0ffmpeg 4.1.3_1 -> 4.2.1_1
然后你可以决定是否要升级任何东西,或者挑剔的升级。
重新安装应用程序
偶尔,你可能会在已经安装了一段时间的应用程序中遇到错误。你会认识到这样的错误,因为它们会说这个lib或那个dylib丢失了,或者是错误的版本。
通常您可以通过重新安装该特定应用程序来解决问题。
假设你的fortune命令有这个问题。
Brew将重新处理公式。它将检查现有的存档是否可用,否则将再次下载它。然后,Brew将再次运行构建过程,最后替换现有的安装。
这个过程并不能解决所有问题,但当你的系统发生重大变化时兼职赚钱,比如macOS的新版本,它可能会有所帮助。
3.总结
↑点击上方蓝字进入查看↑
今天,我们看了Terminal并讨论了为什么它很重要。我们看了Brew(Homebrew)并讨论了安装它所需要的东西。我们安装了Brew的依赖项,最后安装了程序本身。
在本文的最后,我们用一些Brew命令向你展示了一些基础知识,比如如何安装、重新安装和卸载程序。
往期精选
12月精选文章:
1.;
2.