重要提示:这是开发文档, 如果您是从发布版本安装的,请查看标签中的文档。
当前最新发布版本是:v1.1.2
这个项目是对 GNU ls
的重写,增加了许多新功能,如颜色、图标、树状视图、更多格式化选项等。
该项目深受超级 colorls 项目的启发。
安装 powerline nerd-font 和/或 font-awesome 的补丁字体。查看 Nerd Font README 获取更多安装说明。别忘了设置你的终端以使用正确的字体。
操作系统/发行版 | 命令 |
---|---|
Archlinux | pacman -S lsd |
Fedora | dnf install lsd |
Gentoo | sudo emerge sys-apps/lsd |
macOS | brew install lsd 或 sudo port install lsd |
NixOS | nix-env -iA nixos.lsd |
FreeBSD | pkg install lsd |
NetBSD 或任何 pkgsrc 平台 | pkgin install lsd 或 cd /usr/pkgsrc/sysutils/lsd && make install |
OpenBSD | pkg_add lsd |
Windows | scoop install lsd 或 winget install --id lsd-rs.lsd 或 choco install lsd |
Android (通过 Termux) | pkg install lsd |
Debian sid 和 bookworm | apt install lsd |
Ubuntu 23.04 (Lunar Lobster) | apt install lsd |
早期 Ubuntu/Debian 版本 | snap 已停用,使用从二进制文件安装 |
Solus | eopkg it lsd |
Void Linux | sudo xbps-install lsd |
openSUSE | sudo zypper install lsd |
使用 Rust 的包管理器 cargo,你可以通过以下方式安装 lsd:
cargo install lsd
如果你想安装最新的 master 分支提交:
cargo install --git https://github.com/lsd-rs/lsd.git --branch master
发布页面 包含每个发布版本的 Linux、macOS 和 Windows 预编译二进制文件。你也可以从 GitHub action 构建产物 获取 master
分支的最新二进制文件(选择顶部的 action 并滚动到产物部分)。
lsd
可以通过配置文件设置默认选项。
查看配置文件内容了解详情。
在非 Windows 系统上,lsd
遵循
XDG 基本目录规范
关于配置文件位置的约定。将按以下顺序搜索 config.yaml
或 config.yml
文件:
$HOME/.config/lsd
$XDG_CONFIG_HOME/lsd
在大多数系统上,这些路径映射到同一位置,即 ~/.config/lsd/config.yaml
。
在 Windows 系统上,lsd
按以下顺序搜索 config.yaml
或 config.yml
:
%USERPROFILE%\.config\lsd
%APPDATA%\lsd
这些通常分别是 C:\Users\username\AppData\Roaming\lsd\config.yaml
和 C:\Users\username\.config\lsd\config.yaml
。
你也可以从非标准位置提供配置文件:
lsd --config-file [路径]
</details> # == 递归 == recursion: # 是否启用递归。 # 可能的值: false, true enabled: false # 递归深度。必须为正整数。不指定则为(实质上的)无限。 # depth: 3# == 经典模式 == # 这是一个快捷方式,用于覆盖一些选项以向后兼容 `ls`。 # 它影响 "color"->"when"、"sorting"->"dir-grouping"、"date" 和 "icons"->"when" 选项。 # 可能的值:false、true classic: false # == 块 == # 这指定了使用长格式和树状布局时的列及其顺序。 # 可能的值:permission、user、group、context、size、date、name、inode、links、git blocks: - permission - user - group - size - date - name # == 颜色 == # 这有各种颜色选项。(未来将会扩展。) color: # 何时为输出着色。 # 当 "classic" 设置时,此项设为 "never"。 # 可能的值:never、auto、always when: auto # 如何为输出着色。 # 当 "classic" 设置时,此项设为 "no-color"。 # 可能的值:default、custom # 当设为 "custom" 时,lsd 将在配置目录中查找 `colors.yaml`。 theme: default # == 日期 == # 这指定日期列的日期格式。自由格式接受类似 strftime 的字符串。 # 当 "classic" 设置时,此项设为 "date"。 # 可能的值:date、locale、relative、'+<日期格式>' # `日期格式` 将是一个 `strftime` 格式的值。例如 `date: '+%d %b %y %X'` 将给你这样的日期:17 Jun 21 20:14:55 date: date # == 解引用 == # 是否解引用符号链接。 # 可能的值:false、true dereference: false # == 显示 == # 显示哪些项目。不指定此项以使用默认行为。 # 可能的值:all、almost-all、directory-only # display: all # == 图标 == icons: # 何时使用图标。 # 当 "classic" 设置时,此项设为 "never"。 # 可能的值:always、auto、never when: auto # 使用哪种图标主题。 # 可能的值:fancy、unicode theme: fancy # 图标和名称之间的分隔符 # 默认为 1 个空格 separator: " " # == 忽略 Globs == # 列出时要忽略的 glob 列表。 # ignore-globs: # - .git # == 指示符 == # 是否为某些列出的文件添加指示符字符。 # 可能的值:false、true indicators: false # == 布局 == # 使用哪种布局。这里的 "oneline" 可能有点令人困惑,应该称为 "one-per-line"。 # 未来可能会改变。 # 可能的值:grid、tree、oneline layout: grid
size: default
sorting:
column: name
reverse: false
dir-grouping: none
no-symlink: false
total-size: false
hyperlink: never
symlink-arrow: ⇒
header: false
literal: false
truncate-owner:
after:
marker: ""
## 主题
`lsd` 可以通过主题文件配置颜色或图标。
### 颜色主题
颜色主题可以在[配置文件](#configuration)(color.theme)中设置。
有效的主题配置为:
- `default`: `lsd` 默认自带的配色方案
- `custom`: 使用在 `colors.yaml` 中定义的自定义配色方案
- *(已弃用) 主题文件名(yaml): 使用主题文件指定颜色(不包含 `yaml` 扩展名)*
当设置为 `custom` 时,`lsd` 将在 XDG 基本目录中查找 `colors.yaml`,例如 ~/.config/lsd/colors.yaml
当配置为 `主题文件名`(一个 `yaml` 文件)时,`lsd` 将按以下方式查找主题文件:
- 相对名称: 检查 XDG 基本目录,例如 ~/.config/lsd/themes/<主题文件名>.yaml
- 绝对名称: 使用文件路径和名称查找主题文件
查看[颜色主题文件内容](#color-theme-file-content)了解详情。
#### 颜色主题文件内容
主题文件使用 [crossterm](https://crates.io/crates/crossterm) 来配置颜色,请查看 [crossterm](https://docs.rs/crossterm/0.20.0/crossterm/style/enum.Color.html) 了解支持的颜色。
颜色表: https://upload.wikipedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg
请注意,颜色值会忽略大小写,小写和大写都支持。
这是 `lsd` 默认自带的主题方案。
```yaml
user: 230
group: 187
permission:
read: dark_green
write: dark_yellow
exec: dark_red
exec-sticky: 5
no-access: 245
octal: 6
acl: dark_cyan
context: cyan
date:
hour-old: 40
day-old: 42
older: 36
size:
none: 245
small: 229
medium: 216
large: 172
inode:
valid: 13
invalid: 245
links:
valid: 13
invalid: 245
tree-edge: 245
git-status:
default: 245
unmodified: 245
ignored: 245
new-in-index: dark_green
new-in-workdir: dark_green
typechange: dark_yellow
deleted: dark_red
renamed: dark_green
modified: dark_yellow
conflicted: dark_red
创建 lsd
的主题时,你可以指定默认主题的任何部分,然后更改其颜色,未指定的项目将使用默认颜色。
图标主题可以在固定位置配置,$XDG_CONFIG_DIR/lsd/icons.yaml
,
例如,在 macOS 上是 ~/.config/lsd/icons.yaml
,
请查看配置文件位置以确定 $XDG_CONFIG_DIR
的位置。
如文件名所示,图标主题文件是一个 yaml
文件。
查看图标主题文件内容了解详情。
lsd
支持 3 种图标覆盖方式,按 name
、按 filetype
和按 extension
。
最终使用的图标集将是 lsd
自带的图标与配置中的覆盖组合而成。
你可以在这里找到默认的图标集。
图标可以使用 nerd font 字形和 Unicode 表情符号。以下是图标自定义的示例。
name: .trash: .cargo: .emacs.d: a.out: extension: go: hs: rs: 🦀 filetype: dir: 📂 file: 📄 pipe: 📩 socket: executable: symlink-dir: symlink-file: device-char: device-block: special:
为你的终端启用 nerd fonts,以 URxvt 为例,在 .Xresources
中:
URxvt*font: xft:Hack Nerd Font:style=Regular:size=11
要在输入 ls
命令时使用 lsd,你需要在 shell 配置文件(~/.bashrc, ~/.zshrc 等)中添加以下内容:
alias ls='lsd'
一些其他有用的别名示例:
alias l='ls -l' alias la='ls -a' alias lla='ls -la' alias lt='ls --tree'
从 Debian 12
和 Ubuntu 21.10
开始支持 Zst 压缩,
请使用从 lsd v1.1.0
开始发布的 _xz.deb
。
详情或手动修复请查看 https://github.com/lsd-rs/lsd/issues/891。
目前对于 lsd
,它读取一个名为 LS_COLORS 的系统环境变量。请查看这个帖子中标记的解决方案,其中包含如何设置颜色方案的指南。
为了让 lsd
能够显示图标,字体必须包含特殊的字体字形。对于大多数下载的字体来说,可能并非如此。幸运的是,你可以使用 NerdFont 修补大多数字体并添加这些图标。或者你可以直接从 NerdFont 字体下载页面 下载已修补版本的你喜欢的字体。
这里有一个在 macOS 和 Android 上设置字体的指南。
要检查你使用的字体是否正确设置,请尝试在 shell 中运行以下代码片段,看看是否打印出文件夹图标。如果打印出方框、问号或其他内容,那么你在设置字体或终端模拟器渲染字体方面可能存在一些问题。
echo $'\uf115'
首先,确保已安装修补过的字体,并且 PuTTY/KiTTY 已配置使用该字体,请查看先决条件。
PuTTY/KiTTY 在显示 2 个字符宽度的图标时存在问题,请确保使用 1 个字符宽度的字体,如 Hack Regular Nerd Font Complete Mono Windows Compatible,详情请查看此问题。
你可以使用 LS_COLORS
自定义文件类型颜色,并使用主题自定义其他颜色。
默认颜色如下:
用户/组 | 权限 | 文件类型(根据终端配色方案变化) | 日期 | 文件大小 |
---|---|---|---|---|
查看 trapd00r/LS_COLORS 和 sharkdp/vivid 以获取使用 LS_COLORS
进行主题设置的帮助。
Konsole 的解决方法:编辑配置文件(如果不存在则创建它),并粘贴以下内容(包含不可见的 Unicode 字符):
icons: separator: " ㅤ"
这是一些终端模拟器中的已知问题。尝试使用其他终端模拟器,如 Alacritty 和 Kitty,它们是非常好的替代选择。你可能还需要检查是否是你的字体导致了这个问题。 要验证这一点,请尝试禁用图标运行 lsd,如果仍然没有第一个字符,那么这是 lsd 的 bug:
lsd --icon never --ignore-config
lsd
将尝试显示文件名中的 UTF-8 字符,使用 U+FFFD 替换字符
(�) 来表示无效的 UTF-8 字符。
Nerd Fonts 在 3.0 版本中移动了 Material Design 图标的代码点,因此 lsd 在 #830 中更新了图标。如果你的图标看起来很奇怪,请使用 Nerd Fonts v2.3.0 或更高版本修补的字体。
另请参阅:https://github.com/ryanoasis/nerd-fonts/releases/tag/v2.3.3
每个人都可以为这个项目做出贡献,改进代码或添加功能。如果有人想要添加什么,我们会尽力去做。
由于这个项目正在定期更新,在创建拉取请求之前,请不要忘记重新基于最新的主分支。
特别感谢:
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号