MacOS Tips

版本不同,特性开启的方式会稍有不同。下面Tips更新时间也不相同,所以需要根据自己版本进行尝试,下面最新的更新版本是Monterey,12.0.1;

开启三指拖拽

System Preferences -> Accessibility -> Mouse & Trackpad -> Trackpad Options -> Enable dragging -> three finger drag

鼠标触控激活屏保并立即锁屏

System Preferences -> Desktop & Screen Saver -> Hot corners -> choose one corner and choose “Start Screen Saver”

解决windows10在fusion中分辨率的问题

  1. 在fusion的setting中启动Retina 显示,并开启自动调整
  2. 在win10中安装Vmware tools
  3. 在win10的Display中,选择高级scaling setting,打开“let windows try to fix apps ……”

Windows 10 激活码迁移

我要把原来的VM删掉,重新装一个全新的VM,并迁移原有的激活key。重新安装完后,可以发现激活失败,这是点击“troubleshooting”,然后选择“I changed hardware on this decixe rexcently”,进去后选择要迁移的主机。但注意,如果你是从淘宝买的序列号,那么他可能只能激活一次或几次,所以你会发现无法迁移。这时候只能再买一个了,反正也不贵不是么~

安装SecureCRT

非常好用的远程登录的软件,其实免费的软件有很多选择,如xshell,但由于我之前写的一些python脚本都是支持SecureCRT的,所以没法扔掉CRT,只能继续使用,其他免费的登录软件,脚本集成度都不是特别好

安装截屏软件Snagit

其实MacOS自带的截图快捷键也不错,只是截完图后没法编辑,如我从PPT或网页截了一张拓扑图,想在图上标记下流量,这时Snagit就来帮忙了,非常方便灵活的标记一些符号和信息

文本编辑软件BBedit

我感觉在MacOS中最优秀的文本编辑工具,没有之一!里面有很多非常棒的功能,如下:

  • 支持多文件查找,也可以指定文件夹下所有文件检索:Search -> Multi-File Search;
  • 通过关键字选中行,然后移除行,这样省的我自己用grep去过滤log了,这样可以减少很多时间:Text -> Process Lines Containing -> 选删除match的行,或copy等;
  • 对于结构性文档,如xml这种,可以通过“展开(Expand)” 和 “合并(Collapse)” 来打开特定结构内容,如果文档很大,如何全部展开、合并?或者展开特定层级?BBedit可以实现:View -> Expand All Folds,或者View -> Collapse Folds Below Level -> 1-X;

  • 有些设备show出来的log是倒序的,是否有方法可以翻转顺序(reverse order)?BBedit可以实现:先加序列,Text – Add/Remove Line Numbers;再对序列进行翻转:Text -> Sort Lines -> “Numbers match by value” + “Reverse sort” + “Sorted lines to clipboard”;最后用加序列的选项去掉序列;
  • 默认开启Live Search功能,这个Search很好用,不用单独开一个Search窗口,而是直接在文本中Search并高亮搜索的内容,但重启后需要重新打开,可以通过下面方式永久打开:
***@Yongs-MacBook-Pro ~ % defaults write com.barebones.bbedit Editor_AlwaysOpenQuickFind -bool YES
***@Yongs-MacBook-Pro ~ % 
  • 有时候用BBedit直接编辑Markdown,HTML或者xml,那么写完后我想预览下,有什么办法么?还需要其它工具才能完成渲染么?当然不用,最新的BBedit可以直接支持渲染,只要在”Markup“ -> “Preview in BBedit”即可,如下:
  • 更改了文章后保存了,是否可以找回之前的版本?用BBedit就可以找回并对比,在”Search“中找到下面选项:
  • 在开头和结尾插入相应的信息,可以通过 “Text -> Prefix/Suffix Lines…”来实现,如我需要在开头加上”“,结尾加上”\r”,“,就可以轻松实现:
  • 如果需要用通配符来过滤文章,可以直接进入“File -> New -> Pattern Playground”,在这里可以实时预览,点问号还可以看通配符说明,下面是把包括括号和里面内容都过滤出来“\(.+\)”,这样找对通配符后,在去search里,选择grep,或替换,或删除,可以随意操作!

文件共享

