0%

mac

1. 目录变成黄色

那是因为目录权限变为任何人都可以读写,去掉这个权限使用chmod go-w $directory_name

1
ls | xargs chmod -R go-w

2. safely remove

防止误删除,所以把rm的操作变成移动到Trash的操作,使用一个小工具rmtrash

1
2
3
4
# 删除文件 
rm xxx
# 删除文件夹,主要不需要 -R
rm xxx

http://www.nightproductions.net/cli.htm

3. lipo使用

  1. 打开终端:cd 到 libVideoPlayerLib.a 所在的文件夹test下 .
  2. 查看 libVideoPlayerLib.a 包含几种架构 arch 。 (file 命令)
  3. 分离出一种架构的.a。(lipo **.a -thin armv7 -output armv7.a)
  4. 抽离.a文件的object文件.o。(ar -x armv7.a), 抽出目标文件,是link的反向操作。
  5. 将.o 转换为 .m。(nm ****.o > ****.m)

TODO: nm 怎么查找源码符号?看文档需要symbol文件,但是假如没有symbol文件,Firebase Crashylytic是怎么知道源码是哪一行的?

https://blog.csdn.net/shifang07/article/details/89854214

4. mysql

设置开机启动
brew info mysql gives you the instructions for loading MySQL at startup, but here’s all you need to do:

1
2
3
mkdir -p ~/Library/LaunchAgents
cp `brew --prefix mysql`/*mysql*.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/*mysql*.plist

5. brew命令

brew的update和upgrade不是我想象的作用,和yarn,npm不是同一个意思。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 更新list,如同apt-get update一样,先更新本地软件列表
brew update

# 升级软件, 和安装一样,还是用 brew install
brew install xx #brew install xx@version

# 升级特定软件
brew upgrad golang # 如果formula/cask指定了,升级特定的formula/cask. 如果不指定,升级所有的软件!!!


# 升级所有软件,不要使用这个
brew upgrade # 这个最容易误用,它是升级所有的软件,会导致软件依赖环境一起升级,如果有node,pyton,java会一股脑升级


# 卸载软件
brew uninstall xx

# 清理之前安装的旧版本软件,不会影响新版本
brew cleanup #这个只会删除120天前的旧版本安装包,不会影响最新版本的安装包
# 清理含包最新版本的安装包
brew cleanup --prune=1 -s

6. U盘格式化APFS

APFS是Apple对HFS+的改进,更加适应SSD。
我的SanDsik没办法使用自带的磁盘工具DiskUtil进行分区,格式化的选项也没有APFS,只能选择Mac OS扩展和ExFAT。出现这种问题是因为磁盘的分区不是GPT格式。通过以下步骤可以将移动硬盘的分区更换成GPT分区,然后就能格式化成APFS了。

步骤:

  • 首先通过磁盘管理工具确认新磁盘的设备号,例如disk2s1,那么磁盘号就是disk2
    或者通过diskutil list命令确认磁盘的设备号。
  • 通过以下命令转换磁盘为GPT格式,diskutil eraseDisk JHFS+ BackupMaster disk2
    转换的时候会清空磁盘内的所有数据,转换完成后获得一个BackupMaster的磁盘。
  • 现在可以通过磁盘工具进行分区和格式化了。

7. error: linking with cc failed: exit status: 72

这个是因为升级了XCode,导致clang的链接错误,指向了系统自带的,而非commandline tools的。

1
2
which clang
sudo xcode-select --switch /Library/Developer/CommandLineTools

8. launchctl

plist文件路径~/Library/LaunchAgents

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看开机启动项, 这个也可以去setting中看
launchctl list | grep -v 'apple'

# 加载launchctl plist文件, 如果之前加载过,记得先unload
launchctl load [plist-file-name]

# 卸载launchctl plist文件
launchctl unload [plist-file-name]

# 启动服务
launchctl start [service-name]

# 停止服务
launchctl stop [service-name]


  • brew 安装的mysql会自己生成一个plist文件自启动
  • redis plist文件需要设置workingdirectory,不然默认的路径是root,会有权限问题,不能写。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Label唯一的标识 -->
<key>Label</key>
<string>com.redis.plist</string>

<!-- 指定要运行的脚本 -->
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/redis-server</string>
</array>

<!-- 开机启动 -->
<key>RunAtLoad</key>
<true/>

<!-- 保活-->
<key>KeepAlive</key>
<true/>

<key>WorkingDirectory</key>
<string>/usr/local/var/redis</string>

<!-- 标准输出文件 -->
<key>StandardOutPath</key>
<string>/Users/me/logs/redis.log</string>

<!-- 标准错误输出文件,错误日志 -->
<key>StandardErrorPath</key>
<string>/Users/me/logs/redis.err</string>
</dict>
</plist>

https://www.jianshu.com/p/53123d9052ca