OS X 平台的 8 个终端实用工具

From: http://blog.jobbole.com/72238/

本文由 伯乐在线 - shinancao 翻译自 mitchchn。欢迎加入iOS小组。转载请参见文章末尾处的要求。

OS X 终端对外开放了许多很强大的UNIX实用工具和脚本。如果你是从Linux转过来的,你会发现许多熟悉的命令正是按照你想的那样执行。但是高级用户通常不知道OS X自带了许多在其他操作系统中没有的基于文本的实用工具。

更新:感谢读着的反馈,我已经在后续的文章里写了更多的命令介绍:(800多个)

1.open

open打开文件,目录和应用。很兴奋,对不对?但是作为命令行中的双击,它确实随手可用。例如,输入如下:

1
$ open /Applications/Safari.app/

…这样就打开Safari了,就好像你在Finder中双击了它的图标。1

如果你对一个文件使用open,它将尝试加载该文件以及与其相关的图形界面应用。对一个图片使用open screenshot.png会在预览中打开该图片。你可以设置-a标识来选择用哪个应用打开,或者-e在TextEdit中打开文件直接编辑。

对目录使用open会在直接将你带到该目录所在的Finder窗口。使用open进去到当前的目录非常地有用。

请记住Finder和终端之间的一体化是双向的—如果你把Finder中的文件拖拽到终端中,在命令行中会粘贴出文件的完整路径。

2.pbcopy 和 pbpaste

这两个命令能让你从命令行中复制和粘贴文本。当然了,你也可以使用鼠标—但是pbcopypbpaste真正的力量在于他们是UNIX命令,也就是说这两个命令得益于管道、重定向,并能在脚本中与其他命令一起使用。输入如下:

1
$ ls ~ | pbcopy

…这样会把home目录中的所有文件复制到剪切板中。你可以很容易地得到文件的内容:

1
$ pbcopy < blogpost.txt

…或者做一些更疯狂的事。这个hacked-up脚本会抓取到最新的谷歌涂鸦链接,并把它复制到剪切板中。

1
$ curl http://www.google.com/doodles#oodles/archive | grep -A5 'latest-doodle on' | grep 'img src' | sed s/.*'<img src="\/\/'/''/ | sed s/'" alt=".*'/''/ | pbcopy

使用pbcopy和管道是获得命令输出的一种很棒的方式,而不用滚动到上面再小心地来选择。这使得分享诊断信息变得很容易。pbcopypbpaste还可以用于自动或加速某些类型的任务。例如,如果你想要保存邮件主题到任务列表中,那么你可以从邮件应用中复制主题并运行:

1
$ pbpaste >> tasklist.txt

3.mdfind

许多Linux高级用户曾尝试使用locate来搜索Mac上的文件,然后很快发现它不起作用。还有个古老的UNIX命令find,但是OS X带有自己的杀手级搜索工具:Spotlight。那么为什么不在命令行中利用它的能力呢?

那正是mdfind所做的。任何Spotlight能找到的,mdfind也能找到。包括搜索文件内容和元数据。

mdfind带来了一些便利,这使得它比那些老的命令更杰出。例如,使用-onlyin标识可以限制只搜索单个目录:

1
$ mdfind -onlyin ~/Documents essay

mdfind数据库应该在后台更新,但是你也可以使用mdutil(还有Spotlight)分析解决问题。如果Spotlight没有正常工作,mdutil -E将删除索引,并重头开始创建。你也可以使用mdutil -i完全关闭索引。

4.screencapture

使用screencapture可以获得多种不同类型的截图。它类似于Grab.app和快捷键cmd+shift+3cmd+shift+4,可是它更加的灵活。下面是几种你可以使用screencapture的不同方式:

捕获屏幕内容,包括光标,并把得到的图片(命名为’image.png’)添加到一个新的邮件信息中:

1
$ screencapture -C -M image.png

