MacOS小技巧

1、DMG 格式文件制作以及 ISO 转换互转

DMG 格式是 Mac OS X 中常用的打包格式

  • 创建 DMG 格式的文件
$ hdiutil create -size 100M -stdinpass -format UDZO -srcfolder folder_to_compress archive_name.dmg

UDZO(压缩格式,默认)
UDRO(只读格式)
UDBZ(Better compressed image)
UDRW(可读写格式)
UDTO(DVD 格式)
  • 修改 DMG 文件的大小
$ hdiutil resize 150M /path/to/the/diskimage
  • 修改 DMG 格式中的加密口令
$ hdiutil chpass /path/to/the/diskimage
  • 挂载 DMG 格式的文件
$ hdiutil attach archive_name.dmg

它的挂载点在 /Volumes 目录的同名目录下

$ ls -lah /Volumes/archive_name/
  • 卸载 DMG 文件
$ hdiutil eject /Volumes/archive_name/
  • 将 ISO 格式的文件转为 DMG 格式的文件
$ hdiutil convert /path/imagefile.iso -format UDRW -o /path/convertedimage.dmg
  • 将 DMG 格式的文件转为 ISO 格式的文件
$ hdiutil convert /path/imagefile.dmg -format UDTO -o /path/convertedimage.cdr
$ hdiutil makehybrid /path/convertedimage.cdr -iso -joliet -o /path/convertedimage.iso

2、删除虚拟网络设备

sudo ifconfig utun3 delete

3、路由修改

# 删除路由
ip route delete 172.16.1.2/32 
# 添加路由
sudo route add 172.16.1.2/32 -interface utun2

4、HomeBrew安装使用

①简介

  • brew 是从下载源码解压然后 ./configure && make install

  • formula:定义了一个软件包。包括了这个软件的,依赖、源码位置及编译方法等

  • tap:一个包含 formula 的 git 仓库

  • cask:homebrew 的一个扩展仓库,用来安装 一些带界面的应用软件,下载好后会自动安装

  • bottle:homebrew 提供的已经编译好的 formula。这些 bottle 可以在这里看到。在大部分的情况下,执行

  • Homebrew路径

    cd "$(brew --repo)"
    
  • Cask仓库路径

    cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
    
  • Core仓库路径

    cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    

②安装

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

③使用

# 安装一个包
brew install <package_name>
# 搜索一个包
brew search <package_name>
brew search /正则表达式/ # 标准格式
brew search /^vi/   #规定了只能是vi开头
brew search /^vi\\w$/ 
# 查看这个包的信息
brew info <package_name>
# 安装图形化的软件
brew cask install <formula>
# 卸载对应包名字
brew uninstall <package_name>
# 列出过时的包
brew outdated
# 更新过时的包,不带包名就跟新所有包
brew upgrade [ package_name ]
# 更新HomeBrew自身
brew update
# 清除缓存
brew cleanup [包名]
# 列出已经安装的包
brew list
# 查看homebrew 的配置
brew config
# 添加或者删除仓库
brew [un]tap <github_userid/repo_name>

④使用国内的镜像源

  • 中科大

    # Homebrew 源代码仓库
    cd "$(brew --repo)"
    git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
    
    # Homebrew 核心软件仓库
    cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
    
    # Homebrew cask 软件仓库,提供 macOS 应用和大型二进制文件
    cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
    git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
    
    # Homebrew cask 其他版本 (alternative versions) 软件仓库,提供使用人数多的、需要的版本不在 cask 仓库中的应用。
    cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask-versions
    git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask-versions.git
    
    # Homebrew 预编译二进制软件包
    echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
    source ~/.zshrc
    

5、HomeBrew的备份恢复

①简介

homebrew-bundle - https://github.com/Homebrew/homebrew-bundle

  1. Mac 上非常常用的包管理器 Homebrew, 我们经常用它来安装其他的软件包
  2. 还有 Homebrew-cask, 可以用来安装图形界面的 App
  3. homebrew-bundle 类似 node 中的 package.json 或者 Cocoapods 中的 Podfile
  4. 我们将需要的包和 App, 声明在一个 Brewfile 中, 然后执行 brew bundle 即可安装所有包

②备份内容

  1. brew tap 中的软件库
  2. brew 安装的命令行工具
  3. brew cask 安装的 App
  4. Mac App Store 安装的 App

③备份命令

# 执行 brew bundle dump 
brew bundle dump --describe --force --file="~/Desktop/Brewfile"

# 参数说明 
--describe:为列表中的命令行工具加上说明性文字。
--force:直接覆盖之前生成的 Brewfile 文件。如果没有该参数,则询问你是否覆盖。
--file="~/Desktop/Brewfile":在指定位置生成文件。如果没有该参数,则在当前目录生成 Brewfile 文件。

生成的Brewfile 文件内容

## 该部分是 brew 中的 tap,相当于一个个软件库 
tap "homebrew/bundle"
tap "homebrew/cask"
## 该部分是 brew 安装的命令行工具 
# Mac App Store command-line interface
brew "mas"
# UNIX shell (command interpreter)
brew "zsh"
# Fish shell like syntax highlighting for zsh
brew "zsh-syntax-highlighting"

## 该部分是 brew cask 安装的 app
cask "mounty"
cask "dteoh/sqa/slowquitapps"

## 该部分是 Mac App Store 安装的 app
mas "ting_en", id: 734383760
mas "Xcode", id: 497799835

④恢复命令

brew install mas
# 批量安装软件 
brew bundle --file="~/Desktop/Brewfile"

参考:

  1. https://wsgzao.github.io/post/homebrew-bundle/

6、使用Brew安装的软件信息

①MySQL

  • 配置文件:/usr/local/etc/my.cnf
  • 日志和底层DB数据文件: /usr/local/var/mysql
  • bin文件路径:/usr/local/Cellar/mysql@mysql版本/mysql版本
  • brew 启动命令:brew services restart mysql@mysql版本

②Nginx

  • 主配置文件路径:/usr/local/etc/nginx/nginx.conf
  • bin文件路径: /usr/local/Cellar/nginx/nginx版本号/

7、stat命令格式化输出

$ echo "stat -f "文件: %N%n%n  大小: %Z 字节  类型: %HT%n  所在磁盘分区: %Sd Block编号: %b  Inode: %i %n  权限: %Sp(%Mp%Lp) / %Su(%u)-%Sg(%g)%n%n  最近访问时间  :  %Sa%n  内容修改时间  :  %Sm%n  inode修改时间 :  %Sc%n  创建时间      :  %SB" -t "%Y-%m-%d %H:%M:%m"" >> ~/.zshrc
$ source ~/.zshrc
$ stat test.txt

文件: test.txt

  大小: 124875 字节  类型: Regular File
  所在磁盘分区: disk1s2 Block编号: 256  Inode: 55342799 
  权限: -rw-r--r--(0644) / curiouser(501)-staff(20)

  最近访问时间  :  2021-08-12 19:18:08
  内容修改时间  :  2021-08-12 18:47:08
  inode修改时间 :  2021-08-12 18:47:08
  创建时间      :  2021-07-15 10:19:0721

8、Docker Desktop For Mac

①启动容器报错“no space left on device”

因为MacOS下Docker Desktop的docker是基于虚拟机的。而docker虚拟机的原始存储RAW文件大小超过设置的值后会报上述错误

RAW文件路径:~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw

解决办法:

  • 删除虚悬volumes释放空间:docker volume rm $(docker volume ls -qf dangling=true)

9、Mac 上的“磁盘工具”支持的文件系统格式:

  • Apple 文件系统 (APFS):macOS 10.13 或后续版本使用的文件系统。

    Apple 文件系统 (APFS) 是运行 macOS 10.13 或后续版本的 Mac 电脑所使用的默认文件系统,它具有强加密、空间共享、磁盘快照、快速目录大小统计等特性,以及改进的文件系统基础。虽然 APFS 最适合于新款 Mac 电脑中所用的闪存/SSD 储存,它也可以与使用传统硬盘驱动器 (HDD) 和外置直连储存设备的低版本系统配合使用。macOS 10.13 或后续版本支持 APFS 用于可引导启动的宗卷和数据宗卷。

    APFS 按照需求分配容器(分区)中的磁盘空间。单个 APFS 容器包含多个宗卷时,容器的可用空间会共享,并且会自动按需分配到任意单独的宗卷。如果需要,您可以指定每个宗卷的保留大小和配额大小。每个宗卷仅使用整体容器的一部分,这样一来,可用空间即容器的总大小减去该容器中所有宗卷的大小。

    为运行 macOS 10.13 或后续版本的 Mac 电脑选取以下其中一种 APFS 格式。

    • APFS:使用 APFS 格式。如果不需要加密或区分大小写格式,请选取此选项。
    • APFS(加密):使用 APFS 格式且加密宗卷。
    • APFS(区分大小写):使用 APFS 格式并区分文件和文件夹名称的大小写。例如,名称为“Homework”和“HOMEWORK”的文件夹是两个不同的文件夹。
    • APFS(区分大小写,加密):使用 APFS 格式,区分文件和文件夹名称的大小写且加密宗卷。例如,名称为“Homework”和“HOMEWORK”的文件夹是两个不同的文件夹。

    您可以轻松添加或删除 APFS 容器中的宗卷。APFS 容器中的每个宗卷都可以拥有其 APFS 格式:APFS、APFS(加密)、APFS(区分大小写)或 APFS(区分大小写,加密)。

  • Mac OS 扩展:macOS 10.12 或之前版本使用的文件系统。

    • Mac OS 扩展(日志式):使用 Mac 格式(日志式 HFS Plus)来保护分层文件系统的完整性。如果不需要加密或区分大小写格式,请选取此选项。
    • Mac OS 扩展(日志式,加密):使用 Mac 格式,要求密码,并加密分区。
    • Mac OS 扩展(区分大小写,日志式):使用 Mac 格式并区分文件夹名称的大小写。例如,名称为“Homework”和“HOMEWORK”的文件夹是两个不同的文件夹。
    • Mac OS 扩展(区分大小写,日志式,加密):使用 Mac 格式,区分文件夹名称的大小写,要求密码,并加密分区。
  • MS-DOS (FAT) 和 ExFAT:与 Windows 兼容的文件系统。

    • MS-DOS (FAT):用于 Windows 宗卷且大小为 32 GB 或不足 32 GB。
    • ExFAT:用于 Windows 宗卷且大小超过 32 GB。

10、挂载EFI分区

diskutil list
# /dev/disk0
# #: TYPE                     NAME          SIZE       IDENTIFIER
# 0: GUID_partition_scheme                  *251.0 GB  disk0
# 1: EFI                                    209.7 MB   disk0s1
# 2: Apple_HFS                Macintosh HD  250.1 GB   disk0s2
# 3: Apple_Boot               Recovery HD   650.0 MB   disk0s3
mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1 /Volumes/EFI
Copyright Curiouser all right reserved,powered by Gitbook该文件最后修改时间: 2022-05-16 17:26:46

results matching ""

    No results matching ""