由于ftp不安全,所以mac默认移除了,你可以通过brew来安装,具体我就不在这里介绍了。macOS默认有文件共享,是通过SMB的,开启很简单 System Preferences -> Sharing -> File Sharing, 选好用户名就可以了 另外如果你需要ssh传文件,把remote login打开就可以了

安装Java JDK

系统默认是不带JDK的,所以需要手动安装,直接去Oracle官网下载就可以了,安装好后可以通过“”来验证验证,更具体的关于MacOS和JAVA,可以参考我之前总结的 Java Learning – Basic 01

MacOS中文文本乱码

这是由于从windows到mac后,编码不一致导致的乱码情况,你有时会发现换文本工具后可以恢复,但有时不行,那么怎么办?直接用“iconv”命令就可以永久解决了,如下GB2312指的是原文件编码,UTF-8是目的文件的编码。UTF-8是mac能够识别的编码

cd test iconv -c -f GB2312 -t UTF-8 [乱码文件名] >> [新文件名]

秘钥格式转换 PEM -> Pub

bash-3.2# ssh-keygen -e -f /Users/xxxxx/Library/Mobile\ Documents/com\~apple\~CloudDocs/xxxx.pem >> xxxx.pub
bash-3.2# 
bash-3.2# ls -l |grep pub
-rw-r--r--    1 xxxx  staff       512 May 31 09:42 aws-frank-test.pub

自定义自动化操作

在MacOS上,对于一些重复的操作,完全可以自定义自动化,下次直接自动化运行,就是“Automator”。可以理解成可视化的自动化编辑器,这里举一个例子:如 “某些应用不支持太大的图片,所以想方便的改下分辨率”

  1. 打开Automator,新建并选择 “Quick Action”(服务);
  2. 选择“Image Files” in “any application”;
  3. 选择Library中的“Photos”,然后选择“change type images”并拖拽到右边;
  4. 选择更改图像类型“JPEG”;
  5. 选择拷贝一份文件到指定目录,后面缩放的文件就是这份拷贝文件,缩放前的文件存在原始目录;
  6. 选择“scales images”并拖拽到右边,根据自己需求,选择像素调整后的大小,保存;
  7. 在需要调整的图片右键,选择服务,选择刚才存的自动化脚本,会按照预设值先把文件改成JPEG,复制一份到指定目录,然后在指定目录改备份文件的分辨率大小;

同时也可以参考网络上的文章,如:https://www.sohu.com/a/383174107_662745

2021-05.29 更新:创建点到点临时网络

也叫“ad-hoc network”,或者“WI-FI ACCESS POINT”

这种网络只是临时网络,而且不需要WIFI路由器,可以把电脑作为AP节点,这样其他客户端直接跟此台电脑建立连接。现在家家都有WIFI,此临时网络用处不大,但在某些场景下还是很有用处的:比如租房子,4G/5G足以应对普通上网需求,但想通过VR看电脑里的电影又必须要有WIFI AP,虽然AP不贵,但用的频率不高,买了感觉也是浪费,不是很有价值,此时临时网络就可以解决此问题:

QUEST2 —– “ad-hoc network” —– MacOS

那么如何创建呢?我的环境是macOS Big Sur v11.4,首先介绍一种不是非常好的解决方法,虽然可以使用,但有安全风险,也有限制;其次是推荐的方法,但需要手动创建一个换回地址;

开启点到点临时网络,无加密

要想开启此功能,需要先打开“legacy networks”:

这样点击wifi网络图标时,就会有“Create Network”选项,此时就可以创建了,但可惜的是,这种网络不能创建密码。经过Google后,也没发现解决方法,不知道苹果为什么不能加个密码功能,所以有些安全要求比较高的设备是无法连接的,另外这种不加密码的网络很不安全的,任何人都可以连入你的电脑

通过“Internet Sharing”达成需求

上面的方法不推荐,完全没有安全可言,想要加密,只能通过Internet Sharing打开AP功能,但这里必须指定一个激活的Internet接口,比如你的蓝牙接入点,或USB网口等。但我这个场景不存在这些,那怎么做的?直接建立一个永远激活的环回地址,选中这个“internet”即可,其实这个操作很像网络设备中的null0黑洞路由:-)

通过下面命令建立Lo0:

frank ~ % sudo networksetup -createnetworkservice Loopback lo0
frank ~ % sudo networksetup -setmanual Loopback 10.0.0.1 255.255.255.255

