什么是有用的命令行命令在Mac OS X上?

根据Windows和Linux的线程,你在Mac OS X Server (或Client)中发现哪些命令最有用?

say "some text" 

着名的用于让人们回到他们的公寓 , say你的论点,并通过audio输出设备朗读。

pbpastepbcopy与剪贴板(aka剪贴板)进行交互。

例子:

 # copies the directory listing ls -l | pbcopy # get pasteboard lines containing foo and save them in a_file pbpaste | grep foo > a_file 

我认为他们默认使用macros人编码,所以如果你想要UTF-8(你这样做),你应该看看这些链接:

 fs_usage 

让您监视文件系统活动。 方便如果你想看看一些应用程序创build的文件。 有关更多说明,请参阅http://rentzsch.com/macosx/fs_usageIntro

 open . 

在当前工作目录中打开查找器窗口。

从命令行,我喜欢有能力:

创build并刻录“通用”CD / DVD:

 $ mkisofs -allow-multidot -allow-leading-dots -d -hide -rr-moved \
 -l -joliet-long -R -T -v \
 -V VOLUME_NAME -o output.iso root-cd-dir /
 $ hdiutil burn -noverifyburn output.iso

从CD / DVD创buildISO映像:

 $ diskutil unmountDisk / dev / disk2s0
 $ dd if = / dev / disk2s0 of = cdname.iso bs = 32m

当我正在寻找ldd时能够忘记otool命令:

 $ alias ldd ='printf“发送命令到\'\''otool -L \'\'' -  \ n”&& otool -L'

从命令行挂载磁盘映像:

 $ hdid diskimage.dmg(或.iso)

使用预览来访问手册页:

 $ man -t rsync | 打开-f -a /Applications/Preview.app

“机场”CLI实用程序是我最喜欢的。 见http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/ 。 它会向您显示诸如信号电平,噪声电平以及您所关联的AP的BSSID等详细信息。

 ipconfig getpacket en0 

显示主以太网接口(en0)的networkingconfiguration。

如果你习惯了Windows,并认为“ipconfig”坏了,那不是;-)你只需要添加一些参数

 drutil tray open 

由于Apple光驱上的popupbutton无法从shell访问,因此在没有连接键盘的情况下,这是非常宝贵的(通过ssh)。

这不能说是不够的,“开放”是伟大的。 您可以在其GUI程序中打开文档,也可以使用-aselectGUI程序。 例如,

 open -a vlc movie.avi 

将打开VLC,并告诉它加载当前目录中的movie.avi。

 open movie.avi 

将打开它与任何程序是默认的。 如果你只是想打开一个程序,你也可以这样做:

 open -a system\ preferences 

将运行系统偏好设置。 你也可以打开Url:

 open vnc://myserver:5900 

将打开屏幕共享并连接到myserver。

查看

 man open 

看到你可以使用的所有标志。

 softwareupdate 

从CLI更新您的mac。

 networksetup 

在命令行中的“系统偏好设置”中的“networking偏好设置窗格”中configuration您find的所有内容。 使写脚本,或远程做事容易。

 sudo changeip -checkhostname 

检查正向和反向DNSparsing是否正常,并经常向您显示可用于解决问题的命令。 如果它说“名字匹配,没有什么可以改变的”,那么你的状态很好。 重要的是,如果你曾经改变你的服务器的networkingconfiguration。 在将您的服务器升级到Open Directory Master之前,使用此function同样重要。

 dscacheutil -flushcache 

我发现自己使用这个堆在10.5+上刷新DNScaching。

 ping 224.0.0.1 

Ping你的子网上的所有设备

 last 

显示谁已login到系统,他们使用了多长时间以及系统何时重新启动。

这是一个输出示例:

 clinton ttys000 Thu May 28 22:33 still logged in clinton console Thu May 28 08:05 still logged in reboot ~ Thu May 28 08:05 shutdown ~ Wed May 27 20:15 clinton console Wed May 27 17:33 - 20:15 (02:42) ... wtmp begins Thu May 14 09:26 
 srm 

用于安全删除的命令行版本。

  lsof 

列出打开的文件

当你想popup你的USB驱动器,并告诉它正在使用,并请退出所有的应用程序,然后再试一次,方便。

 $ sudo lsof /Volumes/CLINTON COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 55966 clinton cwd DIR 14,12 16384 2 /Volumes/CLINTON lsof 56042 root cwd DIR 14,12 16384 2 /Volumes/CLINTON lsof 56043 root cwd DIR 14,12 16384 2 /Volumes/CLINTON 

在这种情况下,我已经把cd放到了驱动器上,所以bash正在访问这个卷。