用鼠标选择一个窗口,然后捕获它的内容不带窗口的影子,并把图像复制到剪切板上:

1
$ screencapture -c -W

延迟10秒后捕获屏幕,并在预览中打开新的图像:

1
$ screencapture -T 10 -P image.png

用鼠标选择屏幕的一部分,捕获它的内容,然后保存为pdf:

1
$ screencapture -s -t pdf image.pdf

要查看更多选项,输入screencapture —help

5.launchctl

launchctl让你与OS X初始化脚本launchd交互,用启动守护进程和启动代理,你可以控制开机时的启动服务。你甚至可以设置脚本定期执行或者每隔一段时间后在后台运行,类似于Linux中的计划任务。

例如,如果你想Apache服务器在你打开电脑时自动启动,只要简单的输入如下:

1
2
$ sudo launchctl load -w
/System/Library/LaunchDaemons/org.apache.httpd.plist

运行launchctl list会展示出当前加载的启动脚本。sudo launch unload [path/to/script]将会停止并卸载正在运行的脚本,添加-w标识将从启动序列中永久删除这些脚本。我想要在Adobe软件和Microsoft软件创建的所有自动升级“助手”上运行一次。

Launchd脚本存储在下面的位置:

1
2
3
4
5
~/Library/LaunchAgents   
/Library/LaunchAgents         
/Library/LaunchDaemons
/System/Library/LaunchAgents
/System/Library/LaunchDaemons

如果要看看什么写入到了启动代理或守护程序,这有一个很不错的博客,是Paul Annesley写的,能够带你了解文件格式。如果你想要学习如何写你自己的launchd脚本,苹果在他们的开发者网站上提供了帮助文档。如果你想完全避免使用命令行,还有一个非常棒的Lingon软件。

6.say

这是一件非常有趣的事:say把文本转换成语音,它使用OS X给VoiceOver使用的TTS引擎。没有任何选项,say仅仅是地读出你输入的内容:2

1
$ say "Never trust a computer you can't lift."

你也可以使用say-f标识读出文本的内容,你还可以用-o标识存储产生的音频剪辑:

1
$ say -f mynovel.txt -o myaudiobook.aiff

say命令可以用于代替控制台日志和警告声音。例如,你可以设置Automator脚本或Hazel脚本进行批文件处理,然后用say提示任务已完成。

但是say最有意思的应用相当地邪恶:如果你用ssh来访问朋友或同事的Mac,你可以默默地登录他们的机器并通过命令行干扰他们。给他们一个Siri的惊喜。

通过改变系统偏好设置中的听写与语音的默认设置,你可以改变say的声音和语言!

7.diskutil

diskutil是OS X上的磁盘工具的命令行界面。它所作的事情和磁盘工具的一样,但是它还有一些额外的功能—例如用零或随机数填充一个磁盘。只要输入diskutil list就可以查看磁盘的路径名,还有连接在你电脑上的移动设备,然后用命令指定你想要操作的卷。一定要小心:diskutil如果使用不正确的话会永久抹掉磁盘上的数据。

8.brew

当然了—这不是技术上一个原本的命令。但是作为OS X用户应该会使用HomeBrew。网上把它叫作“The missing package manager for OS X”,确实如此。如果你曾在Linux中使用过apt-get,那么使用Homebrew时你会感到很容易上手。3

brew使你能很容易接触到上千个开源社区免费的实用工具和插件。例如,brew install imagemagick将会帮你配置好ImageMagick,一个非常强大的实用工具,从播放gif动画到几十种不同类型图片之间的转换它都能完成。brew install node将为你安装NodeJS,它是时下非常流行的开发和运行服务器端JavaScript应用的工具。

你也可以这样使用Homebrew:brew install archey将会为你安装Archey,一个很酷且轻量级的脚本,它可以在一个彩色的苹果logo旁边显示出你Mac的规格。

Homebrew可供选择的范围很多—因为它很容易创建惯用语,新包可以一直被添加进来。

