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   最安全的kill命令,不杀死子进程
kill -l  杀死父进程的同时还尝试杀死子进程,但不一定尝试成功
killall 杀死同一个进程组的所有进程,后接进程名,非pid
kill -HUP  杀死进程并重启,常用于配置文件修改
kill -9 强制杀死进程,谨慎使用,可能会导致系统关闭

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
  • 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'
发出警告,没什么用。

你可能感兴趣的:(Mac常用命令(大部分和Linux相同))