Skip to content
← 返回文件与文本处理列表
文件与文本处理任务与配置

命令与脚本:其他实用工具 · 读取帮助、搜索与只读查看至生成网站、出版文档与维护源码 ​

返回分篇目录

命令与脚本:其他实用工具 ​

读取帮助、搜索与只读查看 ​

man 查完整手册,ag 搜索代码,view 只读打开文本;正文中已有各自选项。

man · 展示手册分页 (manual page) ​

另请参阅:whatis, apropos。 更多信息:https://manned.org/man。

  • 展示一条命令的使用手册分页:
bash
man {{command}}
  • 在浏览器中打开一条命令的使用手册分页 ($BROWSER 环境变量可以替换 =browser_name):
bash
man {{[-H|--html=]}}{{browser_name}} {{command}}
  • 从第七章节展示一条命令的使用手册分页:
bash
man 7 {{command}}
  • 列表展示一条命令的所有可用章节:
bash
man {{[-f|--whatis]}} {{command}}
  • 展示搜索手册分页的路径:
bash
man {{[-w|--path]}}
  • 展示使用手册分页的位置, 而不是手册分页本身:
bash
man {{[-w|--where]}} {{command}}
  • 使用特定的语言来展示使用手册分页:
bash
man {{[-L|--locale]}} {{locale}} {{command}}
  • 搜索包含搜索字符串的手册页:
bash
man {{[-k|--apropos]}} "{{search_string}}"

ag · The Silver Searcher. 类似 ack, 但是更快 ​

更多信息:https://manned.org/ag。

  • 寻找内容包含"小明"的文件,并列出所在的行数:
bash
ag {{小明}}
  • 在指定目录中寻找内容包含“小明”的文件:
bash
ag {{小明}} {{指定的目录}}
  • 寻找内容包含“小明”的文件,但只列出文件名:
bash
ag -l {{小明}}
  • 忽略大小写,寻找内容包含 "ABC" 的文件,并只输出匹配的内容,而非整行:
bash
ag -i -o {{ABC}}
  • 在文件名包含"小红"的文件中寻找"小明":
bash
ag {{小明}} -G {{小红}}
  • 使用正则表达式来匹配文件内容:
bash
ag '{{^ba(r|z)$}}'
  • 输出文件名包含"小明"的文件名:
bash
ag -g {{小明}}

view · vim 的只读版本 ​

等效于 vim -R。 更多信息:https://www.vim.org/。

  • 打开文件:
bash
view {{file}}

管理 Shell、版本与 Conda 环境 ​

变量展开、条件分支和作业号属于 Shell 语法;asdf 选择工具版本,Conda 激活/退出成对,zinit 管理 Zsh 插件。

$ · 展开 Bash 变量 ​

更多信息:https://gnu.org/software/bash/manual/bash.html#Shell-Variables。

  • 打印变量的值:
bash
echo ${{变量名}}
  • 打印上一个命令的退出状态:
bash
echo $?
  • 打印 0 到 32767 之间的随机数:
bash
echo $RANDOM
  • 打印其中一个提示字符串:
bash
echo ${{PS0|PS1|PS2|PS3|PS4}}
  • 运行 命令 并展开它的输出。与将 命令 括在反引号中相同:
bash
$({{命令}})
  • 列出当前上下文有多少个参数:
bash
echo $#
  • 打印 Bash 数组:
bash
echo ${array[@]}

case · Bash 内置的多重条件语句结构 ​

更多信息:https://www.gnu.org/software/bash/manual/bash.html#index-case。

  • 通过字符串字面量判断执行分支:
bash
case {{$计数规则}} in {{字数}}) {{wc -w README}} ;; {{行数}}) {{wc -l README}} ;; esac
  • 使用 | 组合匹配模式,使用 * 作为默认匹配:
bash
case {{$计数规则}} in {{[wW]|字数}}) {{wc -w README}} ;; {{[lL]|行数}}) {{wc -l README}} ;; *) {{echo "无效输入"}} ;; esac
  • 允许匹配多个模式:
