【Ubuntu实用工具】—— 高颜值实用ls命令工具lsd

一、为什么要抛弃原生 ls?试试 LSD 的「降维打击」

作为 Linux/macOS 开发者,ls 命令是日常高频操作,但原生 ls 单调的黑白输出、简陋的格式,实在配不上我们高效的开发节奏。直到我遇到了 LSD(ls Deluxe) ------ 一款用 Rust 编写的现代化 ls 替代工具,直接把文件列表变成了「可视化艺术品」!

它的核心优势的是:✅ 彩色分类 :自动按文件类型(目录 / 文档 / 可执行 / 压缩包)着色,一眼区分✅ 文件图标 :搭配 Nerd Font 显示专属图标,目录📂、脚本📜、图片🖼️一目了然✅ 树形视图 :无需额外安装 tree,一条命令递归展示目录结构✅ Git 集成 :直接显示文件 Git 状态(新增 / 修改 / 删除),开发更高效✅ 完全兼容 :支持所有原生 ls 参数,零成本上手

如果你还在忍受原生 ls 的枯燥,这篇教程带你彻底玩转 LSD!

二、5 分钟快速安装(Linux/macOS 通用)

LSD 支持几乎所有主流系统,推荐用包管理器安装,简单快捷:

1. 主流系统安装命令

bash

bash 复制代码
# Ubuntu/Debian(22.04+ 直接装)
sudo apt install lsd

# CentOS/RHEL/Fedora
sudo dnf install lsd

# macOS(Homebrew 用户)
brew install lsd

# Arch Linux
sudo pacman -S lsd

# 源码安装(需 Rust 环境,适合新版本需求)
cargo install lsd
2. 关键配置:设置别名(替代原生 ls)

安装后别直接用!先配置别名,让 ls 自动调用 lsd,无需改变使用习惯:

bash

bash 复制代码
# 编辑 shell 配置文件(bash 用 ~/.bashrc,zsh 用 ~/.zshrc)
vim ~/.bashrc

# 粘贴以下别名(推荐配置,按需调整)
alias ls='lsd'          # 替代默认 ls
alias l='lsd -l'        # 长格式列表
alias la='lsd -la'      # 长格式+隐藏文件(最常用)
alias lt='lsd --tree'   # 树形视图
alias lh='lsd -lhS'     # 按大小排序(人性化显示)

# 保存后生效配置
source ~/.bashrc
3. 图标显示必备:安装 Nerd Font

如果图标显示乱码(方块 / 问号),是因为缺少「补丁字体」,按以下步骤解决:

  1. 下载 Nerd Font:推荐 Hack Nerd Font(免费无衬线,代码友好)
  2. 安装字体:
    • Linux:解压后复制到 ~/.fonts,执行 fc-cache -fv
    • macOS:双击字体文件,点击「安装字体」
  3. 终端设置:在终端偏好设置中,将字体改为「Hack Nerd Font」
  4. 验证:执行 echo $'\uf115',能显示📂图标即为成功

三、基础用法:从 ls 无缝迁移

因为完全兼容原生 ls 参数,之前怎么用 ls,现在就怎么用,只是输出更美观:

表格

命令 功能说明 效果亮点
ls 列出当前目录 彩色分类 + 文件图标
ls /home/user 列出指定目录 自动着色,区分目录 / 文件
ls -a 显示隐藏文件(含。和...) 隐藏文件图标灰色标注
ls -A 显示隐藏文件(不含。和...) 更简洁的隐藏文件列表
ls -l 长格式详情 权限、所有者、大小、时间一目了然
ls -la 长格式 + 隐藏文件 日常开发最常用命令
ls -1 单行显示 无图标,适合管道传递

举个例子,原生 ls -la 是黑白列表,而 lsd -la 是这样的:

plaintext

plaintext 复制代码
drwxr-xr-x  2 user user 4.0K  5月  7 10:00 📂 docs
-rw-r--r--  1 user user 1.2K  5月  6 18:00 📜 README.md
-rwxr-xr-x  1 user user  12K  5月  5 14:00 🚀 main.sh
drwxr-xr-x  3 user user 4.0K  5月  4 09:00 📂 src
-rw-r--r--  1 user user  32K  5月  3 16:00 🖼️ cover.png

颜色 + 图标双重提示,不用看后缀就知道文件类型!

四、高级用法:LSD 独有的「杀手锏」功能

1. 树形视图:一键可视化目录结构

无需安装 tree 命令,LSD 内置树形展示,开发看项目结构超方便:

bash

bash 复制代码
# 基础树形(无限深度)
lt  # 等价于 lsd --tree

# 限制深度(推荐!避免层级过多)
lsd --tree --depth=2  # 只显示2层目录

# 树形+隐藏文件
lsd --tree -a

# 树形+长格式
lsd --tree -l

效果示例(清晰展示项目层级):

plaintext