Apple icon

但是关于Homebrew最棒的是哪一部分呢?它把所有文件放在一个单独的目录:/usr/local/。也就是说你可以安装最新版本的系统软件,例如pythonmysql,而且不会影响已内置的这些软件。如果你想要摆脱Homebrew,删除也很容易。

编辑—5月15日:一些朋友建议我不应该盲目地删除/usr/local的内容。要谨慎一些。如果要安全地移除Homebrew,可以使用uninstall script。

为了更好地使用Terminal.app,这里有一份所有适用于OS X 10.9 Mavericks的控制台命令A-Z列表。


  1. 回想一下OS X app不是真正的可执行文件,实际上是以.app为后缀的特殊的目录(bundles)。open是从控制台启动这些程序的唯一方式。它也可以启动其他实际上是bundles的“文件”,例如Pages文档。 ↩
  2. https://www.youtube.com/watch?v=G0FtgZNOD44 ↩
  3. 、实际上,Homebrew更类似于FreeBSD的Ports,比Linux的apt更贴切。它使用一个混合的源文件/二进制文件:如果没有二进制文件给一个指定的包用,它会只下载源文件的压缩包,然后编译—这在今天的多核Mac上不成问题。 ↩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404180.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内存操作流

可以将输出的位置设置在内存上&#xff0c;此时就要使用ByteArrayInputStream、ByteArrayOutputStream来完成输入和输出功能。 ByteArrayInputStream主要完成将内容写入到内存中 ByteArrayOutputStream的功能主要是将内存中的数据输出 import java.io.ByteArrayInputStream; im…

mysql 中 group_concat()用法

基本语法&#xff1a;group_concat([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator 分隔符]) 初始数据&#xff1a; 以name分组&#xff0c;将money打印在一行&#xff0c;默认,分隔&#xff1a; select aa.namename , GROUP_CONCAT( money ) money from a…

H264(NAL简介与I帧判断)

From: http://blog.csdn.net/jefry_xdz/article/details/8461343 1、NAL全称Network Abstract Layer, 即网络抽象层。 在H.264/AVC视频编码标准中&#xff0c;整个系统框架被分为了两个层面&#xff1a;视频编码层面&#xff08;VCL&#xff09;和网络抽象层面&#…

让VS2010添加新类时自动添加public关键字(来自dudu博文)

以下是dudu 老大的详细步骤&#xff1a; http://www.cnblogs.com/dudu/archive/2011/08/30/2159894.html 里面有一个重要步骤&#xff0c;如何修改模板class.cs文件&#xff0c;请看下面截图 1、下载一个解压软件7-zip_9.25Alpha&#xff08;本人是win7 64位&#xff0c;不支持…

H.264视频编码在VC++.Net中的实现

From: http://blog.csdn.net/xwchen/article/details/5052981 引言&#xff1a;H.264编码技术是俱乐部在过去一段时间内研究的一个方向,对该编码技术进行过实际的开发和应用&#xff0c;并取得了很大的收获。下面将重点介绍H.264视频编码在VC.Net中的实现。 1. H.264编码的介…

TCP/IP ---封装与分用

封装 当应用程序用T C P传送数据时&#xff0c;数据被送入协议栈中&#xff0c;然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息&#xff08;有时还要增加尾部信息&#xff09;&#xff0c;该过程如图1 - 7所示。T C P传给I P的数…

远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助...

故障&#xff1a;“远程计算机需要网络级别身份验证&#xff0c;而您的计算机不支持该验证&#xff0c;请联系您的系统管理员或者技术人员来获得帮助” 故障症状&#xff1a;当您使用Windows XP“远程桌面连接”工具去连接Windows Vistas或Windows Server 2008的远程桌面、终端…

CRC32算法详细推导(1)