bash
case {{$动物}} in {{猫}}) echo "这是一只猫" ;;& {{猫|狗}}) echo "这是一只猫或狗" ;;& *) echo "其他动物" ;; esac
  • 继续执行下一个模式的命令而不检查模式:
bash
case {{$动物}} in {{猫}}) echo "这是一只猫" ;& {{狗}}) echo "这是一只狗或猫的匹配结果" ;& *) echo "其他动物" ;; esac
  • 显示帮助:
bash
help case

% · 管理作业 ​

更多信息:https://www.gnu.org/software/bash/manual/bash.html#Job-Control-Basics。

  • 将当前作业切换到前台:
bash
%
  • 将上一个作业切换到前台:
bash
%-
  • 将 n 号作业切换到前台:
bash
%{{n}}
  • 将命令以 字符串 开头的作业切换到前台:
bash
%{{字符串}}
  • 将命令包含 字符串 的作业切换到前台:
bash
%?{{字符串}}
  • 恢复一个已暂停的作业:
bash
%{{1}} &

asdf · 可扩展的包版本管理器,支持 Nodejs、Ruby、Elixir 和 Erlang 等 ​

更多信息:https://asdf-vm.com/manage/commands.html。

  • 可用插件清单:
bash
asdf plugin list all
  • 安装插件:
bash
asdf plugin add {{插件名}}
  • 软件包的可用版本清单:
bash
asdf list all {{软件包名}}
  • 安装指定版本的软件包:
bash
asdf install {{软件包名}} {{版本}}
  • 设置软件包的全局安装版本:
bash
asdf set -u {{软件包名}} {{版本}}
  • 设置软件包的本地版本:
bash
asdf set {{软件包名}} {{版本}}
  • 查看软件包当前使用的版本:
bash
asdf current {{软件包名}}

conda activate · 激活一个 conda 环境 ​

另请参阅:conda deactivate。 更多信息:https://docs.conda.io/projects/conda/en/stable/dev-guide/deep-dives/activation.html。

  • 激活现存名为 myenv 的环境:
bash
conda activate myenv
  • 激活位于特定路径的环境:
bash
conda activate {{路径/到/我的环境}}
  • 将 myenv 环境堆积在先前的环境上,让两个环境的程序库/命令/变量都能够被访问:
bash
conda activate --stack myenv
  • 启动干净的 myenv 环境,不执行堆积(先前环境中的程序库/命令/变量将不可访问):
bash
conda activate --no-stack myenv
  • 展示帮助:
bash
conda activate {{[-h|--help]}}

conda deactivate · 取消激活一个 conda 环境 ​

更多信息:https://docs.conda.io/projects/conda/en/latest/commands/deactivate.html。

  • 取消激活一个 conda 环境:
bash
conda deactivate

zinit · 灵活且极其快速的 Zsh 插件管理器 ​

更多信息:https://github.com/zdharma-continuum/zinit。

  • 显示所有已安装的插件:
bash
zinit plugins
  • 进入某个插件的目录:
bash
zinit cd {{仓库所有者}}/{{仓库名称}}
  • 从 GitHub 获取最新版的 zinit:
bash
zinit self-update
  • 列出所有已安装补全的状态:
bash
zinit completions
  • 为某个插件安装补全:
bash
zinit creinstall {{仓库所有者}}/{{仓库名称}}
  • 删除某个插件的补全:
bash
zinit cuninstall {{仓库所有者}}/{{仓库名称}}

生成网站、出版文档与维护源码 ​

博客/网站生成器按框架查阅;quarto 出版技术文档,yapf 格式化 Python,quilt 维护补丁,jetifier 迁移 AndroidX。

hexo · 快速、简洁且高效的博客框架 ​

更多信息:https://hexo.io/docs/commands。

  • 初始化一个网站:
bash
hexo init {{path/to/directory}}
  • 创建一篇新文章:
bash
hexo new {{layout}} {{title}}
  • 构建静态文件:
bash
hexo generate
  • 启动本地服务器:
bash
hexo server
  • 部署网站:
bash
hexo deploy
  • 清理缓存文件(db.json)和生成的文件(public/):
bash
hexo clean