完成后,此端口在网络中是红色down的状态,不过没关系,直接进入“Sharing” -> “Internet Sharing” -> “Loopback” -> “Wi-Fi”-> “Wi-Fi Option”;输入相应的信息和密码即可开启AP功能!

同时可以参考网上的详细文章,如:在 Mac 上创建一个电脑对电脑网络CREATING A WI-FI ACCESS POINT ON OS X

2021-06.01 更新:重置网络设置

最近突然发现“Trojan-qt5”无法连接了,报socket5端口占用,查看gui log,如下告警:

ERROR [Connection] Can't bind socks5 port 51837: The address is not available
ERROR [Connection] Can't bind socks5 port 51837: The address is not available

经过Google后也没找到解决方法,所以卸了装,装了卸,仍然不行。。。怀疑是不是增加环回地址后,导致配置出现异常了?所以想重置下网络,查了一下,发现很容易:

直接进下面文件夹,除了“com.apple.Boot.plist”文件保留外,其他都删掉,然后重启就可以 🙂

/Library/Preferences/SystemConfiguration

2021-07.15 更新:查看端口占用并强行关闭

frank@MacBook ~ % sudo lsof -i :3389
Password:
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ssh     99901 frank    5u  IPv6 0xca21351211be7391      0t0  TCP localhost:ms-wbt-server (LISTEN)
ssh     99901 frank    6u  IPv4 0xca21351215f346f9      0t0  TCP localhost:ms-wbt-server (LISTEN)
ssh     99901 frank   10u  IPv4 0xca21351215f776f9      0t0  TCP localhost:ms-wbt-server->localhost:51510 (CLOSE_WAIT)
ssh     99901 frank   11u  IPv4 0xca213512155e9f99      0t0  TCP localhost:ms-wbt-server->localhost:51602 (CLOSE_WAIT)
ssh     99901 frank   12u  IPv6 0xca21351211be6071      0t0  TCP localhost:ms-wbt-server->localhost:51603 (CLOSE_WAIT)
frank@MacBook ~ % sudo kill -9 99901
frank@MacBook ~ % sudo lsof -i :3389
frank@MacBook ~ % 

2021-11.19 更新:去掉系统、软件更新的小红点

关掉系统自动更新后,仍然能看到小红点,可以通过下面方法直接关闭小红点(Monterey 12.0.1),但不是永久关闭:

Frank@Yongs-MacBook-Pro ~ % scutil --set ComputerName "Yong's MacBook Pro"
Frank@Yongs-MacBook-Pro ~ % defaults write com.apple.systempreferences AttentionPrefBundleIDs 0
Frank@Yongs-MacBook-Pro ~ % Killall Dock
Frank@Yongs-MacBook-Pro ~ % 

2021-12.7 更新:应用访问隐藏文件夹

我想让Wireshark访问我的私钥,用于远程抓包的登录证书认证,但私钥存放在默认的”/Users/xxx/.ssh“ 下,此目录是隐藏文件,要怎么在应用程序中选择呢?其实很简单,在选择私钥的界面下,直接输入快捷键”command + shift + G“,然后在输入框中输入”~/.ssh“回车,就可以进入此目录,然后选择相应文件~

2021-12.13 更新:制作启动盘

使用Apple M1 Pro的ARM电脑通过DD制作启动盘,不管是bs=1m还是默认不更改,U盘均不能引导,通过diskutil查看,看不出区别。。。暂时还不知道是不是跟ARM架构相关;

此方法适用任何iso系统文件,详细如下:

  • 使用 dd 将操作系统镜像写入 U 盘;
  • if=file” 代表要写入的源文件路径;
  • of=file” 代表要写入的目标文件,此处为代表 U 盘的设备 ID,可用rdisk4,也可以用disk4,网上说写入速度不同,推荐使用rdisk;
  • bs=n” 代表设置输入输出的块大小,n 代表字节数,默认为 512,可以使用 b/k/m/g 等字母后缀代表不同的单位;

注意:bs的设置可能会损坏引导分区,结果就是有的可以启动,有的不可以,具体看这篇文章:https://askubuntu.com/questions/895007/dd-command-for-creating-bootable-iso-does-not-boot

