Mac常用命令(大部分和Linux相同)

1、文件操作:

  • cd:用于切换到目标目录。

  • pwd:用于查看当前所在的路径

  • ls:用于查看文件与目录。(ls -l 查看文件详细信息)

  • mkdir:用于新建文件夹。

  • mv:用于移动文件、目录或更名。

  • rm:用于删除文件或目录。

  • cp:用于复制文件,可以复制多个文件

  • tar:对文件进行打包备份,默认情况不压缩,指定相应参数后,会调用相应的压缩程序(如gzip和bzip2等)进行压缩或者解压。

-cvf     # 常用,只要记住c是用来表示打包文件
-xvf     # 用来解包的。
如:
tar -cvf /etc/tmp/etc.tar(打包后的文件路径和名字) /etc(要打包的文件路径)   <== 仅打包,不压缩!
tar -zcvf /etc/tmp/etc.tar.gz(要打包压缩的文件路径和名字) /etc(要打包的文件路径) <== 打包后,gzip压缩
tar -jcvf /etc/tmp/etc.tar.bz2(要打包压缩的文件路径和名字) /etc(要打包的文件路径) <== 打包后,bzip2压缩

tar -zxvf /tmp/etc.tar.gz <== 在当前目录解压,如果要解压在其他地方先cd过去
  • grep:文本搜索工具,可以使用正则表达式搜索文本并打印,非常强大。
格式:
grep [-acinv][--color=auto] '想要搜索字符串' filename 
或
cat filename | grep '字符串' [-acinv][--color=auto] 
参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写
-n :顺便输出行号
-v :反向选择,即显示出没有 '搜寻字符串' 的内容!
--color=auto :将找到的关键词部分加上颜色的显示

grep还支持正则表达式,有机会再写一章来记正则表达式

2、文件搜索

  • find 经常使用的查找命令
格式:find path(搜索路径,为空时默认为当前目录) -option(搜索条件) [-print][-exec -ok command] {}\
简单来说:find <路径> <-条件> <结果处理>

常用搜索条件(不全):
-name filename              #查找名为filename的文件
-user username              #查找属于username的文件
-group groupname            #查找属于username的文件
-mtime -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n                #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-newer f1 !f2               #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f           #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c]                  #查长度为n块[或n字节]的文件
-depth                      #使查找在进入子目录前先行查找完本目录
-mount                      #查文件时不跨越文件系统mount点
-follow                     #如果遇到符号链接文件,就跟踪链接所指的文件

如:
find /Users/DFei_He/desktop -name '*.html' 搜索桌面所有html文件
find .   -perm   755 查看目录下权限为755的文件
  • locate 相当于'find -name'操作,但是搜索速度比find快。
#因为它搜索的是数据库所以速度快。
#数据库位置在/var/lib/locatedb。保存了本地所有文件信息
#该数据库每天更新一次,所以查找当天新增文件,需先updatedb更新数据库

#但是在Mac上第一次使用locate的时候,系统会提示你未创建数据库
WARNING: The locate database (/var/db/locate.database) does not exist.
...
#根据提示,我们创建数据库
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
#执行后会发现失败了,并没有变化,这时候需要另一个命令
sudo /usr/libexec/locate.updatedb

#更新过后就可以通过locate来进行搜索了。
格式:
locate file 搜索所有文件名中有‘file’字符串的文件
locate ~/m 搜索根目录下以m开头的文件
locate -i /etc/sh 搜索etc目录下sh开头的文件,忽略大小写
  • whereis:只能搜索程序名,如whereis php

3、文本操作

  • cat:查看文本文件的内容。
  • vim:用于文本编辑。
插入:i,I,a,A,o,O
删除: 删除前n行(:1,n d),删除全部(:1,%d)
行号:显示(:set number),隐藏(:set nonumber)
退出: 退出(:q),保存退出(:wq),强制退出(:q!),保存只读文件(:w !sudo tee %)

对vim的配置可以修改vimrc(位置位于/usr/share/vim/vimrc,mac用户建议(vim ~/.vimrc)进行操作,因为原文件的权限很高,我尝试了很多方法包括root权限也无法进行修改)

4、网络

  • ping:测试网络连通情况
原理是发送ECHO_REQUEST包到你指定的地址,从来来判断是否连通.
如:
ping baidu.com      会源源不断得发包给baidu。Ctrl+C终止
也可以通过参数控制发包数
ping -c 4 baidu.com 发送4个包给baidu,发完终止

  • traceroute:可以看出每一次hop(心跳)花费的时间来查看网络终端或者延迟的地方。
  • host:DNS查询,通过域名和ip中的其中一个来获取另外一个。
  • whois:查看该站点的持有者
  • ifconfig:查看设备和网络情况
