Xcode命令行工具Command Line Tools

一般Xcode安装后,第一次打开时,会弹窗提示安装Command Line Tools,直接安装即可。

如果当时没有安装,后面也可以单独安装。

1
2
3
xcode-select --install	// 安装命令

xcode-select --version // 查看版本

有时Command Line Tools出了问题,可以先尝试恢复默认设置来解决:

1
2
// 恢复默认设置(需要sudo权限)
sudo xcode-select --reset

还是解决不了,可以考虑删掉后重新安装:

1
2
3
4
5
// 强制删除安装目录下的文件
sudo rm -rf /Library/Developer/CommandLineTools

// 重新安装
xcode-select --install

除了终端命令的安装方式,也可以到苹果开发者官网的下载专区搜索Command Line Tools并下载安装包。你也可以去xcodereleases网站找到各种版本Xcode的下载链接。

macOS系统使用技巧

1.tree命令

自定义

mac下默认是没有 tree命令的,不过我们可以使用find命令模拟出tree命令的效果,如显示当前目录的 tree 的命令:

1
$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

当然你也可以写一个别名来快速执行该命令,运行如下命令,将上面这个命令写到~/.bash_profile里,以后直接运行tree命令就更方便了:

1
alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"

安装tree命令行工具

也可以使用 homebrew 安装 tree 命令行:brew install tree

这样就在你的mac上安装了 tree 命令行了。

tree命令行参数(只实用与安装了tree命令行工具):

  • -a 显示所有文件和目录。
  • -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
  • -C 在文件和目录清单加上色彩,便于区分各种类型。
  • -d 显示目录名称而非内容。
  • -D 列出文件或目录的更改时间。
  • -f 在每个文件或目录之前,显示完整的相对路径名称。
  • -F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/“,”=”,”@”,”|”号。
  • -g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
  • -i 不以阶梯状列出文件或目录名称。
  • -I 不显示符合范本样式的文件或目录名称。
  • -l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
  • -n 不在文件和目录清单加上色彩。
  • -N 直接列出文件和目录名称,包括控制字符。
  • -p 列出权限标示。
  • -P 只显示符合范本样式的文件或目录名称。
  • -q 用”?”号取代控制字符,列出文件和目录名称。
  • -s 列出文件或目录大小。
  • -t 用文件和目录的更改时间排序。
  • -u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
  • -x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

2.改变APP图标

最近发现有些APP图标实在是难看,忍不住想换个标,就在网上查了下资料,MacOS系统提供了生成icns的命令,我们需要准备一张png的图,这张图最小要1024*1024的分辨率。

制作步骤:

  1. 找图
    找一张分辨率1024*1024的png图片

  2. 建图片集目录
    打开终端输入以下命令:
    mkdir xxx. iconset
    注意:必须以.iconset后缀结尾

  3. 转换图片
    把原图片转为不同大小的图片,并放入上面的创建的目录中
    sips -z 16 16 pic.png –out xxx.iconset/icon_16x16.png
    sips -z 32 32 pic.png –out xxx.iconset/icon_16x16@2x.png
    sips -z 32 32 pic.png –out xxx.iconset/icon_32x32.png
    sips -z 64 64 pic.png –out xxx.iconset/icon_32x32@2x.png
    sips -z 128 128 pic.png –out xxx.iconset/icon_128x128.png
    sips -z 256 256 pic.png –out xxx.iconset/icon_128x128@2x.png
    sips -z 256 256 pic.png –out xxx.iconset/icon_256x256.png
    sips -z 512 512 pic.png –out xxx.iconset/icon_256x256@2x.png
    sips -z 512 512 pic.png –out xxx.iconset/icon_512x512.png
    sips -z 1024 1024 pic.png –out xxx.iconset/icon_512x512@2x.png
    @2x 的是为retina屏准备的,以上命令执行完后去目录里看下图片是否生成好了

  4. 生成图标
    这一步就是制作icns的最后一步了
    在命令行中输入一下命令
    iconutil -c icns xxx.iconset -o xxx.icns
    这时,目录中就会出现你要的icns图标文件了

  5. 替换图标
    在应用程序中找到想要替换的APP,右键,显示简介,然后把刚才的icns文件拖到简介里就可以了,替换完了之后需要把APP退出后才能看到新的图标。