Frank@Yongs-MacBook-Pro ~ % diskutil list
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         500.3 GB   disk0
   1:             Apple_APFS_ISC ⁨⁩                        524.3 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk3⁩         494.4 GB   disk0s2
   3:        Apple_APFS_Recovery ⁨⁩                        5.4 GB     disk0s3

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +494.4 GB   disk3
                                 Physical Store disk0s2
   1:                APFS Volume ⁨Macintosh HD⁩            15.7 GB    disk3s1
   2:              APFS Snapshot ⁨com.apple.os.update-...⁩ 15.7 GB    disk3s1s1
   3:                APFS Volume ⁨Preboot⁩                 179.2 MB   disk3s2
   4:                APFS Volume ⁨Recovery⁩                851.1 MB   disk3s3
   5:                APFS Volume ⁨Data⁩                    108.1 GB   disk3s5
   6:                APFS Volume ⁨VM⁩                      1.1 GB     disk3s6

/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.7 GB    disk4
   1:                 DOS_FAT_32 ⁨DISK_IMG⁩                15.7 GB    disk4s1

Frank@Yongs-MacBook-Pro ~ % 
Frank@Yongs-MacBook-Pro ~ % 
Frank@Yongs-MacBook-Pro ~ % diskutil unmountDisk /dev/disk4
Unmount of all volumes on disk4 was successful
Frank@Yongs-MacBook-Pro ~ % 
Frank@Yongs-MacBook-Pro ~ % sudo dd if=/Users/Frank/Public/EVE-20171007.iso of=/dev/rdisk4 bs=1m
Password:

838+1 records in
838+1 records out
878960640 bytes transferred in 63.734784 secs (13790910 bytes/sec)
Frank@Yongs-MacBook-Pro ~ % 
Frank@Yongs-MacBook-Pro ~ % diskutil list /dev/disk4                                                         
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                                                   *15.7 GB    disk4
Frank@Yongs-MacBook-Pro ~ %               
Frank@Yongs-MacBook-Pro ~ % diskutil eject /dev/disk4
Disk /dev/disk4 ejected
Frank@Yongs-MacBook-Pro ~ % 

#再次插入u盘

Frank@Yongs-MacBook-Pro ~ % diskutil list /dev/disk4   
/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            EVE Install CD         *15.7 GB    disk4

同一台服务器,下面是可以引导启动的u盘信息:

% diskutil info /dev/disk4

Device Identifier:         disk4
Device Node:               /dev/disk4
Whole:                     Yes
Part of Whole:             disk4
Device / Media Name:       DataTraveler 3.0

Volume Name:               Not applicable (no file system)
Mounted:                   Not applicable (no file system)
File System:               None

Content (IOContent):       FDisk_partition_scheme
OS Can Be Installed:       No
Media Type:                Generic
Protocol:                  USB
SMART Status:              Not Supported

Disk Size:                 15.5 GB (15502147584 Bytes) (exactly 30277632 512-Byte-Units)
Device Block Size:         512 Bytes

Media OS Use Only:         No
Media Read-Only:           No
Volume Read-Only:          Not applicable (no file system)

Device Location:           External
Removable Media:           Removable
Media Removal:             Software-Activated

Solid State:               Info not available
Virtual:                   No

同一台服务器,下面是不可以引导启动的u盘信息:

% diskutil info /dev/disk4 
                               
Device Identifier:         disk4
Device Node:               /dev/disk4
Whole:                     Yes
Part of Whole:             disk4
Device / Media Name:       DataTraveler 3.0

Volume Name:               Not applicable (no file system)
Mounted:                   Not applicable (no file system)
File System:               None

Content (IOContent):       None
OS Can Be Installed:       No
Media Type:                Generic
Protocol:                  USB
SMART Status:              Not Supported

Disk Size:                 15.5 GB (15502147584 Bytes) (exactly 30277632 512-Byte-Units)
Device Block Size:         512 Bytes

Media OS Use Only:         No
Media Read-Only:           No
Volume Read-Only:          Not applicable (no file system)

Device Location:           External
Removable Media:           Removable
Media Removal:             Software-Activated

Solid State:               Info not available
Virtual:                   No

2021-12.15 更新:使用Caddy制作一个简单的HttpServer

用Python命令可以起一个简单的HTTP Server,不管是Python2还是Python3(可以看右边栏的”USEFUL TOOTS“),但此方法只支持单线程,有的程序调用HTTP Server时单线程无法工作;所以需要一个简单并且支持多线程的工具,Caddy是一个很不错的选择。

