欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mac常用命令

程序员文章站 2022-05-15 13:45:46
...

Mac的操作系统是基于Unix深度定制的。
  mac os内部是基于freebsd的结构与gnu/linux存在差异
  mac os与 linux分数属不同的发行版本
  很多常用命令大同小异,但又不能保证100%兼容。各种不同发行版本有自己特有的命令。
  所以linux里的命令是一个很模糊的概念,Unix和Linux都有一个Shell的概念,比是基于如bash,ksh之类的,这些shell都有一套内建命令,如果两个操作系统用同一种shell,那么就有了很大的共同语言。

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

 

相关标签: Mac 常用指令