jekyll · 一个简单的、支持博客的静态网站生成器 ​

更多信息:https://jekyllrb.com/docs/usage/。

bash
jekyll serve
  • 启用增量再生成:
bash
jekyll serve --incremental
  • 启用详细输出:
bash
jekyll serve --verbose
  • 将当前目录生成到 ./_site 中:
bash
jekyll build
  • 清理网站(移除网站输出和 cache 目录)而不进行构建:
bash
jekyll clean

jigsaw · 基于 Laravel 的 PHP 静态网站生成器 ​

更多信息:https://jigsaw.tighten.co/。

  • 初始化一个项目:
bash
jigsaw init
  • 使用一个初始模板初始化项目:
bash
jigsaw init {{模板_名称}}
  • 为开发环境构建网站:
bash
jigsaw build
  • 从 "build_local" 目录预览网站:
bash
jigsaw serve
  • 为生产环境构建网站:
bash
jigsaw build production
  • 从 "build_production" 目录预览网站:
bash
jigsaw serve {{build_production}}

yesod · Yesod 是一个基于 Haskell 的网页框架的辅助工具 ​

所有 Yesod 命令都通过 stack 项目管理器来调用。 更多信息:https://github.com/yesodweb/yesod。

  • 在 my-project 目录下创建一个以 SQLite 为后端的新样板网站:
bash
stack new {{my-project}} {{yesod-sqlite}}
  • 在一个 Yesod 样板网站中安装 Yesod CLI 工具:
bash
stack build yesod-bin cabal-install --install-ghc
  • 启动开发服务器:
bash
stack exec -- yesod devel
  • 处理具有更改的 Template Haskell 依赖项的文件:
bash
stack exec -- yesod touch
  • 使用 Keter(Yesod 的部署管理器)部署应用程序:
bash
stack exec -- yesod keter

quarto · 一个基于 Pandoc 的开源科学和技术出版系统 ​

更多信息:https://quarto.org/docs/reference/projects/options.html。

  • 创建一个新项目:
bash
quarto create-project {{路径/到/目录}} --type {{book|default|website}}
  • 创建一个新的博客网站:
bash
quarto create-project {{路径/到/目录}} --type {{website}} --template {{blog}}
  • 将输入文件渲染为不同格式:
bash
quarto render {{路径/到/文件.ext}} --to {{html|pdf|docx}}
  • 渲染并预览文档或网站:
bash
quarto preview {{路径/到/目录 | 路径/到/文件}}
  • 发布文档或项目到 Quarto Pub、Github Pages、RStudio Connect 或 Netlify:
bash
quarto publish {{quarto-pub|gh-pages|connect|netlify}}

yapf · Python 风格指南检查器 ​

更多信息:https://github.com/google/yapf#usage。

  • 显示将要进行的更改的差异,但不实际更改(试运行):
bash
yapf --diff {{路径/到/文件}}
  • 就地格式化文件,并显示更改的差异:
bash
yapf --diff --in-place {{路径/到/文件}}
  • 递归格式化目录中的所有 Python 文件,并发执行:
bash
yapf --recursive --in-place --style {{pep8}} --parallel {{路径/到/目录}}

quilt · 管理一系列的补丁 ​

更多信息:https://manned.org/quilt。

  • 从文件中导入一个已有补丁:
bash
quilt import {{路径/到/文件名.patch}}
  • 创建一个新补丁:
bash
quilt new {{文件名.patch}}
  • 将文件添加到当前补丁:
bash
quilt add {{路径/到/文件}}
  • 编辑文件后,用更改刷新当前补丁:
bash
quilt refresh
  • 应用系列文件中的所有补丁:
bash
quilt push -a
  • 移除所有已应用的补丁:
bash
quilt pop -a

jetifier · 一个以 npm 格式提供的 Jetifier AndroidX 迁移工具,适用于 react-native ​

更多信息:https://github.com/mikehardy/jetifier。

  • 将项目依赖迁移到 AndroidX 格式:
bash
jetifier
  • 将项目依赖从 AndroidX 格式迁移回来:
bash
jetifier reverse

继续阅读