对于如何使用Caddy,网上充斥了很多文档,但很可惜,版本迭代后,很多方法都无法使用了;经过尝试后,还是官网最靠谱:https://caddyserver.com/docs/getting-started

另外是直接在MacOS上使用Caddy还是通过Docker使用?开始觉得Docker方便,但光Docker Engine就需要占用1.5g-2g左右的内存,反关直接使用,只需要20m内存!为了临时使用HTTP Server,还是直接使用Caddy来的靠谱,可以直接去这里下载:https://caddyserver.com/download

下载后可以直接使用,建议把文件改名为caddy并mv到”/usr/local/bin/“下,这样在任何目录都可以执行了;通过caddy help查看帮助信息:

Frank@Yongs-MacBook-Pro ~ % caddy version
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=
Frank@Yongs-MacBook-Pro ~ % caddy help
Caddy is an extensible server platform.

usage:
  caddy <command> [<args...>]

commands:
  adapt           Adapts a configuration to Caddy's native JSON
  add-package     Adds Caddy packages (EXPERIMENTAL)
  build-info      Prints information about this build
  environ         Prints the environment
  file-server     Spins up a production-ready file server
  fmt             Formats a Caddyfile
  hash-password   Hashes a password and writes base64
  help            Shows help for a Caddy subcommand
  list-modules    Lists the installed Caddy modules
  reload          Changes the config of the running Caddy instance
  remove-package  Removes Caddy packages (EXPERIMENTAL)
  reverse-proxy   A quick and production-ready reverse proxy
  run             Starts the Caddy process and blocks indefinitely
  start           Starts the Caddy process in the background and then returns
  stop            Gracefully stops a started Caddy process
  trust           Installs a CA certificate into local trust stores
  untrust         Untrusts a locally-trusted CA certificate
  upgrade         Upgrade Caddy (EXPERIMENTAL)
  validate        Tests whether a configuration file is valid
  version         Prints the version

Use 'caddy help <command>' for more information about a command.

Full documentation is available at:
https://caddyserver.com/docs/command-line
Frank@Yongs-MacBook-Pro ~ % 

配置写在Caddyfile中,如下是简单的文件服务器,注意要把http写全,如果只是写一个IP地址+端口号,caddy为了安全,会默认把http转成https,并确认证书,如果不想使用证书,直接写全(带上http或https)或全局关闭https重定向,具体看官网文档:

