Mac 终端基本命令

转载 (原文地址) emily2013 随笔 dos 226阅读 2018-03-05 14:57:17 举报

基本命令
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

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

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

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

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

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

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

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

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

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

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

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

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

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

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复