ifconfig [-a]  查看所有的网络接口
ifconfig [设备名,如en0] [down/up]:设备开关
ifconfig [设备名,如en0] hw ether [Mac地址] 修改MAC地址
ifconfig [设备名,如en0] add/del [IPv6地址] 给网卡添加/删除IPv6地址
ifconfig [设备名,如en0] [ip地址] 给设备配置IP地址
ifconfig [设备名,如en0] [ip地址] netmask [掩码] 给设备配置IP地址,加上子掩码
ifconfig [设备名,如en0] [ip地址] netmask [掩码] broadcast [广播地址] 给设备配置IP地址,加上掩码和广播地址
ifconfig [设备名,如en0] mtu [数字] 设置设备的最大传输单元[bytes]
ifconfig [设备] [arp/-arp] 启用/关闭 ARP协议
  • netstat:显示网络状态信息
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

-------
netstat -a 查看所有端口
netstat -at/au 查看所有tcp/udp端口

netstat -l 查看所有监听的端口
netstat -lt/lu/lx 查看所有监听的tcp/udp/unix端口
a
netstat -s 查看所有端口的统计信息
netstat -st/su 查看tcp/udp的端口的统计信息

netstat -r 查看核心路由信息

另外如
netstat -ap | grep ssh查找程序运行的端口s
netstat -an | grep ':8080'找出指定端口的进程

5、进程等系统管理

  • stat:显示指定文件详细信息

  • df:查看磁盘使用情况

  • du:查看目录或文件大小

  • who:显示登录了的用户

  • whoami:显示当前的用户

  • uname:显示系统信息

  • ps:显示当前进程

a 查看所有进程
c 显示程序真正的指令名词 
e显示每个程序的环境变量 
f显示程序间互相关系
u 以用户为主的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。

常用ps aux命令和grep文本查找命令通过管道过滤再操作
如:ps aux | grep tomcat
  • top:实时显示进程的动态
  • kill:杀进程
kill <pid>  最安全的kill命令,不杀死子进程
kill -l <pid> 杀死父进程的同时还尝试杀死子进程,但不一定尝试成功
killall <httpd>杀死同一个进程组的所有进程,后接进程名,非pid
kill -HUP <pid> 杀死进程并重启,常用于配置文件修改
kill -9 <pid>强制杀死进程,谨慎使用,可能会导致系统关闭

6、文件权限相关

  • chmod:更改文件的权限。
chmod [ugoa][[+-=][rwxX]...][,...]
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

如:chmod ugo+r file1.txt 所有人可读
chmod -R a+r * 将目前目录下的所有文件与子目录皆设为任何人可读取 

> 数字权限:  
1、一般三位数,第一位数表示文件拥有者的权限,第二位表示文件所在的group的成员的权限,第三位表示除此之外其他用户的权限。  
2、数字一般有7、5、4等。分解成二进制是111,101,100,也是三位数,位数和权限分别表示读、写、可执行权限。  
>>如:
chmod 755 file 文件所有者可读可写可执行,同一个group的用户可读可执行,其他用户可读可执行   
chmod 777 file 所有用户可读可写可执行权限   
另外:   
chmod 4755 file 具有root权限

如果你想对你的电脑具备完全的操控,翻身当主人的话,你会需要有一个root权限。但是Mac是没有默认的root账户的。如果没有root账户,登录的话会报错。

~$ su root

Password:
su: Sorry

所以,我们需要先创建一个root账户。

~$ sudo passwd root

Password:输入当前用户密码
Changing password for root.
New password:输入root密码
Retype new password:重复root密码

Mac命令

  • 显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true;
  • 隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false;

小技巧

  • date:显示当前时间
  • cal:显示日历 cal <month> <year>
  • bc:简单的计算机
  • shutdown -t :关机
shutdown -h now立刻关机
shutdown -h 17:00 下一个17:00关机
shutdown -h +10 十分钟后关机
shutdown -r now
立刻重启
shutdown -r +30 'The system will reboot' 三十分钟后系统重启,讯息给所有在线使用者
shutdown -k now 'This system will reboot'
发出警告,没什么用。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • 进入带空格的文件或者文件夹 Linux文件权限详解 文件和目录权限概述 在linux中的每一个文件或目录都包含有访...
    annkee阅读 2,473评论 0 4
  • 一、文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls...
    会飞的鱼Coo阅读 4,376评论 1 23
  • Ubuntu 常用命令大全 查看软件 xxx 安装内容 #dpkg -L xxx 查找软件 #apt-cache ...
    guiwuzhe阅读 2,451评论 0 14
  • 一、文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件)ls -a 列出当前目录文件(包括隐含文件)l...
    路痴千行阅读 2,325评论 0 5
  • Linux export shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使...
    滚石_c2a6阅读 497评论 0 0