40 个实用的 Mac OS X Shell 脚本和终端命令

openkk 12年前
   <p>这里有一堆的 Mac OS X 下的终端命令,我将这些命令进行了简单的分类,这里很多命令在其他系统(Windows、Linux)一样有效,特别是 Linux/Unix。希望这些命令对你有帮助。</p>    <h3>系统</h3>    <p>重启 Mac OS X:</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">shutdown - r now</pre>    <p></p>    <p>关闭 Mac OS X:</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">shutdown now</pre>    <h3>电源管理/省电</h3>    <p>获取当前电源管理设置的信息</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pmset -g</pre>    <p>设置显示器无活动15分钟后关闭</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">sudo pmset displaysleep 15</pre>    <p>让计算机在无活动30分钟后休眠</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">sudo pmset sleep 30</pre>    <h3>OS X 外观</h3>    <p>禁用仪表盘(别忘了将仪表盘 Dock 图标拖动出来)</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">defaults write com.apple.dashboard mcx-disabled -boolean YES  killall Dock</pre>    <p>启用仪表盘</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">defaults write com.apple.dashboard mcx-disabled -boolean NO  killall Dock</pre>    <p>强制 Finder 程序显示隐藏文件</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">defaults write com.apple.finder AppleShowAllFiles TRUE</pre>    <p>强制 Finder 程序不显示隐藏文件</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">defaults write com.apple.finder AppleShowAllFiles FALSE</pre>    <h3>网络</h3>    <p>ping 某个主机</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">ping -o oschina.net</pre>    <p>使用 traceroute 诊断到某个主机的路由节点</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">traceroute oschina.net</pre>    <p>检查某个主机是否运行 HTTP 服务,或者检查某网站是否可用</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">curl -I www.oschina.net | head -n 1</pre>    <p>管理 Windows 网络(相当于 Windows 下的 NET 命令),该命令有很多选项,运行下面命令来查看这些选项</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">man net</pre>    <p>使用 dig 来诊断域名信息</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">dig www.oschina.net A  dig www.oschina.net MX</pre>    <p>查看谁正在登录到你的 Mac 机器</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">w</pre>    <p>显示系统路由表</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">netstat -r</pre>    <p>显示活动网络连接</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">netstat -an</pre>    <p>显示网络统计</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">netstat -s</pre>    <h3>故障诊断</h3>    <p>列表所有打开的文件</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">lsof</pre>    <p>重启 Bonjour – 当网络中没有 Mac 时很有用</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist  sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist</pre>    <p>弹出 CD (注意不一定是 disk1)</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">diskutil eject disk1</pre>    <h3>文本操作命令</h3>    <p><em>经常你需要从剪切板或者文件中获取某些文本,并对这些文本进行转换和使用,这里列举的命令都是跟文本处理相关的</em></p>    <p>统计剪贴板中文本的行数</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | wc -l</pre>    <p>统计剪贴板中文本的单词数</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | wc -w</pre>    <p>对剪贴板中的文本行进行排序后重新写回剪贴板</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | sort | pbcopy</pre>    <p>对剪贴板中的文本行进行倒序后放回剪贴板</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | rev | pbcopy</pre>    <p>移除剪贴板中重复的文本行,然后写回剪贴板</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | sort | uniq | pbcopy</pre>    <p>找出剪贴板中文本中存在的重复行,并复制后写回剪贴板(包含重复行的一行)</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | sort | uniq -d | pbcopy</pre>    <p>找出剪贴板中文本中存在的重复行,并复制后写回剪贴板(不包含重复行)</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | sort | uniq -u | pbcopy</pre>    <p>对剪贴板中的 HTML 文本进行清理后写回剪贴板</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | tidy | pbcopy</pre>    <p>显示剪贴板中文本的前 5 行</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | head -n 5</pre>    <p>显示剪贴板中文本的最后 5 行</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | tail -n 5</pre>    <p>将剪贴板中文本里存在的 Tab 跳格符号转成空格</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">pbpaste | expand | pbcopy</pre>    <h3>其他有用的命令</h3>    <h4>A:</h4>    <pre class="brush:shell; toolbar: true; auto-links: false;">htpasswd -nb username password</pre>    <h4>B:</h4>    <pre class="brush:shell; toolbar: true; auto-links: false;">AuthType Basic  AuthName "restricted area"  AuthUserFile /path/to/your/site/.htpasswd  require valid-user</pre>    <p>显示终端窗口中之前输入的命令</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">history</pre>    <p>将文件转成 HTML,支持格式包括 Text, .RTF, .DOC.</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">textutil -convert html file.extension</pre>    <p>Nano 是一个很简单易用的文本编辑器,可用于快速更改文本文件,比 vim 功能弱很多,但很方便</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">nano [file_to_edit]</pre>    <p>在 nano 编辑器中,可使用 ctrl+o 来保持,ctrl+x 来退出。</p>    <p>清理终端显示的内容</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">clear</pre>    <h3>iTunes 相关<br /> </h3>    <p>更改 iTunes 链接行为为本机 iTunes 库,而不是 iTunes Store</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">defaults write com.apple.iTunes invertStoreLinks -bool YES</pre>    <p>更改 iTunes 链接行为为 iTunes Store,而不是本机 iTunes 库</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">defaults write com.apple.iTunes invertStoreLinks -bool NO</pre>    <h3>其他 Mac OS X 终端资源</h3>    <p><a href="/misc/goto?guid=4958521624158101572" rel="nofollow">Mac OS X Hacking Tools</a> (old but detailed list for the obsessive only).</p>    <p><a href="/misc/goto?guid=4958521624254120233" rel="nofollow">Cameron Hayne’s Bash Scripts</a></p>    <p><a href="/misc/goto?guid=4958521624346795396" rel="nofollow">Mac OS X Hints</a></p>    <p><a href="/misc/goto?guid=4958521624449532142" rel="nofollow">Apple Forums</a></p>    <p>注意: 前面的很多例子我们用了 pbpaste 来从剪贴板中获取数据,也可使用 cat 来从文件中获取数据</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">cat [/path/to/filename]</pre>    <p>要将结果放到桌面的一个文件,可将 pbcopy 替换为:</p>    <pre class="brush:shell; toolbar: true; auto-links: false;">> ~/Desktop/filename.txt</pre>    <p> </p>    <p><a href="/misc/goto?guid=4958521624526680821" rel="nofollow" target="_blank">英文原文</a></p>