Mac 终端基本命令

基本命令
1、列出文件
ls 参数 目录名        例: 看看驱动目录下有什么:ls /System/Library/Extensions
参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件
2、转换目录     

cd    例:想到驱动目录下溜达一圈   cd /System/Library/Extensions

3、建立新目录
mkdir 目录名     例:在驱动目录下建一个备份目录 backup     mkdir /System/Library/Extensions/backup
在桌面上建一个备份目录 backup    mkdir /User/用户名/Desktop/backup

4、拷贝文件
cp 参数 源文件 目标文件    例:想把桌面的Natit.kext 拷贝到驱动目录中  cp -R /User/用户名/Desktop/Natit.kext /System/Library/Extensions
参数R表示对目录进行递归操作,kext在图形界面下看起来是个文件,实际上是个文件夹。
把驱动目录下的所有文件备份到桌面backup
cp -R /System/Library/Extensions/* /User/用户名/Desktop/backup

5、删除文件
rm 参数 文件   例:想删除驱动的缓存  rm -rf /System/Library/Extensions.kextcache     rm -rf /System/Library/Extensions.mkext
参数-rf 表示递归和强制,千万要小心使用,如果执行了 rm -rf / 你的系统就全没了

6、移动文件
mv 文件   例:想把AppleHDA.Kext 移到桌面    mv /System/Library/Extensions/AppleHDA.kext /User/用户名/Desktop
想把AppleHDA.Kext 移到备份目录中   mv /System/Library/Extensions/AppleHDA.kext /System/Library/Extensions/backup

7、文本编辑
nano 文件名   例:编辑natit Info.plist     nano /System/Library/Extensions/Natit.kext/Info.plist

nano 和 vim 都是文本编译 

目录操作

命令名                       功能描述                                             使用举例

mkdir                        创建一个目录                                       mkdir dirname

rmdir                         删除一个目录                                       rmdir dirname

mvdir                        移动或重命名一个目录                         mvdir dir1 dir2

cd                             改变当前目录                                       cd dirname

pwd                          显示当前目录的路径名                          pwd

ls                              显示当前目录的内容                             ls -la

 

文件操作

命令名                                 功能描述                                  使用举例

cat                                      显示或连接文件                       cat filename

 

 

od                                       显示非文本文件的内容            od -c filename

cp                                      复制文件或目录                        cp file1 file2

rm                                     删除文件或目录                         rm filename

mv                                    改变文件名或所在目录               mv file1 file2

 

find                                  使用匹配表达式查找文件             find . -name "*.c" -print

file                                  显示文件类型                                file filename

选择操作

命令名                             功能描述                                       使用举例

head                              显示文件的最初几行                       head -20 filename

tail                                 显示文件的最后几行                       tail -15 filename

cut                                显示文件每行中的某些域                 cut -f1,7 -d: /etc/passwd

colrm                            从标准输入中删除若干列                  colrm 8 20 file2

 

diff                                比较并显示两个文件的差异                diff file1 file2

 

 

sort                             排序或归并文件                                      sort -d -f -u file1

uniq                           去掉文件中的重复行                                  uniq file1 file2

comm                        显示两有序文件的公共和非公共行              comm file1 file2

wc                            统计文件的字符数、词数和行数                    wc filename

nl                             给文件加上行号                                         nl file1 >file2

 

 

 

 

进程操作

命令名                     功能描述                                                 使用举例

ps                           显示进程当前状态                                     ps u

kill                         终止进程                                                     kill -9 30142

 

 

时间操作

命令名                           功能描述                                            使用举例

date                    显示系统的当前日期和时间                           date

cal                                   显示日历                                       cal 8 1996

time                         统计程序的执行时间                            time a.out

网络与通信操作

命令名                                功能描述                                       使用举例

telnet                                  远程登录                                 telnet hpc.sp.net.edu.cn

rlogin                                 远程登录                                 rlogin hostname -l username

rsh                       在远程主机执行指定命令                             rsh f01n03 date

ftp                   在本地主机与远程主机之间传输文件                ftpftp.sp.net.edu.cn

rcp                 在本地主机与远程主机 之间复制文件               rcp file1 host1:file2

ping                   给一个网络主机发送 回应请求                   ping hpc.sp.net.edu.cn

mail                          阅读和发送电子邮件                                          mail

write                      给另一用户发送报文                                  write username pts/1

mesg                    允许或拒绝接收报文                                                 mesg n

Korn Shell 命令              

 命令名                                 功能描述                                        使用举例

history               列出最近执行过的 几条命令及编号                       history

r                         重复执行最近执行过的 某条命令                            r -2

alias                            给某个命令定义别名                                  alias del=rm -i

unalias                     取消对某个别名的定义                                  unalias del

其它命令

命令名                                  功能描述                                         使用举例

uname                     显示操作系统的有关信息                              uname -a

clear                       清除屏幕或窗口内容                                        clear

env                        显示当前所有设置过的环境变量                         env

who                       列出当前登录的所有用户                                    who

whoami                  显示当前正进行操作的用户名                              whoami

tty                         显示终端或伪终端的名称                                         tty

stty                         显示或重置控制键定义                                        stty -a

du                                  查询磁盘使用情况                         du -k subdir
df /tmp                          显示文件系统的总空间和可用空间

w                                  显示当前系统活动的总信息

 

Mac OS X 终端命令开启功能

1.Lion下显示资源库
方法一:
显示
在“终端”中输入下面的命令:
chflags nohidden ~/Library/

隐藏
在“终端”中输入下面的命令:
chflags hidden ~/Library/

方法二:
打开Finder,菜单中选择前往按住option键就会显示资源库项(每次打开都需要重复操作一次)。

2.Finder显示隐藏文件
显示隐藏文件
在“终端”中输入下面的命令:
defaults write com.apple.finder AppleShowAllFiles -bool true
killall Finder

恢复隐藏文件
在“终端”中输入下面的命令:
defaults write com.apple.finder AppleShowAllFiles -bool false
killall Finder

3.Xcode卸载
在“终端”中输入下面的命令:
sudo /Library/uninstall-devtools –mode=all

为实际安装的目录,默认情况下Xcode安装在/Developer目录下,即可执行
sudo /Developer/Library/uninstall-devtools –mode=all

4.在Finder标题栏显示完整路径
在“终端”中输入下面的命令:
defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES
killall Finder

5.去掉窗口截屏的阴影
对窗口进行截屏的时候(Command-Shift-4, 空格),得到的图片周围会自动被加上一圈阴影。
如果你不喜欢这个阴影的效果,可以把它关掉。
在“终端”中输入下面的命令:
defaults write com.apple.screencapture disable-shadow -bool true
killall SystemUIServer

6.强制Safari在新标签中打开网页
Safari是默认支持标签浏览的。但是,我们在页面上点击链接或者在其他应用程序中点击链接的时候,
Safari往往是打开了一个新的窗口,导致页面上的Safari窗口过多,不好管理。通过下面这个小窍门,
我们可以让Safari默认是在一个新标签中打开网页。
在“终端”中输入下面的命令:
defaults write com.apple.Safari TargetedClicksCreateTabs -bool true

7.改变截屏图片的保存位置
Mac OS提供了非常方便的截屏快捷键,可以让我们非常快速的对整个屏幕、部分屏幕或者应用程序窗口进行截屏。不过,这个截屏功能有一个不足之处,就是只能将截 屏图片保存到桌面。如果我们截取的图片特别多,就会让桌面显得特别凌乱。那有没有办法来修改截屏图片的默认保存位置呢?有。方法非常简单,只要在“终端” 中输入下面的命令就可以了。
defaults write com.apple.screencapture location 存放位置
killall SystemUIServer

在输入命令的时候,将“存放位置”替换成真正的文件夹就可以了。例如,你希望存放到自己用户目录的Screenshots文件夹下,就输入
defaults write com.apple.screencapture location ~/Screenshots


8. open

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

$ open /Applications/Safari.app/

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

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

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

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

9. 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

10. 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 彻底关闭文件索引。 

11. 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 。 

12. 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 应用来完全取代命令行。 

13. 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)选项中调整系统的语音选项甚至是语音的语言。

14. diskutil

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

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

15. 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/ 。应当用这个  卸载脚本 。)

命令大全:http://ss64.com/osx/getopt.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章