为macOS配置ll命令及终端颜色
macOS系统默认只有ls
命令,而没有ll
命令,但后者在Linux中特别常用,所以本文简要介绍如何为macOS的终端配置ll
命令。本文基于macOS Ventura 13.3系统默认的zsh终端。如果读者用的是bash终端(如老版本的macOS),可以将.zshrc
配置文件替换为.bashrc
或.bash_profile
。
配置alias
别名
打开终端(Terminal),在home路径(即~
)下使用vim .zshrc
命令编辑zsh的配置文件,在其中添加一行:
其中alias
的作用是设置一个别名,将等号左边的ll
映射为等号右边的'ls -lhD "%Y-%m-%d %H:%M:%S"'
。这样当输入ll
时,实际执行的就是右边的定制化ls
命令。因为右边是包含空格的,所以用单引号引起来。
使用man ls
命令可以查询ls
命令的所有参数说明。其中-l
代表使用长(详细)格式;-h
代表使用B、K、M、G等单位;-D
代表自定义日期时间格式,即后面的字符串模板。因为当前已经在单引号中了,所以日期时间格式字符串包含空格,就用双引号引起来。格式大小写敏感,%Y
代表4位的年,%m
代表2位的月,%d
代表2位的天,%H
代表2位的小时,%M
代表2位的分钟,%S
代表2位的秒。完整的日期时间格式,可以参考strftime(3)标准C函数的说明。
使用source .zshrc
命令使该配置文件生效,之后在终端输入ll
命令后打印的内容即为:
ll
命令结果格式说明
基于上例,ll
命令输出的信息共有7列(其中日期和时间视为同一列)。从左侧开始,以第1行为例:
- 类型和权限信息,如
drwx------@
,共有10或11个字符。- 第1个字符代表类型,
-
代表文件,d
代表文件夹,l
代表软链接,c
代表字符设备文件。 - 第2-4共3个字符代表所有者(u)权限。权限
r
代表可读,w
代表可写,x
代表可执行。使用顺次连续3位代表是否拥有rwx
权限,如果没有权限则使用-
表示。 - 第5-7共3个字符代表所属组(g)权限,具体同上。
- 第8-10共3个字符代表其他人(o)权限,具体同上。
- 第11位字符可选,是权限的说明信息。
@
代表继承父文件夹,.
代表使用SELinux,+
代表使用ACL。
- 第1个字符代表类型,
- 硬链接的引用次数,如数字
5
。 - 拥有者(owner)的用户名,如
zhanghuan
。 - 拥有者所在的组名称,如
staff
。 - 文件(或文件夹,但不含其内容)所占用的字节大小,如
160B
。 - 最新修改时间,如
2022-07-30 21:00:02
。 - 文件(或文件夹)的名称,如
Applications
。
配置终端颜色
默认情况下的macOS终端并不具有彩色效果,无论是文件还是文件夹,它们的颜色都是一样的。但在Linux中则默认可以通过不同的颜色来区分文件类型。可以在.zshrc
文件中添加2行配置:
其中CLICOLOR=1
代表开启自定义客户端颜色。LSCOLORS
代表具体的颜色方案,共有22个字符,每2个字符为一组,共有11组。从左向右每一组的含义为:
- directory.
- symbolic link.
- socket.
- pipe.
- executable.
- block special.
- character special.
- executable with setuid bit set.
- executable without setgid bit set.
- directory writable to others, with sticky bit.
- directory writable to others, without sticky bit.
每一组的前后2个字符中,第1个代表前景色,第2个代表背景色。具体的颜色使用大小写敏感的8*2+1=17种字符来表示,大写代表加粗,小写代表不加粗:
a
代表黑色,A
代表黑色加粗。b
代表红色,B
代表红色加粗。c
代表绿色,C
代表绿色加粗。d
代表棕色,D
代表棕色加粗。e
代表蓝色,E
代表蓝色加粗。f
代表洋红色,F
代表洋红色加粗。g
代表青色,G
代表青色加粗。h
代表浅灰色,H
代表浅灰色加粗。x
代表系统默认颜色。
例如,想要用蓝色加粗表示文件夹,则LSCOLORS
的前2个字符可配置为Ex
。如果想要更加复杂的配置,例如根据文件的扩展名来使用对应的颜色,可实现如使用红色来表示压缩文件等功能,可参考Linux系统的/etc/DIR_COLORS
文件,也有第三方终端配置工具提供。