为macOS配置ll命令及终端颜色
macOS系统默认只有ls命令,而没有ll命令,但后者在Linux中特别常用,所以本文简要介绍如何为macOS的终端配置ll命令。本文基于macOS Ventura 13.3系统默认的zsh终端。如果读者用的是bash终端(如老版本的macOS),可以将.zshrc配置文件替换为.bashrc或.bash_profile。
配置alias别名
Section titled “配置alias别名”打开终端(Terminal),在home路径(即~)下使用vim .zshrc命令编辑zsh的配置文件,在其中添加一行:
alias ll='ls -lhD "%Y-%m-%d %H:%M:%S"'其中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命令后打印的内容即为:
zhanghuan@MacBook-Pro ~ % lltotal 0drwx------@ 5 zhanghuan staff 160B 2022-07-30 21:00:02 Applicationsdrwxr-xr-x@ 32 zhanghuan staff 1.0K 2023-04-01 12:17:46 Desktopdrwxr-xr-x 32 zhanghuan staff 1.0K 2023-03-19 21:01:24 Documentsdrwxr-xr-x@ 14 zhanghuan staff 448B 2023-04-03 10:34:59 Downloadsdrwx------@ 86 zhanghuan staff 2.7K 2023-04-02 01:10:18 Librarydrwxr-xr-x 6 zhanghuan staff 192B 2023-01-01 18:23:44 Moviesdrwxr-xr-x 7 zhanghuan staff 224B 2022-07-31 12:58:43 Musicdrwxr-xr-x@ 2 zhanghuan staff 64B 2023-04-03 10:56:49 Parallelsdrwx------+ 17 zhanghuan staff 544B 2023-03-05 09:49:17 Picturesdrwxr-xr-x+ 5 zhanghuan staff 160B 2022-07-24 22:27:43 Publicdrwxr-xr-x@ 6 zhanghuan staff 192B 2023-04-03 12:08:56 Virtual Machines.localizeddrwxr-xr-x@ 12 zhanghuan staff 384B 2023-03-24 12:51:01 Workspacell命令结果格式说明
Section titled “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。
配置终端颜色
Section titled “配置终端颜色”默认情况下的macOS终端并不具有彩色效果,无论是文件还是文件夹,它们的颜色都是一样的。但在Linux中则默认可以通过不同的颜色来区分文件类型。可以在.zshrc文件中添加2行配置:
export CLICOLOR=1export LSCOLORS=ExGxFxdaCxDaDahbadeche其中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文件,也有第三方终端配置工具提供。