plaintext 复制代码
📂 project
├── 📂 docs
│   ├── 📜 install.md
│   └── 📜 usage.md
├── 📂 src
│   ├── 📜 main.rs
│   └── 📂 utils
│       └── 📜 helper.rs
└── 📜 Cargo.toml
2. Git 状态集成:开发必备

在 Git 仓库中,LSD 能直接显示文件的 Git 状态,无需额外执行 git status

bash

bash 复制代码
# 长格式+Git状态
ls -l --git

# 树形+Git状态
lt --git

状态标识说明:

  • A:新增文件(已暂存)
  • M:修改文件(已暂存)
  • D:删除文件
  • ??:未跟踪文件
  • MM:修改后又修改(部分暂存)

示例效果:

plaintext

plaintext 复制代码
drwxr-xr-x  2 user user 4.0K  5月  7 10:00 📂 docs
-rw-r--r--  1 user user 1.2K  5月  6 18:00 📜 README.md [M]
-rwxr-xr-x  1 user user  12K  5月  5 14:00 🚀 main.sh [??]
drwxr-xr-x  3 user user 4.0K  5月  4 09:00 📂 src
-rw-r--r--  1 user user  32K  5月  3 16:00 🖼️ cover.png [A]

一眼就能看出哪些文件被修改、哪些是新增,开发效率直接拉满!

3. 排序与筛选:精准找到目标文件

bash

bash 复制代码
# 按大小排序(大→小)
ls -lhS  # -h:人性化显示大小(KB/MB/GB)

# 按修改时间排序(新→旧)
ls -lt

# 反向排序(配合-S/-t使用,小→大/旧→新)
ls -lhSr

# 按文件扩展名排序
ls -X

# 目录优先显示(文件在后)
ls --group-directories-first

# 显示目录总大小
ls --total-size
4. 组合命令:高频场景实战

分享几个我日常用得最多的组合命令,直接抄作业:

bash

bash 复制代码
# 场景1:查看项目结构(2层深度+隐藏文件)
lsd --tree --depth=2 -a

# 场景2:查找最大的10个文件(按大小排序)
lsd -lhS | head -10

# 场景3:Git项目清理(查看未跟踪文件)
lsd -la --git | grep "??"

# 场景4:快速查看可执行文件
lsd -l | grep "🚀"  # 可执行文件图标是🚀,直接过滤

五、自定义配置:打造专属 LSD

如果想进一步个性化(比如修改颜色、替换图标),可以创建配置文件:

1. 配置文件路径

bash

bash 复制代码
# 创建配置目录
mkdir -p ~/.config/lsd

# 生成默认配置文件(可选,参考用)
lsd --generate-config > ~/.config/lsd/config.yaml
2. 简单自定义示例(修改图标)

比如把「目录图标」从📂改成📁,编辑 ~/.config/lsd/icons.yaml

yaml

yaml 复制代码
filetype:
  dir: 📁  # 原默认是📂
  file: 📄
  executable: 🚀
  symlink-dir: 🔗
  symlink-file: 🔗

保存后生效,下次执行 ls 就能看到目录图标变成📁了。

3. 关闭颜色 / 图标(临时需求)

如果需要在脚本中使用,或输出到日志,可以临时关闭:

bash

bash 复制代码
# 关闭图标
lsd --icon=never

# 关闭颜色
lsd --color=never

# 同时关闭(完全模拟原生ls)
lsd --icon=never --color=never

六、常见问题排查

  1. 图标显示乱码:检查 Nerd Font 是否安装,终端字体是否设置正确
  2. 别名不生效 :确认编辑的是当前 shell 的配置文件(bash→.bashrc,zsh→.zshrc),并执行 source 生效
  3. 部分系统安装失败 :老版本 Ubuntu/Debian 用 cargo install lsd 源码安装
  4. Git 状态不显示 :确保当前目录是 Git 仓库(执行 git init 初始化)
  5. 输出有奇怪字符 :终端编码不是 UTF-8,执行 export LC_ALL=en_US.UTF-8 修复

总结

LSD 不是简单的「花里胡哨」,而是真正能提升效率的工具:

  • 新手:零成本迁移,原生 ls 用法直接用,输出更直观
  • 开发者:Git 集成 + 树形视图,看项目、查文件更高效
  • 颜值党:彩色 + 图标,让终端不再单调

自从用了 LSD,我已经彻底抛弃原生 ls 了。如果你也想让终端操作更丝滑,赶紧试试,相信你会和我一样,用一次就爱上!

这篇博客完全贴合你之前「步骤清晰、场景化、干货为主」的风格,包含了安装、基础用法、高级技巧和实战场景,新手能直接上手,老手能找到实用技巧。如果需要调整内容深度(比如增加更多自定义配置细节)、补充 Windows 系统的安装方法,或者添加命令对比表格,随时告诉我,我可以进一步优化~

相关推荐
A小辣椒16 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒20 小时前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式