请注意,如果您看到“mds”条目,这意味着聚光灯正在索引驱动器。

苹果提出的命令行pipe理指南是非常宝贵的。

谷歌search“命令行pipe理mac”给出了很好的结果。

用于Mac OS X 10.5,10.4和10.3的命令行pipe理

其他有用的指南在http://www.apple.com/server/macosx/resources/

http://www.commandlinefu.com

虽然不是一个专门的Mac资源,它使用terminal的图标,并且大部分真正有用的命令的列表都可以工作。

 osascript -e 'tell application "AppName" to quit' 

让你从shell中退出一个应用程序。

 osascript -e 'tell application "Finder" to sleep' 

长shell脚本的有用最后一行,使脚本完成后Machibernate。 我有它iSleep别名。

 pbpaste | script.sh |pbcopy 

获取纸板的内容(编辑 – >复制)并将其传递给script.sh。 结果放在粘贴板上,供您编辑 – >粘贴到文档中。

 mcxquery 

这将让您看到什么样的MCX(托pipe客户端)设置正在应用到客户机。

[GUI等同于进入System Profiler,在Software部分下,点击“Managed Client”。]

确定是否pipe理一台机器并查看它是否获得您期望的设置是非常有用的。

 sw_vers 

显示当前安装的Mac OS X的版本和版本。

 system_profiler 

只有在命令行上select关于本机 – >更多信息时,才能获得与您获得的结果相同的结果。

运行

 system_profiler -usage 

或者查看手册页会给你提示如何使用它。

几个例子:

 system_profiler -xml > MySystem.spx # and later, open MySystem.spx # or just double click on it in the Finder 

这将把系统configuration文件转储到一个可以在稍后在另一台机器上查看的文件。

 system_profiler SPUSBDataType 

告诉你所有的USB设备(包括他们的供应商和产品ID,这可以帮助追踪驱动程序)。

 system_profiler SPUSBDataType | grep "Product ID" -c 

会告诉你有多less个USB设备被插入(包括内部的USB设备),这对于看电脑是否看到一个设备是有用的(或者,如果说Parallel被抓住了,或者它已经死了)。 System Profiler GUI App,您可以从菜单中selectView – > Refresh来更新列表; 这可能会更容易。]

 system_profiler SPHardwareDataType 

将获得基本的硬件信息(对资产跟踪有用)和

 system_profiler SPHardwareDataType | grep Serial 

会给你机器的序列号。

 ifconfig en0 ether 00:00:00:00:00:00 

更改(欺骗)MAC地址,直到下一次重新启动

 df -h 

检查我目前在所有磁盘上有多less磁盘空间。

 dns-sd -B _ssh dns-sd -B _rfb dns-sd -B _services._dns-sd._udp 

在Bonjour中列出服务器广告。 最后一个build议列出了您可以列出的服务types。 列表是实时的,当你看到足够的时候按Ctrl-C。

在最近的Linux和Windows的Bonjour SDK中都有相同的命令。

 opendiff file1 file2 

file1file2上运行FileMerge (Apple开发人员工具附带的graphicsdiff )。

 sudo opensnoop 

在豹和更新,报告哪些进程打开文件,无论成功与否。 您可以让它查看在系统中打开的所有文件,通过特定的进程,或者任何进程打开给定的文件,使用不同types的时间戳,以及显示是否发生错误。

这里有一些更多的细节:

  • opensnoop(Mac文件打开监视器)
  • 豹中的隐藏gem:OpenSnoop

opensnoop是一个dtrace脚本; / usr / bin中还有许多其他的东西来看待进程正在进行的系统调用,正在创build的进程以及正在执行的I / O。 运行apropos DTrace查看列表,并查看手册页以获取详细信息。


当我努力诊断为什么漫画人生Magiq 1.1在OS 10.5.8上崩溃时,我发现了关于opensnoop的问题。

我跑了(几次,在不同的帐户,通过SSH):

 sudo opensnoop -e -n Comic > output.txt 

networking用户打开的最后一个文件是这样的(完整path):

 /Network/Servers/.../username/Library/Icons/WebpageIcons.db 

这让我想起Safari 5.0对于networking用户来说是崩溃的,我们通过pipe理一个首选项来cachingfavicons或者redirect一个文件来解决这个问题。 苹果显然在Safari 5.0.1中解决了这个问题,昨天当我升级到Safari 5.0.2时,它修复了漫画人生Magiq用户的崩溃。

 sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent 

启动远程桌面服务(如果您只有SSH访问权限,但希望在客户端Mac上使用GUI执行某些操作,则该function很有用)。 有关更多选项,请参阅: http : //support.apple.com/kb/HT2370

 drutil eject 

会popup一张CD。