Frank@Yongs-MacBook-Pro ~ % more Caddyfile 
http://10.103.63.129:8080
log
root * /Users/Frank/Downloads/*
file_server browse

如果你执行caddy的目录就是Caddyfile的目录,那么直接”caddy run &“即可,caddy会自动加载Caddyfile,如果不在一个目录,可以执行下面命令,另外如果不设置root目录,那么默认是home目录:

Frank@Yongs-MacBook-Pro ~ % caddy run --config ~/Desktop/Caddyfile
2021/12/15 07:38:29.222	INFO	using provided configuration	{"config_file": "/Users/Frank/Desktop/Caddyfile", "config_adapter": ""}
2021/12/15 07:38:29.225	INFO	admin	admin endpoint started	{"address": "tcp/localhost:2019", "enforce_origin": false, "origins": ["[::1]:2019", "127.0.0.1:2019", "localhost:2019"]}
2021/12/15 07:38:29.225	INFO	tls.cache.maintenance	started background certificate maintenance	{"cache": "0x14000172770"}
2021/12/15 07:38:29.225	INFO	tls	cleaning storage unit	{"description": "FileStorage:/Users/Frank/Library/Application Support/Caddy"}
2021/12/15 07:38:29.225	INFO	autosaved config (load with --resume flag)	{"file": "/Users/Frank/Library/Application Support/Caddy/autosave.json"}
2021/12/15 07:38:29.225	INFO	serving initial configuration
2021/12/15 07:38:29.225	INFO	tls	finished cleaning storage units
2021/12/15 07:46:50.399 INFO http.log.access handled request {"request": {"remote_addr": "10.103.63.129:61084", "proto": "HTTP/1.1", "method": "GET", "host": "10.103.63.129:8080", "uri": "/", "headers": {"Connection": ["keep-alive"], "Upgrade-Insecure-Requests": ["1"], "Accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"], "User-Agent": ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15"], "Accept-Language": ["en-US,en;q=0.9"], "Accept-Encoding": ["gzip, deflate"]}}, "common_log": "10.103.63.129 - - [15/Dec/2021:15:46:50 +0800] \"GET / HTTP/1.1\" 200 23725", "user_id": "", "duration": 0.007780625, "size": 23725, "status": 200, "resp_headers": {"Content-Type": ["text/html; charset=utf-8"], "Server": ["Caddy"]}}

Frank@Yongs-MacBook-Pro ~ % more /Users/Frank/Library/Application\ Support/Caddy/autosave.json 
{"apps":{"http":{"servers":{"srv0":{"automatic_https":{"skip":["10.103.63.129"]},"listen":[":8080"],"logs":{},"routes":[{"handle":[{"handler":"subroute","routes":[{"handle":[{"handler":"file_server","hide":["/Users/Frank/Desktop/Caddyfile"]}],"match":[{"path":["/Users/Frank/Downloads/*"]}]},{"handle":[{"browse":{},"handler":"file_server","hide":["/Users/Frank/Desktop/Caddyfile"]}]}]}],"match":[{"host":["10.103.63.129"]}],"terminal":true}]}}}}}
Frank@Yongs-MacBook-Pro ~ %

2022-01.07 更新:M1安装Homebrew并使用国内源

网上资料太杂,重装系统后要安装brew需要反复网上找教程,太麻烦,索性就把这个非常好用的教程放到Blog中,方便后面查阅:https://brew.idayer.com/guide/m1/

2022-01.07 更新:Tree命令

macOS没有tree命令,可以通过下面两种方法支持:

  • 用brew 安装tree命令,推荐安装;
  • 直接用find替代tree命令,把下面命令写成别名放到~/.bash_profile里,不过不是很推荐,这个没法像真正tree命令那样分级显示:
xxx@Yongs-MacBook-Pro ~ % more .bash_profile |grep tree
alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"
xxx@Yongs-MacBook-Pro file % tree
.
|____.DS_Store
|____nbping
| |____nbping
| |____nbping.go
|____welcom
| |____first
| |____first.go

2022-01.07 更新:Ping add Timestamp of Millisecond

Linux可以直接执行下面命令:

[root@frank ~]# ping -i 0.5 -c 600 baidu.com | while read pong; do echo "$(date +"%T.%3N"): $pong"; done
04:43:50.003: PING baidu.com (220.181.38.148) 56(84) bytes of data.
04:43:50.004: 64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=49 time=177 ms
04:43:50.325: 64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=49 time=177 ms
04:43:50.826: 64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=49 time=178 ms
04:43:51.327: 64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=49 time=178 ms
04:43:51.827: 64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=5 ttl=49 time=178 ms
^C
[root@frank ~]# 

macOS默认的date不支持毫秒,所以需要安装coreutilis,然后用gdate就可以了:

xxx@Yongs-MacBook-Pro ~ % brew install coreutils
xxx@Yongs-MacBook-Pro ~ % ping -i 0.5 -c 600 baidu.com | while read pong; do echo "$(gdate +"%T.%3N"): $pong"; done
17:46:10.039: PING baidu.com (220.181.38.251): 56 data bytes
17:46:10.044: 64 bytes from 220.181.38.251: icmp_seq=0 ttl=50 time=30.810 ms
17:46:10.539: 64 bytes from 220.181.38.251: icmp_seq=1 ttl=50 time=29.204 ms
17:46:11.050: 64 bytes from 220.181.38.251: icmp_seq=2 ttl=50 time=29.633 ms
17:46:11.554: 64 bytes from 220.181.38.251: icmp_seq=3 ttl=50 time=29.872 ms
17:46:12.058: 64 bytes from 220.181.38.251: icmp_seq=4 ttl=50 time=29.769 ms
^C17:46:12.413: 
17:46:12.417: --- baidu.com ping statistics ---
17:46:12.421: 5 packets transmitted, 5 packets received, 0.0% packet loss
17:46:12.424: round-trip min/avg/max/stddev = 29.204/29.858/30.810/0.528 ms
本文出自 Frank's Blog

版权声明:


本文链接:MacOS Tips
版权声明:本文为原创文章,仅代表个人观点,版权归 Frank Zhao 所有,转载时请注明本文出处及文章链接
你可以留言,或者trackback 从你的网站

留言哦

blonde teen swallows load.xxx videos