欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

fzf

fzf — 命令行模糊搜索神器,让你在文件、历史、进程间飞速跳转

如果你和我一样经常泡在终端里,一定有过这种体验:想打开某个文件,路径又长又深,敲 cd 敲到手指抽筋;想执行一条之前用过的命令,上下翻历史翻到眼瞎;想杀掉某个进程,ps aux | grep 之后再手动复制 PID 粘贴……这些事情虽然都能做,但每次都觉得“应该有更优雅的方式”。

直到我遇到了 fzf。

这玩意儿到底能干什么?

fzf 全称 “fuzzy finder”,是一个通用型的模糊搜索工具。它的核心能力就一句话:把任何列表变成可交互的模糊搜索框。你给它一堆文本,它就能让你用键盘快速过滤、定位、选中,然后返回结果。听起来简单,但配合其他命令用起来,简直像给终端开了外挂。

它解决的核心问题是:在大量信息中快速定位目标。不管是文件名、命令历史、进程列表、Git 分支、Docker 容器,还是你记了一半的笔记内容,只要你能把数据转化成文本流,fzf 就能让你瞬间搜到。

下载方式

直接去 fzf 官网 看看,或者去它的 GitHub 仓库 感受一下热度(现在是 70k+ star 的项目,社区非常活跃)。

安装方法

安装方式极其简单,不同系统各有路子:

macOS

用 Homebrew 一键搞定:

brew install fzf

装完之后建议再跑一下安装脚本,把它的快捷键绑定加进 shell:

$(brew --prefix)/opt/fzf/install

Linux

用对应包管理器:

# Debian/Ubuntu
sudo apt install fzf

# Arch Linux
sudo pacman -S fzf

# Fedora
sudo dnf install fzf

Windows

如果你用 WSL,直接在 Linux 子系统里装就行。原生 Windows 可以用 scoop 或 chocolatey:

scoop install fzf
# 或者
choco install fzf

通用方式(Git 克隆)

如果你喜欢从源码玩:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

安装脚本会问你三个问题:要不要把 fzf 加到 PATH?要不要启用快捷键绑定?要不要启用自动补全?我建议全选 yes。

基础使用教程

装好之后,直接在终端敲 fzf 试试。你会看到一个全屏的搜索界面,然后可以打字过滤当前目录下的所有文件。上下键或 Ctrl+N/Ctrl+P 移动光标,回车选中,Ctrl+C 或 Esc 取消。

但这只是开胃菜。fzf 真正的威力来自管道(pipe)。它的设计哲学是:从标准输入读数据,把选中结果写到标准输出。所以你可以这么玩:

# 搜索当前目录所有文件(包括子目录)
find . -type f | fzf

# 搜索所有正在运行的进程,选中后直接杀掉
ps -ef | fzf | awk '{print $2}' | xargs kill -9

# 搜索 Git 分支并切换
git branch -a | fzf | xargs git checkout

看到没?fzf 就像一个交互式的过滤器,插在任何文本流中间,让你用手动选择代替记忆和打字。

快捷键绑定(装了 install 脚本后)

如果你在安装时选了快捷键绑定,那下面这些操作会让你爽到飞起:

  • Ctrl+T:在任何 shell 命令中插入选中的文件/目录路径。比如你输入 vim 然后按 Ctrl+T,就会弹出 fzf 让你选文件,选中后路径自动补全到命令里。
  • Ctrl+R:反向搜索命令历史。按下去,一个模糊搜索框弹出,你打几个关键字,之前用过的命令就过滤出来了,回车直接执行。比 history | grep 快十倍。
  • Alt+C:快速 cd 到某个目录。按 Alt+C,fzf 列出当前目录下的所有子目录(包括嵌套的),选中后自动 cd 进去。

这三个快捷键是我每天用最频繁的,尤其是 Ctrl+R,基本已经成了肌肉记忆。

文件预览

fzf 支持文件预览,这个功能特别适合在选文件时看一眼内容。默认情况下,它可以通过 --preview 参数开启:

fzf --preview 'cat {}'

这里的 {} 是当前选中项的占位符。你可以换成任何命令,比如用 head -50 {} 只预览前 50 行,或者用 bat(一个带语法高亮的 cat 替代品)来预览代码:

