[译]Mac OS X的命令行技巧

本文最后更新于2016年3月5日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

用Mac有半年多了,对工作中常用到的一些软件还比较熟悉,其中以图形界面的操作居多,对Mac系统下的命令行操作不甚熟悉,一方面没有那么强烈的需求,另一方面也是因为没有碰到好的教程。前阵子在GitHub上看到了 “Awesome OS X Command Line” 觉得非常有用,于是将其中自己用的比较多的部分命令进行了翻译,内容如下:

再次感谢「awesome-osx-command-line」!

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/2634.html

《[译]Mac OS X的命令行技巧》上有16条评论

  1. Mac上的homebrew在遇到问题时可以尝试使用下面的命令进行解决:

    brew doctor
    brew update && brew upgrade

  2. 哥们,关于那个osacript -e的命令,我注意到原文中是osascript -e ‘tell application “Finder” to set desktop picture to POSIX file “/path/to/picture.jpg”‘
    你是不是在检查一下?

  3. https://apple.stackexchange.com/questions/64455/is-the-cellar-folder-only-used-for-homebrew
    https://github.com/Homebrew/legacy-homebrew/issues/41561
    Mac下用Homebrew安装的软件基本上都放在了 /usr/local/Cellar/ 目录下,且有的软件(比如:MySQL)安装了多个版本,如果不需要的话就删掉吧,减少一些空间占用:

    $ du -sh /usr/local/Cellar/
    20G /usr/local/Cellar/
    $ brew --prefix
    /usr/local
    $
    $ du -sh /usr/local/Cellar/mysql/*
    339M /usr/local/Cellar/mysql/5.6.26
    465M /usr/local/Cellar/mysql/5.7.10
    467M /usr/local/Cellar/mysql/5.7.11
    479M /usr/local/Cellar/mysql/5.7.12
    480M /usr/local/Cellar/mysql/5.7.13
    481M /usr/local/Cellar/mysql/5.7.14
    473M /usr/local/Cellar/mysql/5.7.16
    480M /usr/local/Cellar/mysql/5.7.17
    234M /usr/local/Cellar/mysql/5.7.19
    234M /usr/local/Cellar/mysql/5.7.20
    $ du -sh /usr/local/Cellar/* | sort -hr

  4. Mac下如何打印当前设备的序列号?
    https://stackoverflow.com/questions/5740390/printing-my-macs-serial-number-in-java-using-unix-commands/
    https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/ioreg.8.html
    http://www.manpages.info/macosx/ioreg.8.html

    $ ioreg -l | awk '/IOPlatformSerialNumber/ { print $4;}'

    用终端命令定制你的 OS X 通知中心:Today Scripts 体验详解
    https://sspai.com/post/27662

    cocoa获取系统序列号,uuid及Mac地址
    http://blog.csdn.net/lipingqingqing/article/details/8843606

  5. mac 下的 top 命令
    https://www.cnblogs.com/LiLihongqiang/p/5933185.html
    http://blog.sina.com.cn/s/blog_4adc4b090102w795.html

    以前只是在 linux 机器上使用 top 命令。常用的快键键是:
    p 键 - 按 cpu 使用率排序
    m 键 - 按内存使用量排序

    这 2 个快捷键在 mac 上都不一样。对应的是,先输入 o,然后输入 cpu 则按 cpu 使用量排序,输入 rsize 则按内存使用量排序。

    如果记不清了,可以在 top 的界面上按 ?,在弹出的帮助界面中即可看到。

  6. 如何查看Mac上的Wifi连接历史?
    http://osxdaily.com/2012/12/21/list-wi-fi-networks-mac-has-connected-to-before/
    http://osxdaily.com/2015/06/03/find-detailed-wifi-connection-history-mac-os-x/

    defaults read /Library/Preferences/SystemConfiguration/com.apple.airport.preferences > ~/wifi_history.log

    defaults read /Library/Preferences/SystemConfiguration/com.apple.airport.preferences | grep LastConnected -A 9

    https://superuser.com/questions/215033/does-mac-os-x-keep-a-log-of-network-connection-addresses-and-dates-times
    https://apple.stackexchange.com/questions/345654/specific-wifi-network-connection-history-in-osx

  7. Mac中的环境变量 PATH 到底是在哪设置的?
    Where is the default terminal $PATH located on Mac?
    https://stackoverflow.com/questions/9832770/where-is-the-default-terminal-path-located-on-mac

    # Mac中的环境变量$PATH是由文件/etc/paths和目录/etc/paths.d/中的文件共同拼接组成的。
    /etc/paths
    /etc/paths.d/

    $ man path_helper

    Add to the PATH on Mac OS X 10.8 Mountain Lion and up
    https://www.architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/

    Where does $PATH get set in OS X 10.6 Snow Leopard?
    https://superuser.com/questions/69130/where-does-path-get-set-in-os-x-10-6-snow-leopard

  8. macOS使用Homebrew的经验分享
    https://segmentfault.com/a/1190000020712263
    https://wsgzao.github.io/post/homebrew/

    目录
    前言
    更新历史
    Homebrew简介
    为什么需要Homebrew
    Homebrew快速入门
      Homebrew安装
      安装
      基础功能
      名词解释
    Homebrew进阶用法
      Tap
      Services
      Cask
      Bundle
    Homebrew扩展用法
      提交Formula
      自建Tap
      私有Tap
    Homebrew Tips
      禁用自动升级
      直接安装 Formula
    安装旧版软件
    Homebrew常见问题
    参考文章

  9. 基于AppleScript的利用技术
    http://noahblog.360.cn/applescript_attack/

    在恶意网络活动研究领域,针对个人终端的攻击Windows总是独占鳌头,但近年来MacOS的终端数上涨,让很多攻击团伙也开始聚焦针对MacOS的恶意软件利用,但即便针对MacOS的攻击,对手也倾向使用python/shell类脚本,恶意文档扩展一类的控制方案或入口利用。而AppleScript这一MacOS的内置脚本语言至今已沿用接近27年,却在安全研究领域鲜有人提及。我们在日常的研究工作中对基于AppleScript的恶意软件利用技术进行了适当总结和狩猎回顾,并提出一个依托AppleScript独有特性的攻击方法。

    # AppleScript特点
    AppleScript是MacOS的特有脚本语言,甚至在iOS或者iPadOS上都不能使用,且作为一门脚本语言AppleScript花里胡哨的"自然语言"古怪设计思路也常被开发者诟病,AppleScript试图以humanized的方式书写但又强硬规定了语法,导致代码及其冗长且背离自然语言书写思路。

    此外,由于AppleScript底层需要通过事件管理器(Apple Event Manager)进行构造和发送Apple事件,他的执行效率也极低,所以在实际场景中无论是用户还是管理员,都极少使用AppleScript。

    从AppleScript调用Apple Event Manager能看出来,其核心是为了进行MacOS之间应用通信和自动化工作,所以通过0用户交互进行应用通信成为AppleScript的最大特点,只要脚本语言中设置好节点内容,可以再无人工参与的情况下进行任何MacOS下的基本操作和图形交互。

    自动化应用通信加上用户免交互,二者叠加可以说是为攻击者提供了天然的鱼叉投递和后渗透土壤,没有任何"漏洞利用"能比"合法"使用任意流行应用进行无受害者参与的攻击路径更有效,所以虽然AppleScript在开发者,用户侧并不受待见,但在攻击侧,通过合理使用AppleScript往往能无往不利,而且不幸的是,Apple对于AppleScript安全的态度也很疲软。

    https://github.com/hackedteam/core-macos/blob/master/core/RCSMCore.m
    https://attack.mitre.org/techniques/T1155/
    https://objective-see.com/blog.html#blogEntry6

发表评论

电子邮件地址不会被公开。 必填项已用*标注