From: http://blog.csdn.net/sparkliang/article/details/5671510 CRC算法详解&#xff08;1&#xff09; 作为blog再次发出来&#xff0c;详细描述一下CRC32算法的推导过程。 CRC 算法的数学基础 CRC 算法的数学基础就不再多啰嗦了&#xff0c;到处都是&#xff0c;简单提一…

CRC32算法详细推导(2)

From: http://blog.csdn.net/sparkliang/article/details/5671977 CRC算法详解&#xff08;2&#xff09; 初见 Table-Driven 变换到上面的方法后&#xff0c;我们离 table-driven 的方法只有一步之遥了&#xff0c;我们知道一个字节能表示的正整数范围是 0~255&#xff0c;步…

每天一点Swift(五)控制器的生命周期和SizeClass

字数358 阅读19 评论0 喜欢0 初始化init-->awakeFromNib--> prepare a segue --> SB去设置outlets --> viewDidLoad 1. viewDidLoad 在viewDidLoad中&#xff0c;outlets已经被设置&#xff1b;但是几何位置&#xff08;bounds&#xff09;并没有被设置 viewDidLoa…

h264 I帧的判断

From:http://blog.csdn.net/dxpqxb/article/details/13289205 H264数据的NALU 头的格式如图2 所示&#xff1a; F&#xff1a;forbidden_zero_bit.1 位&#xff0c;如果有语法冲突&#xff0c;则为 1。当网络识别此单元存在比特错误时&#xff0c;可将其设为 1&#xff0c;以便…

单硬盘上mac + win7双系统,GUID-GPT分区

首先&#xff0c;当然要介绍下我的环境了。 一、环境介绍 1. 主板是支持UEFI启动的&#xff0c;但是我感觉自己没用到。 2. 我有两个硬盘: hd0: 准备安装mac和win7_x64 hd1: GUID格式&#xff0c;GPT分区&#xff0c;已装有mac10.9.3环境&#xff0c;还有个FAT32的分区&a…

将clover安装到硬盘EFI分区, 解决root device uuid is ...问题

其实说白了&#xff0c;很简单&#xff0c;照着配置图来&#xff0c;一招搞定&#xff0c;但是当你不知道这些配置的时候&#xff0c;将可能耗费你好几天的时间&#xff0c;而且还不一定得到最优解。 附“Clover v2k r2703.pkg"下载地址: http://download.csdn.net/deta…

Silverlight 5 新特性

微软Silverlight 团队在12月9日早上低调的发布了Silverlight 第五个版本-Silverlight 5. Silverlight 5 Available is Here 这也可能是Silverlight最后一个官方主要版本. Silverlight 5 可能作为官方发布最后一个Silverlight 版本. 官方提供各方面支持直到2021年. 支持的时间相…

VMware10出现VMware Workstation 不可恢复错误: (vmx)

在我的VMware10中安装了Ubuntu12&#xff0c; 昨晚还正常关机的呢&#xff0c;今天早上一打开&#xff0c;竟然报错了&#xff0c;错误如图&#xff1a; 上网搜索了下&#xff0c;没有找到比较合适的方法&#xff0c;最后&#xff0c;我在没有卸载VMware的情况下&#xff0c;重…

DB2中ixf文件的导入导出

1. 导出数据 语法&#xff1a;EXPORT TO <文件路径>/文件名.IXF OF IXF SELECT * FROM 表名 2. 导入数据 语法&#xff1a;db2 IMPORT FROM <路径>/<文件名>.IXF OF IXF MODIFIED BY FORCECREATE COMMITCOUNT 10000 REPLACE_CREATE INTO <表名> 简单语…

Android新手入门2016(10)--GridView

本文来自肥宝传说之路&#xff0c;引用必须注明出处&#xff01; GridView跟ListView一样是多控件布局。实现九宫图是最方便的。 还是先看看图&#xff0c;没图说个鸡鸡是不是 如上图&#xff0c;是一种应用方式&#xff0c;在每个格子里面&#xff0c;放入应用图标&#xff0c…