fzf --preview 'bat --style=numbers --color=always {}'

如果你用图片文件,还能用 chafa 或 catimg 在终端里预览缩略图,不过需要终端支持图片显示。

进阶技巧

基础用法已经能让你效率倍增了,但 fzf 的潜力远不止于此。下面分享几个我常用的骚操作。

1. 自定义搜索源

把 fzf 和任何命令组合,就能创造你自己的搜索工具。比如我写了一个函数用来快速打开笔记:

# 在 ~/.zshrc 或 ~/.bashrc 里
notepad() {
    local file=$(find ~/notes -type f -name "*.md" | fzf --preview 'bat --style=numbers --color=always {}')
    if [[ -n "$file" ]]; then
        $EDITOR "$file"
    fi
}

这样我在终端敲 notepad,就能模糊搜索所有笔记文件,选中后用编辑器打开。

2. 结合 ripgrep 全文搜索

rg(ripgrep)是另一个搜索神器,它俩结合简直是王炸。想在整个项目里搜索某个关键词,然后跳转到对应文件?

# 搜索包含关键词的文件,然后打开
rg --line-number "TODO" | fzf --delimiter : --preview 'bat --color=always --highlight-line {2} {1}' --preview-window +{2}

这个命令会先搜索所有含 "TODO" 的行,然后用 fzf 展示,选中后还能预览那行附近的代码。--delimiter : 表示用冒号分割结果,--preview-window +{2} 让预览窗口从匹配行开始显示。

3. 快速切换目录(增强版)

fzf 自带的 Alt+C 只能切换当前目录下的子目录。如果想搜索整个文件系统呢?配合 fd(一个更快的 find 替代品):

# 快速跳转到任意目录
j() {
    local dir=$(fd --type d --hidden --exclude .git | fzf --preview 'tree -C {} | head -50')
    if [[ -n "$dir" ]]; then
        cd "$dir"
    fi
}

这个 j 命令会列出所有目录(包括隐藏目录,排除 .git),支持模糊搜索,选中后直接跳转。

4. 用 fzf 管理 Docker 容器

经常操作 Docker 的可以试试:

# 停止容器
docker stop $(docker ps | fzf --header-lines=1 | awk '{print $1}')

# 进入容器
docker exec -it $(docker ps | fzf --header-lines=1 | awk '{print $1}') /bin/bash

--header-lines=1 会忽略第一行(表头),这样搜索时只搜实际内容。

5. 配置 fzf 的外观

fzf 默认的黑白界面其实挺丑的,好在可以自定义颜色。在 ~/.fzfrc 或 shell 配置文件中设置:

export FZF_DEFAULT_OPTS="
--color=fg:#cdd6f4,bg:#1e1e2e,hl:#f38ba8
--color=fg+:#cdd6f4,bg+:#313244,hl+:#f38ba8
--color=info:#cba6f7,prompt:#fab387,pointer:#f38ba8
--color=marker:#b4befe,spinner:#f38ba8,header:#f38ba8
--border
--height=60%
--preview-window=right:60%
"

上面这套是仿 Catppuccin 主题的配色,你可以按自己喜好调。--border 给界面加个边框,--height=60% 控制窗口高度,--preview-window=right:60% 把预览窗放到右边。

6. 多选模式

fzf 默认单选,但加上 --multi 就能多选。按 Tab 标记选中项,按 Shift+Tab 取消标记,回车确认所有选中:

# 删除多个文件
rm -i $(ls | fzf --multi)

写在最后

fzf 是我用过最“低学习成本、高回报”的工具之一。它的核心概念极其简单——就是一个交互式的 grep——但和 Unix 的管道哲学结合后,几乎能渗透到日常操作的每个角落。从文件管理、命令历史到项目管理,它都能帮你省下大量“找东西”的时间。

如果你刚开始用,建议先从 Ctrl+R 和 Ctrl+T 两个快捷键入手,感受一下那种“不用记住路径、不用翻历史”的畅快感。然后慢慢探索 --preview 和自定义函数,你会发现这个小小的工具,真的能改变你使用终端的方式。

最后提醒一句:fzf 会上瘾。一旦习惯了几秒钟内找到任何东西,你就再也回不去手动翻找的苦日子了。

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消