Marco Nie - 2020年7月 https://blog.niekun.net/2020/07/ you are the company you keep... xattr 命令清除 app 的隔离属性 https://blog.niekun.net/archives/1680.html 2020-07-21T12:37:00+08:00 macOS 中如果安装一些修改版或破解版软件,通过拖拽方式放到 application 目录,在打开 app 的时候可能提示程序无法运行,通常我们在系统 preference - security 里可以手动允许运行,但是有时候使用这种方法也无法打开,这是由于系统识别到这个 app 可能有问题所以给它加上了 com.apple.quarantine 隔离属性阻止了他的运行。如果我们需要运行它,就需要删除 app 的 com.apple.quarantine 属性,可以使用 xattr 来处理。macOS 上的文件不只有 "normal" 属性,也有 "读", "写", "执行" 等其他属性。常规属性可以用 ls -l myfile 命令来查看。除此之外还可以定义扩展属性,扩展属性的修改可以用 xattr 来处理。命令语法如下:xattr [options] attributes [files] 可用 option: -c CLear all Atrributes. -d Delete the given attribute. -h Help. -l By default, the first two command forms either display just the attribute names or values, respectively. The -l option causes both the attribute names and corresponding values to be displayed. For hex display of values, the output is preceeded with the hex offset values and followed by ASCII display, enclosed by '|'. -p Print the value associated with the given attribute. -r If a file argument is a directory, act as if the entire contents of the directory recursively were also specified (so that every file in the directory tree is acted upon). -s If a file argument is a symbolic link, act on the symbolic link itself, rather than the file that the symbolic link points at. -v Force the the file name to be displayed, even for a single file. -w Write a given attribute name with a value. -x Force the attribute value to be displayed in the hexadecimal representation. 显示一个文件的存在的扩展属性:xattr myfile 显示一个文件的存在的扩展属性及这个属性的值:xattr -l myfile 给一个文件添加 com.example.color 属性:xattr -w com.example.color myfile 清除一个文件的 com.example.color 属性:xattr -d com.example.color myfile 清除一个文件夹内所有文件的 com.example.color 属性:xattr -d -r com.example.color mydir 清除一个文件的所有扩展属性:xattr -c myfile 对于被屏蔽的 app 需要清除com.apple.quarantine 这一属性,处理过程如下:首先查看 app 的现有属性:xattr /path/to/MyApp.app 如果返回的结果有 com.apple.quarantine 属性则执行下面命令删除:sudo xattr -r -d com.apple.quarantine /path/to/MyApp.app 执行后就可以正常打开 app 了。 cinema 4D 快捷键 https://blog.niekun.net/archives/1677.html 2020-07-20T09:03:00+08:00 1视角移动2视野放大/缩小3视角旋转 Eobject 移动Robject 旋转Tobject 放大/缩小 object 编辑 U线段功能菜单U + L选择闭合曲线U + U取消区域曲线选择M块功能菜单M + T块生成工具 Q隐藏 subdivision surface alt + R区域渲染 Linux 下使用 OptiPNG 压缩图片 https://blog.niekun.net/archives/1666.html 2020-07-14T17:25:00+08:00 最近越来也发现自己的博客加载图片变慢了,由于我很多教程是教 PS 的,会使用到很多图片和截图,所以影响尤其明显。每张图片小则 400Kb 大则 2-3Mb,对于网络浏览不太友好。可以直接在服务器上进行图片压缩,用到的工具是 OptiPNG。OptiPNG home page:http://optipng.sourceforge.net/编译安装我选择从源码编译安装,这样可以直接使用最新版本。如何从源码编译程序可以参考我的文章:https://blog.niekun.net/archives/883.html首先从官网下载源码到 vps 并解压:cd /tmp wget http://prdownloads.sourceforge.net/optipng/optipng-0.7.7.tar.gz tar xvf optipng-0.7.7.tar.gz 新建安装路径:mkdir /opt/optipng-0.7.7 ln -s /opt/optipng-0.7.7 /opt/optipng configure & make:cd /tmp/optipng-0.7.7 ./configure --prefix=/opt/optipng-0.7.7 make make install 测试是否可以执行:/opt/optipng/bin/optipng 创建系统链接:ln -s /opt/optipng/bin/optipng /usr/local/bin/optipng 使用可以使用命令查看处理前处理后的图片体积:ls -lh a.png 压缩一张 png 图片:optipng a.png 压缩目录下的所有 png 图片:optipng *.png 可以自定义压缩等级:Optimization levels: -o0 <=> -o1 -nx -nz (0 or 1 trials) -o1 <=> -zc9 -zm8 -zs0 -f0 (1 trial) (or...) -zc9 -zm8 -zs1 -f5 (1 trial) -o2 <=> -zc9 -zm8 -zs0-3 -f0,5 (8 trials) -o3 <=> -zc9 -zm8-9 -zs0-3 -f0,5 (16 trials) -o4 <=> -zc9 -zm8 -zs0-3 -f0-5 (24 trials) -o5 <=> -zc9 -zm8-9 -zs0-3 -f0-5 (48 trials) -o6 <=> -zc1-9 -zm8 -zs0-3 -f0-5 (120 trials) -o7 <=> -zc1-9 -zm8-9 -zs0-3 -f0-5 (240 trials) -o7 -zm1-9 <=> -zc1-9 -zm1-9 -zs0-3 -f0-5 (1080 trials) Notes: The combination for -o1 is chosen heuristically. Exhaustive combinations such as "-o7 -zm1-9" are not generally recommended. Examples: optipng file.png (default speed) optipng -o5 file.png (slow) optipng -o7 file.png (very slow) 快速给黑白照上色 in Photoshop https://blog.niekun.net/archives/1653.html 2020-07-14T14:37:09+08:00 如果你需要给黑白照片添加颜色,这个教程可以帮助你快速完成。它通过把照片上传到一个免费的网站来自动给照片上色,然后再 Photoshop 中对自动处理不完美的地方进行精细调整最终得到满意的效果。免费上色网站地址为:https://imagecolorizer.com/我们首先测试人像:将图片上传到网站,等待自动处理完成后下载到本地:自动处理结果如下,可以看到基本比较完善,但是细节处有一些偏色,色条和漏掉颜色的地方:下面我们进入 Photoshop 进行处理,将原图和处理后的图片导入,将处理后的图层模式设置为 color,我们只用处理后的色彩信息:首先处理皮肤表面的不规则色条,选择 filter - blur - furface blur,放大可以看到表面的色条:调整 radius 和 threshold 使表面颜色平滑:然后我们处理脖子部分的颜色丢失:新建图层,混合模式改为 color,拾取附近色彩正常区域的颜色,快捷键 I:使用画笔工具涂抹需要重新上色的区域:面部饱和度过高,新建 hue 图层降低面部饱和度,配合蒙版操作:最终效果如下: 关于构图 https://blog.niekun.net/archives/1652.html 2020-07-13T17:18:00+08:00 https://www.youtube.com/watch?v=N-HyTRGtdSA 使用 graduated filter 处理特定颜色的区域 in lightroom https://blog.niekun.net/archives/1643.html 2020-07-13T16:55:31+08:00 在 lightroom 中想要改变一个颜色的色相,最简单的方法就是在 hue panel 来处理:通过移动某个颜色的滑块来改变这一颜色的色相,或者点击左上方的按钮,然后在图片中拖动来直接修改当前区域的色相。同理也可以修改饱和度和亮度。这里介绍另一种通过 graduated filter 工具来处理,控制自由度更大,可以设定颜色影响的范围,也可以调节修改部分的亮度清晰度等信息。develop 里,最上方找到方形的工具就是 graduated filter:它可以用直线将图片分割成两部分,一侧为保护区域一侧为修改区域,中间为过度区域。常用来单独处理天空和地面的亮度等。快捷键 O 查看修改区域的范围,红色部分为影响区域:这里我们实验修改下方树木的颜色。在下方找到 range mask,切换到 color,这就代表在当前选区下再次匹配特定颜色缩小范围:点击左侧吸管,在图片内找到树木区域通过点击或者拖拽来选取颜色:拾取颜色后调节 amount 来控制选区范围,如果看不到选区范围,按快捷键 O:选区范围完成后,按 O 取消选区显示,调节上方 hue 滑块修改颜色,点击下方的 use fine adjustment 可以精细调节色相:和其他 filter 一样,可以调节白平衡,亮度,对比度等各种参数来精细控制区域的效果:以上就是通过使用 graduated filter 处理特定颜色的区域的过程。 MacBook Pro 2015 升级 SSD https://blog.niekun.net/archives/1640.html 2020-07-13T14:15:00+08:00 最近升级了我的 2015 款 MacBook Pro 13,期间遇到一些问题,这里做一些流水记录:使用 time machine 备份系统拆掉背壳断开电源接口拆掉硬盘螺丝,拿下原装硬盘先在电脑上安装好转接模块插上新 SSD,上好螺丝接上电源按住 cmd option R + 电源键进入恢复系统工具连上 WiFi 等待网络下载工具包,大概 2Gb进入 disk utility 硬盘工具格式化新 SSD,格式 apfs,分区表 guid连上 time machine 硬盘,进入恢复工具恢复系统到新 SSD关于安装新 SSD 后待机耗电增加参考:https://blog.niekun.net/archives/1622.html Windows 10 无法同步设置 https://blog.niekun.net/archives/1632.html 2020-07-08T17:17:00+08:00 最近发现设置里的同步设置选项无法启用,虽然我只有这一台 Windows 电脑,但是无法打开这一功能还是让我有点别扭。经过多方搜索终于发现问题了,原来是我添加了另一个账户用来使用 office 365 导致的。在 sync your settings 里发现 sync settings 按钮是灰色的,然后上方有提示信息:sync is not available for your account, contact your system administrator to solve this.在Email & account 里可以看到我还添加了另一个 work or school account,如果添加了这个账户就会引起无法启动 sync。在 access work or school 里点击对应账户,点击 disconnect 即可退出这个账户:退出后重启系统,查看 sync 功能已经可以启用了。这样处理后就无法使用 work account 来激活 office 365 了,有点儿得不偿失。所以我在知道原因后就再次添加回来账户了。 macOS 使用终端命令设置系统代理 https://blog.niekun.net/archives/1629.html 2020-07-07T23:38:00+08:00 在平时使用中,我一般是在浏览器内设置代理服务器,还有就是终端设置了代理切换脚本来实现快速切换,系统默认没有代理。关于 macOS/Windows 下设置终端代理可以参考我之前的文章:https://blog.niekun.net/archives/97.html如果想要设置系统级的代理,需要在 system preference - network - proxies 里设置,常用的需要设置 http/https/socks 代理,基本覆盖大多数应用的流量了:但是每次需要让其他应用走代理时都要进入系统设置项里打开代理开关很麻烦,可以通过设置 terminal 命令来实现快速切换。networksetup这里需要使用的命令是 networksetup,它可以查看及设置系统网络配置。man page:https://www.unix.com/man-page/osx/8/networksetup/查看设备可用的网络服务:marconie@marco-mbp ~ % networksetup -listallnetworkservices An asterisk (*) denotes that a network service is disabled. Apple USB Ethernet Hub iPhone USB Wi-Fi Bluetooth PAN Thunderbolt Bridge可以看到设备支持的有线和无线网络服务,后续设置中需要使用对应的服务名。查看各个网络服务的端口名:marconie@marco-mbp ~ % networksetup -listallhardwareports Hardware Port: Wi-Fi Device: en0 Ethernet Address: a0:99:9b:04:a6:9d Hardware Port: Bluetooth PAN Device: en3 Ethernet Address: a0:99:9b:04:a6:9e Hardware Port: Thunderbolt 1 Device: en1 Ethernet Address: 82:13:07:10:b9:80 Hardware Port: Thunderbolt 2 Device: en2 Ethernet Address: 82:13:07:10:b9:81 Hardware Port: Thunderbolt Bridge Device: bridge0 Ethernet Address: 82:13:07:10:b9:80 VLAN Configurations ===================在后续的设置中会用到 device 名称,可以用以上命令来查询。查看某个网络服务的信息:marconie@marco-mbp ~ % networksetup -getinfo Wi-Fi DHCP Configuration IP address: 192.168.123.25 Subnet mask: 255.255.255.0 Router: 192.168.123.1 Client ID: IPv6: Automatic IPv6 IP address: none IPv6 Router: none Wi-Fi ID: a0:99:9b:04:a6:9d查看系统记录的可连接的无线信号,可以使用命令来查看,需要用到上面得到的 device name:marconie@marco-mbp ~ % networksetup -listpreferredwirelessnetworks en0 Preferred networks on en0: zhang_4lou Phicomm_A196D8 TP-LINK_27BB MERCURY_F610 iPhone (MISS) Marco Nie’s 8 Office_Diagnosis查看当前连接的无线接入点名称:marconie@marco-mbp ~ % networksetup -getairportnetwork en0 Current Wi-Fi Network: My2.4G关闭无线连接:networksetup -setairportpower en0 off 打开无线连接:networksetup -setairportpower en0 on 查询当前无线连接是否打开状态:marconie@marco-mbp ~ % networksetup -getairportpower en0 Wi-Fi Power (en0): On 设置系统 http 代理:networksetup -setwebproxy networkservices address port 设置系统 https 代理:networksetup -setsecurewebproxy networkservices address port 设置系统 socks 代理:networksetup -setsocksfirewallproxy networkservices address port 打开/关闭系统代理:networksetup [-setwebproxystate | -setsecurewebproxystate | -setsocksfirewallproxystate] networkservices [on | off] 应用上面介绍的常用的 networksetup 命令,下面介绍具体如何设置系统代理。这里以 Wi-Fi 网络服务举例。我的 http 代理地址为:127.0.0.1:1082,socks 代理地址为:127.0.0.1:1080。首先设置代理地址:networksetup -setwebproxy Wi-Fi 127.0.0.1 1082 networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 1082 networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 1080以上设置只需要设置一次,以后使用只需要执行打开/关闭代理操作即可。打开系统代理:networksetup -setwebproxystate Wi-Fi on networksetup -setsecurewebproxystate Wi-Fi on networksetup -setsocksfirewallproxystate Wi-Fi on关闭系统代理:networksetup -setwebproxystate Wi-Fi off networksetup -setsecurewebproxystate Wi-Fi off networksetup -setsocksfirewallproxystate Wi-Fi off可以在终端执行上述命令,然后打开系统代理设置界面验证是否设置成功。设置 alias 快捷命令如果需要频繁的打开/关闭代理,每次都需要输入以上命令比较麻烦,比较好的方法是设置 alias。关于 alias 我在macOS/Linux/windows设置终端 proxy 代理里有详细介绍。编辑 ~/.bash_frofile 添加如下并保存文件:alias pset='networksetup -setwebproxy Wi-Fi 127.0.0.1 1082 && networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 1082 && networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 1080' alias psystem='networksetup -setwebproxystate Wi-Fi on && networksetup -setsecurewebproxystate Wi-Fi on && networksetup -setsocksfirewallproxystate Wi-Fi on' alias upsystem='networksetup -setwebproxystate Wi-Fi off && networksetup -setsecurewebproxystate Wi-Fi off && networksetup -setsocksfirewallproxystate Wi-Fi off'更新缓存,macOS 终端使用的是 zsh,所有要先在 ~/.zshrc 里添加一句 source ~/.bash_profile,具体查看我上面提到的文章:source ~/.zshrc 设置完成后,执行 pset 设置代理地址,执行 psystem 打开系统代理,执行 upsystem 关闭系统代理。参考连接:http://support.moonpoint.com/os/os-x/networksetup-wifi.phphttps://superuser.com/questions/316502/how-to-change-proxy-setting-using-command-line-in-mac-os macOS 电源管理修复 MacBook 休眠耗电大问题 https://blog.niekun.net/archives/1622.html 2020-07-07T10:16:00+08:00 20-07-12 update:经过上周几天的观察和这个周末两天休眠的情况,发现一晚上休眠耗电基本2%左右,但是连续休眠两天发现跑了50%电量,今天下午来通过 pmset -g log | grep Wake 查看日志,发现一些情况:2020-07-10 17:15:08 +0800 Wake Requests [*process=powerd request=AdaptiveWake deltaSecs=50391 wakeAt=2020-07-11 07:14:59] [process=powerd request=UserWake deltaSecs=150292 wakeAt=2020-07-12 11:00:00 info="com.apple.alarm.user-visible-com.apple.remindd.time-alarm,315"] ... 2020-07-12 11:00:02 +0800 Assertions PID 127(powerd) Created UserIsActive "com.apple.powermanagement.wakeschedule" 00:00:00 id:0x0x900008234 [System: DeclUser IntPrevDisp kDisp] ...发现一些和 reminder 和 schedule 有关的唤醒日志。执行 pmset -g sched 的确有很多 remainder 的计划任务:marconie@marco-mbp ~ % pmset -g sched Scheduled power events: [0] wake at 07/13/20 08:01:56 by 'com.apple.alarm.user-visible-Weekly Usage Report' [1] wake at 07/17/20 20:00:00 by 'com.apple.alarm.user-visible-com.apple.remindd.time-alarm' User visible: true [2] wake at 07/19/20 21:00:00 by 'com.apple.alarm.user-visible-com.apple.remindd.time-alarm' User visible: true [3] wake at 07/19/20 21:00:00 by 'com.apple.alarm.user-visible-com.apple.remindd.time-alarm' User visible: true这些可能跟我在 remainder 设定的一些事项有关吧,经过查询,网上人也发现这个问题:eminders app waking mac from sleep,貌似目前没有好的解决方法。最近升级了我的 macbook pro 2015 的 ssd,买了一块第三方的 nvme 512G 硬盘。更换很顺利,使用 time machine 还原系统后就跟什么都没发生一样。但是随着这几天的使用,发现待机耗电巨大,一晚上合盖耗电 20% 左右。查看 activity monitor 也没发现什么耗电量大的后台服务。发现可能是合盖后依然没有进入休眠,一直有什么东西在运转有关。回想我在安装好新硬盘进入系统后,修改了些什么设置,好像就是打开了 find my mac,可能就是休眠后一直存在网络活动有关吧。macOS 上可以在设置里对接上电源和使用电池的情况下系统休眠进行单独设置。但是里面的设置项比较少,在使用电池的界面上已经把 休眠后进行网络活动的选项关掉了。想要进行更加详细的设置可以使用命令 pmset 处理。pmset 是 macOS 上的电源管理工具,它可以查看,修改系统休眠及唤醒的相关设置。pmsetpmset 命令必须在 root 权限下执行。电源管理参数设置sudo pmset [−a | −b | −c | −u] [setting value] [...] pmset 可以对不同电源状态下进行独立设置。-a(all, default) 代表对所有供电情况下统一设置,也是默认的选项-b(battery) 电池供电情况下的设置参数-c(charger) 修改连接上外接电源情况下的设置参数-u(UPS) 连接上 ups 情况下的设置参数例如,在电池供电情况下,无操作5分钟后屏幕休眠:sudo pmset -b displaysleep 5 常用的参数有:displaysleep – display sleep timer in minutes, 0 to disable display sleepdisksleep – disk spin-down timer in minutes, 0 to disable disk sleepsleep – system sleep timer in minutes, 0 to disable sleephibernatemode - change hibernation mode, 0 for RAM powered while sleeping; 1 for RAM contents written to disk and system totally unpowered; 3 for RAM both powered and written to disk; 5 is the same as mode 1, but for use with secure virtual memory; 7 is the same as mode 3, but for use with secure virtual memory; 25 for hibernation in Mac OS X 10.7, with RAM contents written to disk and system totally unpoweredautorestart - automatic restart after loss of power, 1 to enable or 0 to disabletcpkeepalive - keep network process when sleep, 1 to enable or 0 to disable计划任务的设置sudo pmset [repeat, schedule] [sleep, wake, poweron, shutdown, wakeorpoweron] [<MTWRFSU> <date/time>] pmset 可以设置计划任务,来根据日期来将设备休眠或唤醒。例如,每天晚上 23:59 自动关机,每天早上 7:00 自动唤醒或开机:sudo pmset repeat shutdown MTWRFSU 23:59:00 wakeorpoweron MTWRFSU 7:00:00 type; one of sleep, wake, poweron, shutdown or wakeorpowerondate and time (schedule only); in the format "MM/dd/yy HH:mm:ss"; must be in 24-hour format, must be in quotestime (repeat only); in the format HH:mm:ss; must be in 24 format, but does not have to be in quotesweekdays; a subset of MTWRFSU such as M or MTWRF are valid, as are strings weekdays, weekends, and everydayowner; a string describing the person or program who is scheduling the power event (optional)查看电源信息sudo pmset −g [option] 当我们想要知道当前系统进行了那些设置,我们可以使用 -g 参数来查看。查看当前状况下的电源参数设置:sudo pmset -g 查看所有电源情况下的参数设置:sudo pmset -g custom 查看计划任务的设置:sudo pmset -g sched 查看历史日志:sudo pmset -g log 日志的查看一般可以配合 grep 来过滤有用的信息,例如想要查看那些进程唤醒了设备可以使用:sudo pmset -g log | grep Wake 修复电源问题首先查看我的电池供电情况下的参数设置:sudo pmset -g custom 在 Battery Power 列表里可以找到 tcpkeepalive 当前的设置为 1。根据我的情况,我修改了电池供电情况下的 tcpkeepalive 为 0,问题就解决了:sudo pmset -b tcpkeepalive 0 执行命令后,会提示关闭这个参数会导致 find my mac 等功能失效。man pmsetPMSET(1) BSD General Commands Manual PMSET(1) NAME pmset -- manipulate power management settings SYNOPSIS pmset [-a | -b | -c | -u] [setting value] [...] pmset -u [haltlevel percent] [haltafter minutes] [haltremain minutes] pmset -g [option] pmset schedule [cancel | cancelall] type date+time [owner] pmset repeat cancel pmset repeat type weekdays time pmset relative [wake | poweron] seconds pmset [touch | sleepnow | displaysleepnow | boot] DESCRIPTION pmset manages power management settings such as idle sleep timing, wake on administrative access, automatic restart on power loss, etc. Note that processes may dynamically override these power management set- tings by using I/O Kit power assertions. Whenever processes override any system power settings, pmset will list those processes and their power assertions in -g and -g assertions. See caffeinate(8). SETTING pmset can modify the values of any of the power management settings defined below. You may specify one or more setting & value pairs on the command-line invocation of pmset. The -a, -b, -c, -u flags determine whether the settings apply to battery ( -b ), charger (wall power) ( -c ), UPS ( -u ) or all ( -a ). Use a minutes argument of 0 to set the idle time to never for sleep disksleep and displaysleep pmset must be run as root in order to modify any settings. SETTINGS displaysleep - display sleep timer; replaces 'dim' argument in 10.4 (value in minutes, or 0 to disable) disksleep - disk spindown timer; replaces 'spindown' argument in 10.4 (value in minutes, or 0 to disable) sleep - system sleep timer (value in minutes, or 0 to disable) womp - wake on ethernet magic packet (value = 0/1). Same as "Wake for network access" in the Energy Saver preferences. ring - wake on modem ring (value = 0/1) powernap - enable/disable Power Nap on supported machines (value = 0/1) proximitywake - On supported systems, this option controls system wake from sleep based on proximity of devices using same iCloud id. (value = 0/1) autorestart - automatic restart on power loss (value = 0/1) lidwake - wake the machine when the laptop lid (or clamshell) is opened (value = 0/1) acwake - wake the machine when power source (AC/battery) is changed (value = 0/1) lessbright - slightly turn down display brightness when switching to this power source (value = 0/1) halfdim - display sleep will use an intermediate half-brightness state between full brightness and fully off (value = 0/1) sms - use Sudden Motion Sensor to park disk heads on sudden changes in G force (value = 0/1) hibernatemode - change hibernation mode. Please use caution. (value = integer) hibernatefile - change hibernation image file location. Image may only be located on the root volume. Please use caution. (value = path) ttyskeepawake - prevent idle system sleep when any tty (e.g. remote login session) is 'active'. A tty is 'inactive' only when its idle time exceeds the system sleep timer. (value = 0/1) networkoversleep - this setting affects how OS X networking presents shared network services during system sleep. This setting is not used by all platforms; changing its value is unsupported. destroyfvkeyonstandby - Destroy File Vault Key when going to standby mode. By default File vault keys are retained even when system goes to standby. If the keys are destroyed, user will be prompted to enter the password while coming out of standby mode.(value: 1 - Destroy, 0 - Retain) GETTING -g (with no argument) will display the settings currently in use. -g live displays the settings currently in use. -g custom displays custom settings for all power sources. -g cap displays which power management features the machine supports. -g sched displays scheduled startup/wake and shutdown/sleep events. -g ups displays UPS emergency thresholds. -g ps / batt displays status of batteries and UPSs. -g pslog displays an ongoing log of power source (battery and UPS) state. -g rawlog displays an ongoing log of battery state as read directly from battery. -g therm shows thermal conditions that affect CPU speed. Not available on all platforms. -g thermlog shows a log of thermal notifications that affect CPU speed. Not available on all platforms. -g assertions displays a summary of power assertions. Assertions may pre- vent system sleep or display sleep. Available 10.6 and later. -g assertionslog shows a log of assertion creations and releases. Avail- able 10.6 and later. -g sysload displays the "system load advisory" - a summary of system activity available from the IOGetSystemLoadAdvisory API. Available 10.6 and later. -g sysloadlog displays an ongoing log of lives changes to the system load advisory. Available 10.6 and later. -g ac / adapter will display details about an attached AC power adapter. Only supported for MacBook and MacBook Pro. -g log displays a history of sleeps, wakes, and other power management events. This log is for admin & debugging purposes. -g uuid displays the currently active sleep/wake UUID; used within OS X to correlate sleep/wake activity within one sleep cycle. history -g uuidlog displays the currently active sleep/wake UUID, and prints a new UUID as they're set by the system. -g history is a debugging tool. Prints a timeline of system sleeplwake UUIDs, when enabled with boot-arg io=0x3000000. -g historydetailed Prints driver-level timings for a sleep/wake. Pass a UUID as an argument. -g powerstate [class names] Prints the current power states for I/O Kit drivers. Caller may provide one or more I/O Kit class names (separated by spaces) as an argument. If no classes are provided, it will print all drivers' power states. -g powerstatelog [-i interval] [class names] Periodically prints the power state residency times for some drivers. Caller may provide one or more I/O Kit class names (separated by spaces). If no classes are pro- vided, it will log the IOPower plane's root registry entry. Caller may specify a polling interval, in seconds with -i <polling interval>; other- wise it defaults to 5 seconds. -g stats Prints the counts for number sleeps and wakes system has gone thru since boot. -g systemstate Prints the current power state of the system and available capabilites. -g everything Prints output from every argument under the GETTING header. This is useful for quickly collecting all the output that pmset provides. Available in 10.8. SAFE SLEEP ARGUMENTS hibernatemode supports values of 0, 3, or 25. Whether or not a hiberna- tion image gets written is also dependent on the values of standby and autopoweroff For example, on desktops that support standby a hibernation image will be written after the specified standbydelay time. To disable hibernation images completely, ensure hibernatemode standby and autopoweroff are all set to 0. hibernatemode = 0 by default on desktops. The system will not back memory up to persistent storage. The system must wake from the contents of mem- ory; the system will lose context on power loss. This is, historically, plain old sleep. hibernatemode = 3 by default on portables. The system will store a copy of memory to persistent storage (the disk), and will power memory during sleep. The system will wake from memory, unless a power loss forces it to restore from hibernate image. hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to persistent storage (the disk), and will remove power to memory. The system will restore from disk image. If you want "hiberna- tion" - slower sleeps, slower wakes, and better battery life, you should use this setting. Please note that hibernatefile may only point to a file located on the root volume. STANDBY ARGUMENTS standby causes kernel power management to automatically hibernate a machine after it has slept for a specified time period. This saves power while asleep. This setting defaults to ON for supported hardware. The setting standby will be visible in pmset -g if the feature is supported on this machine. standbydelayhigh and standbydelaylow specify the delay, in seconds, before writing the hibernation image to disk and powering off memory for Standby. standbydelayhigh is used when the remaining battery capacity is above highstandbythreshold , and standbydelaylow is used when the remain- ing battery capacity is below highstandbythreshold. highstandbythreshold has a default value of 50 percent. autopoweroff is enabled by default on supported platforms as an implemen- tation of Lot 6 to the European Energy-related Products Directive. After sleeping for <autopoweroffdelay> seconds, the system will write a hiber- nation image and go into a lower power chipset sleep. Wakeups from this state will take longer than wakeups from regular sleep. autopoweroffdelay specifies the delay, in seconds, before entering autopoweroff mode. UPS SPECIFIC ARGUMENTS UPS-specific arguments are only valid following the -u option. UPS set- tings also have an on/off value. Use a -1 argument instead of percent or minutes to turn any of these settings off. If multiple halt conditions are specified, the system will halt on the first condition that occurs in a low power situation. haltlevel - when draining UPS battery, battery level at which to trigger an emergency shutdown (value in %) haltafter - when draining UPS battery, trigger emergency shutdown after this long running on UPS power (value in minutes, or 0 to disable) haltremain - when draining UPS battery, trigger emergency shutdown when this much time remaining on UPS power is estimated (value in minutes, or 0 to disable) Note: None of these settings are observed on a system with support for an internal battery, such as a laptop. UPS emergency shutdown settings are for desktop and server only. SCHEDULED EVENT ARGUMENTS pmset allows you to schedule system sleep, shutdown, wakeup and/or power on. "schedule" is for setting up one-time power events, and "repeat" is for setting up daily/weekly power on and power off events. Note that you may only have one pair of repeating events scheduled - a "power on" event and a "power off" event. For sleep cycling applications, pmset can sched- ule a "relative" wakeup or poweron to occur in seconds from the end of system sleep/shutdown, but this event cannot be cancelled and is inher- ently imprecise. type - one of sleep, wake, poweron, shutdown, wakeorpoweron date/time - "MM/dd/yy HH:mm:ss" (in 24 hour format; must be in quotes) time - HH:mm:ss weekdays - a subset of MTWRFSU ("M" and "MTWRF" are valid strings) owner - a string describing the person or program who is scheduling this one-time power event (optional) POWER SOURCE ARGUMENTS -g with a 'batt' or 'ps' argument will show the state of all attached power sources. -g with a 'pslog' or 'rawlog' argument is normally used for debugging, such as isolating a problem with an aging battery. OTHER ARGUMENTS boot - tell the kernel that system boot is complete (normally LoginWindow does this). May be useful to Darwin users. touch - PM re-reads existing settings from disk. noidle - pmset prevents idle sleep by creating a PM assertion to prevent idle sleep(while running; hit ctrl-c to cancel). This argument is depre- cated in favor of caffeinate(8). Please use caffeinate(8) instead. sleepnow - causes an immediate system sleep. restoredefaults - Restores Energy Saver settings to their default values. (Like clicking "Restore Defaults" in Energy Saver GUI). displaysleepnow - causes display to go to sleep immediately. resetdisplayambientparams - resets the ambient light parameters for cer- tain Apple displays. dim - deprecated in 10.4 in favor of 'displaysleep'. 'dim' will continue to work. spindown - deprecated in 10.4 in favor of 'disksleep'. 'spindown' will continue to work. EXAMPLES This command sets displaysleep to a 5 minute timer on battery power, leaving other settings on battery power and other power sources unper- turbed. pmset -b displaysleep 5 Sets displaysleep to 10, disksleep to 10, system sleep to 30, and turns on WakeOnMagicPacket for ALL power sources (AC, Battery, and UPS) as appropriate pmset -a displaysleep 10 disksleep 10 sleep 30 womp 1 Restores the system's energy settings to their default values. For a system with an attached and supported UPS, this instructs the sys- tem to perform an emergency shutdown when UPS battery drains to below 40%. pmset -u haltlevel 40 For a system with an attached and supported UPS, this instructs the sys- tem to perform an emergency shutdown when UPS battery drains to below 25%, or when the UPS estimates it has less than 30 minutes remaining run- time. The system shuts down as soon as either of these conditions is met. pmset -u haltlevel 25 haltremain 30 For a system with an attached and supported UPS, this instructs the sys- tem to perform an emergency shutdown after 2 minutes of running on UPS battery power. pmset -u haltafter 2 Schedules the system to automatically wake from sleep on July 4, 2016, at 8PM. pmset schedule wake "07/04/16 20:00:00" Schedules a repeating shutdown to occur each day, Tuesday through Satur- day, at 11AM. pmset repeat shutdown TWRFS 11:00:00 Schedules a repeating wake or power on event every tuesday at 12:00 noon, and a repeating sleep event every night at 8:00 PM. pmset repeat wakeorpoweron T 12:00:00 sleep MTWRFSU 20:00:00 Prints the power management settings in use by the system. pmset -g Prints a snapshot of battery/power source state at the moment. pmset -g batt If your system suddenly sleeps on battery power with 20-50% of capacity remaining, leave this command running in a Terminal window. When you see the problem and later power and wake the computer, you'll be able to detect sudden discontinuities (like a jump from 30% to 0%) indicative of an aging battery. pmset -g pslog SEE ALSO caffeinate(8) FILES All changes made through pmset are saved in a persistent preferences file (per-system, not per-user) at /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist Scheduled power on/off events are stored separately in /Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist pmset modifies the same file that System Preferences Energy Saver modi- fies. Darwin November 9, 2012 Darwin参考链接https://en.wikipedia.org/wiki/Pmsethttps://www.dssw.co.uk/reference/pmset.html