`
shappy1978
  • 浏览: 700528 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

8个不可不知的Mac OS X专用命令行工具

    博客分类:
  • CI
 
阅读更多

* pbcopy & pbpaste

 

OS X的终端下通用很多Unix的工具和脚本。如果从Linux迁移到OS X会发现很多熟悉的命令和脚本工具,其实并没有任何区别。

 

但是OS X也提供了很多其他系统所没有的特别的命令行工具。我们推荐8个这类的工具,希望有助于提高在Mac的命令行环境下的效率。

 

1. open

 

open 命令用于打开文件、目录或执行程序。就等同于在命令行模式下,重复图形界面“双击”的动作。例如这个命令与在Finder中双击Safari是一样的:

 

$ open /Applications/Safari.app/

如果 open 一个文件,则会使用关联的程序打开之。例如 open screenshot.png 会在Preview中查看图片。

 

可以使用 -a 选项要求自行选择打开的程序,或使用 -e 强制在TextEdit中编辑此文件。

 

open 一个目录会在Finder窗口中打开此目录。一个很有用的技巧是 open . 打开当前目录。

 

Finder和终端的交互是双向的——把文件从Finder中拖入终端,就等同于把文件的完整路径粘贴到命令行中。

 

2. pbcopy 和 pbpaste

 

这两个工具可以打通命令行和剪贴板。当然用鼠标操作复制粘贴也可以——但这两个工具的真正威力,发挥在将其用作Unix工具的时候。意思就是说:可以将这两个工具用作管道、IO重定向以及和其他命令的整合。例如:

 

$ ls ~ | pbcopy

可以将主目录的文件列表复制到剪贴板。

 

也可以把任意文件的内容读入剪贴板:

 

$ pbcopy < blogpost.txt

做点更疯狂的尝试:获取最新Google纪念徽标(doodle)的URL并复制到剪贴板:

 

$ 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 工具可以简单的抓取命令的输出,而不必向上滚动翻阅终端窗口。可以用于和他人分享命令行的标准和错误输出。 pbcopy 和 pbpaste 也可以用于自动化或加速执行一些事情。例如把一些邮件的主题存为任务列表,就可以先从Mail.app中复制主题,再运行:

 

$ pbpaste >> tasklist.txt

3. mdfind

 

许多Linux用户都发现Linux下查找文件的方法在OS X上不好用。当然经典的Unix find 命令总是可以,但既然OS X有杀手级搜索工具Spotlight,为什么不在命令行上也使用一下呢?

 

这就是 mdfind 命令了。Spotlight能做的查找, mdfind 也能做。包括搜索文件的内容和元数据(metadata)。

 

mdfind 还提供更多的搜索选项。例如 -onlyin 选项可以约束搜索范围为一个目录:

 

$ mdfind -onlyin ~/Documents essay

mdfind 的索引数据库在后台自动更新,不过你也可以使用 mdutil 工具诊断数据库的问题,诊断 mdfind 的问题也等同于诊断Spotlight。如果Spotlight的工作不正确, mdutil -E 命令可以强制重建索引数据库。也可以用 mdutil -i 彻底关闭文件索引。

 

4. screencapture

 

screencapture 命令可以截图。和 Grab.app 与 cmd + shift + 3 或 cmd + shift + 4 热键相似,但更加的灵活。

 

抓取包含鼠标光标的全屏幕,并以 image.png 插入到新邮件的附件中:

 

$ screencapture -C -M image.png 

用鼠标选择抓取窗口(及阴影)并复制到剪贴板:

 

$ screencapture -c -W

延时10秒后抓屏,并在Preview中打开之:

 

$ screencapture -T 10 -P image.png

用鼠标截取一个矩形区域,抓取后存为pdf文件:

 

$ screencapture -s -t pdf image.pdf

更多用法请参阅 screencapture --help 。

 

5. launchctl

 

launchctl 管理OS X的启动脚本,控制启动计算机时需要开启的服务。也可以设置定时执行特定任务的脚本,就像Linux cron一样。

 

例如,开机时自动启动Apache服务器:

 

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

运行 launchctl list 显示当前的启动脚本。 sudo launchctl unload [path/to/script] 停止正在运行的启动脚本,再加上 -w 选项即可去除开机启动。用这个方法可以一次去除Adobe或Microsoft Office所附带的所有“自动更新”后台程序。

 

Launchd脚本存储在以下位置:

 

~/Library/LaunchAgents    

/Library/LaunchAgents          

/Library/LaunchDaemons

/System/Library/LaunchAgents

/System/Library/LaunchDaemons

启动脚本的格式可以参考 这篇blog ,或苹果开发者中心的 文章 。你也可以使用 Lingon 应用来完全取代命令行。

 

6. say

 

say 是一个文本转语音(TTS)的有趣的工具,引擎和OS X使用的一样也是VoiceOver。如果不加其他选项,则会简单的语音朗读你给定的字符串:

 

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

用 -f 选项朗读特定文本文件, -o 选项将朗读结果存为音频文件而不是播放:

 

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

say 命令可以用于在脚本中播放警告或提示。例如你可以设置Automator或Hazel脚本处理文件,并在任务完成时用 say 命令语音提示。

 

最好玩(不过也负罪感十足)的用法是:通过SSH连接到朋友或同事的计算机,然后用 say 命令给他们一个大大大惊喜……

 

可以在系统设置(System Preferences)的字典和语音(Dictation & Speech)选项中调整系统的语音选项甚至是语音的语言。

 

7. diskutil

 

diskutil 是OS X磁盘工具应用的命令行版。既可以完成图形界面应用的所有任务,也可以做一些全盘填0、全盘填随机数等额外的任务。先使用 diskutil list 查看所有磁盘的列表和所在路径,然后对特定的磁盘执行命令。

 

警告:不正确使用 diskutil 可能意外的破坏磁盘数据。请小心。

 

8. brew

 

Homebrew程序提供的 brew ,严格来讲不是一个OS X的原生命令,但任何一个OS X的专业用户都不会错过它。“OS X缺少的包管理器”这个评价是恰如其分的。如果你曾经在Linux上使用过 apt-get (或其他包管理器——译者注),你就会发现Homebrew基本上是一样的。

 

使用 brew 可以简单的获取数千种开源工具和函数库。例如 brew install imagemagick 就可以安装ImageMagick(几乎可以处理任何图像问题,转换任何格式的图像工具), brew install node 可以安装Node.js(当前大热的服务器端JavaScript编程工具)。

 

也可以通过Homebrew做有趣的事情: brew install archey 会安装Archey(在启动命令行时显示苹果LOGO和计算机硬件参数的小工具)。

 

请输入图片描述

Homebrew能安装的工具数量庞大,并且一直保持更新。Homebrew最棒的一点是:所有的文件都被约束在 /usr/local/ 一个位置之下。也就是说可以通过Homebrew安装新版软件的同时,保持系统内置的依赖库或其他软件不变。同时如果想彻底删除Homebrew,也变得非常简单。

 

(注:删除Homebrew最好还是不要直接删除 /usr/local/ 。应当用这个 卸载脚本 。)

 

最后,这里还有一篇OS X所有命令的 完整列表 。

分享到:
评论

相关推荐

    Python-MacCLI管理Mac系统的终极命令行工具

    Mac CLI,全称为Mac Command Line Interface,是针对Mac OS X系统设计的一款强大的命令行工具。它利用Python编程语言的优势,为用户提供了大量自动化操作系统的命令,旨在提升系统管理的效率和便捷性。Python作为...

    mac_os常用命令及工具

    在Mac OS系统中,尤其是Mac OS X Server,网络管理协议(SNMP)是一个重要的工具,用于监控和收集服务器数据。本文将详细介绍如何在Mac OS X Server上安装、启用和配置SNMP。 首先,SNMP(Simple Network ...

    Mac OS X Snow Leopard 10A432雪豹 BT种子

    推荐使用USB移动硬盘来制作做Mac OS X 的启动安装盘,先在USB中划分一个大于6.5GB的硬盘空间分区用来制作Mac OS X硬盘启动盘,然后在PC机的硬盘中划分一个大于20GB的硬盘分区用来安装Mac OS X Snow Leopard 10.6.2...

    Mac OSX 命令行知识

    在Mac OS X操作系统中,命令行工具,也称为终端或Terminal,是系统提供的一种与操作系统交互的方式,它允许用户通过输入文本指令来执行各种任务,而无需图形用户界面。掌握命令行知识对于开发者、系统管理员或者任何...

    mac os x 文件系统

    - **bin**: 包含基本的命令行工具。 - **sbin**: 包含系统管理员使用的工具。 - **/var**: 包含各种日志文件和其他变量数据。 - **/usr**: 包含用户程序和系统管理工具。 - **/etc**: 包含系统配置文件。 这些目录...

    Mac OS X Lion_kext

    总之,Mac OS X Lion的kext文件是系统运行不可或缺的一部分,它们负责扩展和强化内核功能,同时也需要妥善管理和维护,以确保系统的稳定性和安全性。了解和掌握kext的相关知识,对于解决Mac OS X Lion上的问题和优化...

    Mac.OS.X.10.6.3安装教程实际安装(全).pdf

    这个教程特别适合那些没有在PC上安装过Mac OS X的新手,因为不需要额外的硬件设备,如USB键盘、鼠标、启动U盘、DVD刻录机,甚至不需要GPT分区表和第二个硬盘。整个过程尽量简化,避免了复杂的命令行操作。 尽管教程...

    Learning Unix for Mac OS X Mountain Lion

    标题《Learning Unix for Mac OS X Mountain Lion》和描述表明了本书是一本专门针对Mac OS X Mountain Lion系统用户,教授如何使用Unix命令行的指南。Unix命令行是苹果操作系统的基础,它为用户提供了强大的文件操作...

    Putty Linux系统命令行工具

    了解基本使用方法后,学习常见的Linux命令是必不可少的。例如: - `ls`:列出目录内容。 - `cd`:改变当前工作目录。 - `mkdir`:创建新目录。 - `rm`:删除文件或目录。 - `cp`和`mv`:复制和移动文件或目录。 - `...

    Mac OS X Leopard Beyond Manual

    8. **命令行工具与Shell编程**:提供了关于终端命令行工具的详细介绍,帮助用户掌握Shell脚本编写的基础知识。 9. **高级主题**:探讨了一些较为复杂的主题,如内核扩展编程、多线程编程等。 #### 五、版权信息 - ...

    Homebrew Mac OS X 的包管理器 v3.6.20.zip

    Homebrew 是Mac OS X系统上广泛使用的开源包管理器,它允许用户轻松地安装、管理和升级各种命令行工具,包括编程语言、系统库、实用工具等。标题中的"v3.6.20"指的是Homebrew的一个特定版本,这个版本可能包含了性能...

    Mac OS X Terminal Basics v2.1.2

    BSD子系统是Mac OS X的一个强大工具,它提供了丰富的功能和大量新应用程序的访问权限。熟练掌握这些工具,用户可以实现令人惊叹的操作。 #### 为什么选择Unix? 这是许多人关心的核心问题。苹果选择Unix作为其新...

    Mp3Wrap 0.5 MP3合并命令行工具

    作为命令行工具,它可以运行在各种操作系统上,包括Windows、Linux和Mac OS等,这意味着无论你使用何种系统,都能享受到它的便捷服务。 在实际应用中,开发者可以利用MP3Wrap的API或脚本功能,将其集成到自定义的...

    ROUTEROS密码清除工具

    RouterOS是由MikroTik公司开发的一种网络...通过这个工具,用户能够在不损害系统功能的情况下,轻松恢复对设备的访问,从而继续进行网络管理和配置工作。但同时,也提醒我们,定期更新和管理密码是网络安全的重要环节。

    Python-MacOS和Linux上的命令行ssh管理工具

    标题"Python-MacOS和Linux上的命令行ssh管理工具"暗示了我们将使用Python编程语言创建一个命令行工具,该工具可以在Mac OS和Linux系统上简化SSH连接和管理的过程。Python因其简洁、易读的语法和丰富的库支持而成为...

    Mac OS X Server Open Directory Adminstration V10.6英文版

    访问 Open Directory 服务可以通过多种方式实现,包括但不限于 Web 界面、命令行工具以及集成到操作系统中的管理工具。每种方式都有其独特的优点,可以根据具体需求选择最合适的方法。 #### 目录域内部结构 了解...

    [Mac.OS.X.Lion.All-in-One.For.Dummies

    ### Mac OS X Lion All-in-One For Dummies #### 书籍概览与作者介绍 《Mac OS X Lion All-in-One For Dummies》是一本全面介绍Mac OS X Lion操作系统的指南书,由Mark L. Chambers撰写。本书针对初学者及具有一定...

    技巧高超的Shell脚本 101个Linux_Mac OS X_Unix系统的脚本.zip

    《技巧高超的Shell脚本 101个Linux_Mac OS X_Unix系统的脚本》是一本专注于Shell脚本编程的资源集合,适合初学者和有经验的系统管理员使用。该压缩包包含一本电子书(No.Starch.Press.Wicked.Cool.Shell.Scripts-101...

    MAC os boot image

    5. **EFI Shell**: 在非Apple机器上安装Mac OS可能需要使用EFI Shell,这是一个命令行工具,可以用来执行固件级别的命令和测试,如加载和调试引导程序。 6. **Clover Configurator**: 一个用于配置Clover引导加载器...

Global site tag (gtag.js) - Google Analytics