批量制作

可以把制作过程写成一个shell文件,保存成.sh文件,这样就可以批量生成不同大小的图片并执行iconutil命令

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
35
36
37
38
39
#!/bin/sh
if [ x"$1" = x ]; then
echo "\033[31m 请输入要转换的图片全名(PNG格式的图片) \033[0m"
exit
fi
echo $1
newstr=$(tr '[A-Z]' '[a-z]' <<<"$1")
if [[ $newstr != *.png ]]; then
echo "\033[31m 图片不是png格式 \033[0m"
exit
fi

if [ x"$2" = x ]; then
echo "\033[31m 请输入iconset目录(命名方式xxx.iconset, 务必以 .iconset 结尾) \033[0m"
exit
fi

if [[ $2 != *.iconset ]]; then
echo "\033[31m iconset目录命令不规范 \033[0m"
exit
fi
# 生成的图片名
name_array=("icon_16x16.png" "icon_16x16@2x.png" "icon_32x32.png" "icon_32x32@2x.png" "icon_128x128.png" "icon_128x128@2x.png" "icon_256x256.png" "icon_256x256@2x.png" "icon_512x512.png" "icon_512x512@2x.png")
#尺寸
size_array=("16" "32" "32" "64" "128" "256" "256" "512" "512" "1024")

# 创建 iconset 目录
if [ ! -d $2 ]; then
mkdir $2
fi

for ((i = 0; i < ${#name_array[@]}; ++i)); do
m_dir=$2/${name_array[i]}
sips -z ${size_array[i]} ${size_array[i]} $1 --out $m_dir
done
# 生成icns 命令
iconutil -c icns $2 -o ${2%*".iconset"}.icns
# 生成完之后删除 iconset 文件夹
rm -rf $2;

图标下载

当然,你也可以去下载现成的 macOS Big Sur - Replacements Icons

图标还原

如果想恢复成默认图标,只需要在对应的APP图标上“右键”>“显示简介”,然后选中左上角的图标,按delete键就好了

3 关于.DS_Store 文件

阻止 DS_Store 文件的自动生成

DS_Store 文件是由系统自动创建的,它的存在有时候会对某些场景下的用户体验产生一些负面的影响。

为了加快网络磁盘的浏览速度,苹果提供了针对通过SMB共享的网络磁盘上DS_Store文件的阻止生成方案:

  1. 在「访达」中打开「应用程序」 > 「实用工具」 > 「终端」。

  2. 输入以下命令:

1
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
  1. 然后退出登录 macOS 账户并重新登录。

要重新启用,请输入以下命令:

1
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool FALSE

但是,以上命令只是针对网络磁盘,想要阻止本地磁盘中 DS_Store 文件的自动生成?

唯一的方式就是停止使用「访达」,不过我想大家应该不会考虑这么做。

如何删除 DS_Store 文件

首先,要声明的一点是,删除 DS_Store 文件完全是安全的操作,它不会损害电脑,也不会造成个人数据丢失。删除后,「访达」在打开文件夹是会以默认显示模式显示文件夹。在你进行某些「访达」操作后,系统又会在后台自动创建 DS_Store 文件。

如果你想删除 DS_Store 文件,可以通过「终端」App 进行删除。

  1. 在「访达」中打开「应用程序」> 「实用工具」 > 「终端」。
  2. 定位到你要删除 .DS_Store 文件的文件夹目录下。
  3. 在「终端」里输入cd命令,跟上你的目录文件夹路径,例如: cd /Users/username/pictures
  4. 回车。
  5. 输入命令 find . -name '.DS_Store' -type f -delete
  6. 再次回车。

到这里,当前文件夹目录下的所有 .DS_Store 文件都会消失。