文章目录
- 设置环境变量
- 列出所有可以更新的软件包
- 直接更新所有可以更新的软件包
- 打包压缩文件
- 创建 DMG 格式的文件
- 修改 DMG 文件的大小
- 修改 DMG 格式中的加密口令
- 挂载 DMG 格式的文件
- 推出 DMG 文件
- 将 ISO 格式的文件转为 DMG 格式的文件
- 将 DMG 格式的文件转为 ISO 格式的文件
- 文件系统的挂载
- 查看当前系统的所有磁盘分区
- 卸载磁盘分区
- 文件或目录的隐藏属性
- 重置被遗忘的管理员密码
- 重建 Spotlight 数据库
- 清理缓存
- 主机名、计算机名的重置
- 显示非文本文件的内容
- 比较并显示两个文件的差异
- 比较两个目录的内容
- 分页格式化显示文件内容
- 给文件加上行号
- 查看历史命令
- 显示操作系统的有关信息
- 列出当前登录的所有用户
- 显示当前正进行操作的用户名
- 显示终端或伪终端的名称
- 查看文件和目录所占用的磁盘空间大小
- 查看磁盘空间的使用情况
- 显示当前系统活动的总信息
- 显示系统的当前日期和时间
- 显示日历
- 加载文件资源数据库
设置环境变量
打开配置文件 .bash_profile
:
lwxdeMacBook-Air:~ lwx$ vim ~/.bash_profile # 使用 vim 来编辑文件
lwxdeMacBook-Air:~ lwx$ open ~/.bash_profile # 会使用默认 GUI 程序打开此文件,一般是一个记事本程序
在配置文件中输入:
PATH=/usr/local/bin:$PATH
配置好之后重新执行配置文件:
lwxdeMacBook-Air:~ lwx$ source .bash_profile
列出所有可以更新的软件包
先列出所有可以更新的软件包:
lwxdeMacBook-Air:~ lwx$ sudo softwareupdate --list
然后选择需要的更新进行安装:
lwxdeMacBook-Air:~ lwx$ sudo softwareupdate --install SomeApp
直接更新所有可以更新的软件包
lwxdeMacBook-Air:~ lwx$ sudo softwareupdate -i -a
打包压缩文件
忽略 Mac OS 文件系统中的扩展属性
由于 Mac OS 文件系统中的扩展属性,若将 Mac OS 系统中的文件直接用打包释放到 Linux 系统中造成莫名奇妙的错误。这里就需要处理一下文件在复制、打包过程中的扩展属性。首先,Mac OS 的 cp
命令有一个选项 -X
,用它可在复制过程中忽略这些文件的扩展属性。因此,在打包前,先可复制出一份没有扩展属性的文件包,例如:
lwxdeMacBook-Air:~ lwx$ cp -Xr /path/to/src - | tar czvf src.tar.gz -
注:两个命令语句后面都有个 -
,代表的含义是什么,应该是一个占位符,对吧?
忽略 Mac OS 专有的隐藏文件
在 Mac OS 中打包文件时会包含 Mac OS 系统专有的隐藏文件,例如:_MACOSX
、._Filename
与 .DS_Store
等。在打 zip
包时,可使用 -X
选项排除这些文件。
例如,将目录 source_directory_name
及其所包含的所有内容压缩打包成 archive_name.zip
:
lwxdeMacBook-Air:~ lwx$ zip -r -X archive_name.zip source_directory_name
不过,对于 Unix/Linux 系统中专有的打包命令 tar
,可就没有 -X
选项这么好的东西了。好在 Mac OS 还是提供了专门的方法。
例如,在打 gzip
包时,可使用如下命令:
lwxdeMacBook-Air:~ lwx$ COPYFILE_DISABLE=1 tar -zcvf archive_name.tar.gz source_directory_name
打 bzip2
包也一样:
lwxdeMacBook-Air:~ lwx$ COPYFILE_DISABLE=1 tar -jcvf archive_name.tar.bz2 source_directory_name
创建 DMG 格式的文件
DMG 格式是 Mac OS 中常用的打包格式,创建 DMG 格式的文件,可直接利用系统自带的磁盘工具(Disk Utils)完成。不过也可以使用命令 hdiutil 创建 DMG 格式的文件,命令语句如下:
lwxdeMacBook-Air:~ lwx$ hdiutil create -size 100M -stdinpass -format UDZO -srcfolder source_folder_name archive_name.dmg
注:其中可以选用的 DMG 格式有 UDZO(压缩格式,默认)、UDRO(只读格式)、UDBZ(Better compressed image)、UDRW(可读写格式)UDTO(DVD 格式)。
修改 DMG 文件的大小
lwxdeMacBook-Air:~ lwx$ hdiutil resize 150M /path/to/the/diskimage
修改 DMG 格式中的加密口令
lwxdeMacBook-Air:~ lwx$ hdiutil chpass /path/to/the/diskimage
挂载 DMG 格式的文件
lwxdeMacBook-Air:~ lwx$ hdiutil attach archive_name.dmg
lwxdeMacBook-Air:~ lwx$ ls -lah /Volumes/archive_name/ # 挂载后,查看文件包的内容
注:挂载点在 /Volumes
目录下
推出 DMG 文件
lwxdeMacBook-Air:~ lwx$ hdiutil eject /Volumes/archive_name/
将 ISO 格式的文件转为 DMG 格式的文件
lwxdeMacBook-Air:~ lwx$ hdiutil convert /path/imagefile.iso -format UDRW -o /path/convertedimage.dmg
将 DMG 格式的文件转为 ISO 格式的文件
lwxdeMacBook-Air:~ lwx$ hdiutil convert /path/imagefile.dmg -format UDTO -o /path/convertedimage.cdr
lwxdeMacBook-Air:~ lwx$ hdiutil makehybrid /path/convertedimage.cdr -iso -joliet -o /path/convertedimage.iso
文件系统的挂载
大多数情况下,文件管理器 Finder 会自动发现诸如 USB 等外部设备,因此无须用户自行挂载分区;但是,有的时候,例如 Mac OS X 硬盘重新分区后,划出了 msdos 分区或者 ext4 等非 HFS 文件系统的分区,如果要读写这些分区,就需要手动挂载这些文件系统了。
挂载文件系统的第一步是建立挂载点:
lwxdeMacBook-Air:~ lwx$ sudo mkdir /Volumes/Foo
lwxdeMacBook-Air:~ lwx$ sudo mkdir /Volumes/bar
查看有哪些设备需要手动挂载:
lwxdeMacBook-Air:~ lwx$ ls /dev/disk*
/dev/disk0 /dev/disk0s2 /dev/disk1s1 /dev/disk1s3 /dev/disk1s5 /dev/disk1s6 /dev/disk2s1
/dev/disk0s1 /dev/disk1 /dev/disk1s2 /dev/disk1s4 /dev/disk1s5s1 /dev/disk2
挂载磁盘分区到指定的挂载点(即目录):
lwxdeMacBook-Air:~ lwx$ sudo mount -t msdos /dev/disk1s1 /Volumes/Foo
lwxdeMacBook-Air:~ lwx$ sudo mount -t hfs /dev/disk1s2 /Volumes/bar
查看当前系统的所有磁盘分区
lwxdeMacBook-Air:~ lwx$ df -hl
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s5s1 234Gi 14Gi 107Gi 12% 559993 2448565367 0% /
/dev/disk1s4 234Gi 3.0Gi 107Gi 3% 6 2449125354 0% /System/Volumes/VM
/dev/disk1s2 234Gi 349Mi 107Gi 1% 1483 2449123877 0% /System/Volumes/Preboot
/dev/disk1s6 234Gi 2.7Mi 107Gi 1% 21 2449125339 0% /System/Volumes/Update
/dev/disk1s1 234Gi 108Gi 107Gi 51% 934700 2448190660 0% /System/Volumes/Data
/dev/disk2s1 1.8Ti 442Gi 1.4Ti 24% 904700 2910658 24% /Volumes/Western_01
注:-h
以可读性的形式来显示信息;-l
表示仅显示有关本地挂载的文件系统的信息。/dev/disk2s1
这些代表文件系统,不是目录,在这里代表的是一个挂载的磁盘分区,你要进入移动硬盘的根目录,可以执行命令 cd /Volumes/Western_01
。了解命令 df 的详细使用说明,可以参见《Linux 命令之 df – 显示磁盘空间使用情况》
卸载磁盘分区
如上想要推出磁盘设备/dev/disk2s1
,可以执行以下的命令:
lwxdeMacBook-Air:~ lwx$ diskutil unmount /dev/disk2s1
lwxdeMacBook-Air:~ lwx$ diskutil unmount /Volumes/Western_01
注:unmount
是卸载的意思。
或者执行下面的命令:
lwxdeMacBook-Air:~ lwx$ diskutil eject /dev/disk1s1
lwxdeMacBook-Air:~ lwx$ diskutil eject /Volumes/Western_01
注:eject
是弹出的意思。
文件或目录的隐藏属性
通常,为了保护 Mac OS 系统中的文件不会被用户随意修改,文件管理器 Finder 是不会显示带隐藏属性的文件与系统文件。但是,有些时候,需要操作这些文件(夹), 此时就需要让 Finder 找到这些文件,方法也很简单。在 Finder 的菜单栏中点击 Go --> Go to folder
,与之对应的,可使用快捷键 Shift + Command + G
。 当然,如果对于 Mac OS 自带的文件管理器不满意,可安装第三方文件管理器,例如 totalfinder
。其实,单就隐藏文件来说,Mac OS 还提供了其他方法,下面逐一介绍它们。
让 Finder 程序隐藏和显示“隐藏文件”
修改 Finder 配置文件,让 Finder 程序显示隐藏文件:
lwxdeMacBook-Air:~ lwx$ defaults write com.apple.finder AppleShowAllExtensions TRUE
让 Finder 程序不显示隐藏文件:
lwxdeMacBook-Air:~ lwx$ defaults write com.apple.finder AppleShowAllExtensions FALSE
注:Finder 的配置文件影响到整个文件系统,属于比较暴力的方法。
开启或关闭某些文件或目录的隐藏属性
用下面命令可以解除目录的隐藏属性:
lwxdeMacBook-Air:~ lwx$ chflags nohidden ~/Library
恢复目录的隐藏属性:
lwxdeMacBook-Air:~ lwx$ chflags hidden ~/Library
通过命令 SetFile 来设置文件和目录的隐藏属性
事实上,HFS+
文件系统中文件和目录的隐藏属性也可通过 SetFile
命令来修改。
例如,可开启文件夹 ~/Sites 的隐藏属性,可以执行下面的命令语句:
lwxdeMacBook-Air:~ lwx$ mkdir -p ~/Sites
lwxdeMacBook-Air:~ lwx$ SetFile -a V ~/Sites
关闭它的隐藏属性可以执行下面的命令语句:
lwxdeMacBook-Air:~ lwx$ SetFile -a v ~/Sites
重置被遗忘的管理员密码
首先,在系统开机还未进入登录界面时按下 Command + S
进入单用户模式。
然后在命令终端输入下面的命令语句:
lwxdeMacBook-Air:~ lwx$ mount -rw /
上面的命令表示以读写方式挂载文件系统,接着重置管理员 james 的密码,输入下面的命令语句:
lwxdeMacBook-Air:~ lwx$ passwd james
完成后,输入下面的命令重启开机:
lwxdeMacBook-Air:~ lwx$ reboot
重建 Spotlight 数据库
比较简单的办法是用鼠标顺次点击『系统偏好』–>『Spotlight』–>『重建数据库』;对于命令行发烧友来说,可以试试下面的命令:
lwxdeMacBook-Air:~ lwx$ sudo mdutil -E /
清理缓存
lwxdeMacBook-Air:~ lwx$ sudo purge
主机名、计算机名的重置
默认的主机名让人非常无语,特别是出现了一些与 locale 有关的特殊字符。通常情况下,这些并不可见,但是,频繁使用终端时,就会被这些莫名其妙的主机名恶心到了。因此,修改主机名成了当务之急,不过修改的方法很简单。顺次点击左上角的苹果图标->系统偏好设置->共享,接着修改主机电脑名与局域网主机名即可。话说回来,Unix 的命令行是强大的,因此,主机名与计算机名的修改也可以通过命令行修改。
lwxdeMacBook-Air:~ lwx$ sudo scutil --set ComputerName newnameformacosx
lwxdeMacBook-Air:~ lwx$ sudo scutil --set HostName newhostnameformacosx
好了,查看一下修改是否成功:
lwxdeMacBook-Air:~ lwx$ scutil --get ComputerName
lwxdeMacBook-Air:~ lwx$ scutil --get HostName
将主机名放入 /etc/hosts 文件
lwxdeMacBook-Air:~ lwx$ echo 127.0.0.1 newhostnameformacosx >> /etc/hosts
重启网络服务让上述修改立马生效:
lwxdeMacBook-Air:~ lwx$ sudo dscacheutil -flushcache
lwxdeMacBook-Air:~ lwx$ sudo killall -HUP mDNSResponder
显示非文本文件的内容
od -c filename
比较并显示两个文件的差异
diff file1 file2
比较两个目录的内容
dircmp dir1 dir2
分页格式化显示文件内容
pg filename
给文件加上行号
nl file1 >file2
查看历史命令
history
显示操作系统的有关信息
lwxdeMacBook-Air:~ lwx$ uname -a
Darwin lwxdeMacBook-Air.local 20.4.0 Darwin Kernel Version 20.4.0: Thu Apr 22 21:46:47 PDT 2021; root:xnu-7195.101.2~1/RELEASE_X86_64 x86_64
列出当前登录的所有用户
who
显示当前正进行操作的用户名
whoami
显示终端或伪终端的名称
tty
查看文件和目录所占用的磁盘空间大小
请详见《Linux 命令之 du – 显示每个文件和目录的大小》
查看磁盘空间的使用情况
lwxdeMacBook-Air:~ lwx$ df -h /tmp
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1 234Gi 107Gi 109Gi 50% 927279 2448198081 0% /System/Volumes/Data
请详见《Linux 命令之 df – 显示磁盘空间使用情况》
显示当前系统活动的总信息
lwxdeMacBook-Air:~ lwx$ w
显示系统的当前日期和时间
lwxdeMacBook-Air:~ lwx$ date
显示日历
lwxdeMacBook-Air:~ lwx$ cal 8 1996
八月 1996
日 一 二 三 四 五 六
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
加载文件资源数据库
命令 locate
会在此数据库查找资源。
lwxdeMacBook-Air:~ lwx$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist