为什么 Oh My ZSH 这么酷?
听完这几个字母前后,有一个词:ZSH。你可能会想:我以前怎么没听说过这个?哎呀!
ZSH (Z Shell) 是一场真正的革新,它用简单的解决方案实现了终端的现代化。但当你发现Oh My ZSH! ——一个能够提升你的生产力并改善你的工作流程的 ZSH 框架时,情况会变得更好。
那么,为什么呢?
- 不再需要cd(更改目录)命令。只需使用:
| 命令 | 结果 | 
|---|---|
| folder/ | /在末尾写上文件夹名称 | 
| .. | 返回一个文件夹(父目录) | 
| ... | 返回两个文件夹(从父目录返回父目录) | 
| ...... | 返回五个文件夹 | 
| / | 转到根目录 | 
| ~ | 回家 | 
| - | 跳转到上一个路径 | 
- 
  递归路径扩展。 /u/lo/b扩展为/user/local/bin
- 
  拼写纠正和近似完成,在输入目录名称时出现小错误时自动纠正 
- 
  take3 in 1 命令,创建目录并自动更改其路径
| 命令 | 结果 | 
|---|---|
| take <url_file> | 下载 gzip 文件( .gz、.bz2、.xz)并解压缩 | 
| take <git_repo> | 从 URL 克隆 git repo ( http,ssh) | 
| take <folder> | 创建新文件夹 | 
- 
  zsh_stats将为您提供前 20 条命令的列表以及它们运行的次数
- 
  Tab 补全是另一个很棒的功能。例如,输入 ls -并按下 Tab 键,TAB即可列出所有命令选项,以及它们的作用描述。
- 
  别名命令。例如,使用 列出所有 alias或使用 过滤所有grepalias | grep git
- 
  通配符 
| 命令 | 结果 | 
|---|---|
| ls *.txt | 列出 txt当前目录中的所有文件 | 
| ls **/*.txt | 列出所有 txt文件,包括子目录 | 
| ls **/(READ)*.* | 查找以单词开头的文件 READ | 
| ls **/*(READ).* | 查找以单词结尾的文件 READ | 
| ls **/*(READ)*.* | 查找包含单词 READ任意位置的文件 | 
| ls **/*(.) | 仅搜索文件 | 
| ls **/*(/) | 仅搜索文件夹 | 
- 扩展文件名和目录
| 命令 | 结果 | 
|---|---|
| touch name-{1..4}.txt | 创建文件 name-1.txt,,,name-2.txtname-3.txtname-4.txt | 
| touch name.{css,js,test.js} | 创建具有不同扩展名的文件 name.css,,name.jsname.test.js | 
| cp folder/name.js{,.bak} | 创建文件结尾的副本 .bak | 
| diff folder/{new,old}/name.js | 查看两个文件之间的差异 | 
| mkdir -p {source,build,man,help{/pages,/yelp,/images}} | 创建完整的文件夹结构 | 
| wget http://site.com/folder{1,2}/pic{001,002}.jpg | 下载多个文件 | 
- 
  展开环境变量, $ENV然后TAB
- 
  展开 kill命令,然后TAB
- 
  历史子字符串搜索编写命令并按向上箭头循环以前的用法 
- 
  自动完成,使用 Tab 键在选项之间跳转,并按回车键进行选择。适用于目录、文件和命令 
- 
  运行 history 命令, !后跟历史记录中的数字,例如!137
- 
  输入后 !!会显示最后一条命令。如果命令因为需要管理员权限而失败,这很方便。在这种情况下,您可以输入sudo !!
插件
有很多插件可供使用。建议您仔细研究所有选项,并选择最适合您需求的插件。
我的建议是:
- sudo只需按两次 esc 即可轻松在当前或之前的命令前添加 sudo
- command-not-found在找不到命令时提供建议安装的软件包
- extract提取您传递的存档文件,它支持多种存档文件类型
- git提供了很多别名和一些有用的函数
- history-substring-search是 Fish shell 历史搜索功能的洁净室实现,您可以在其中输入历史记录中任何命令的任何部分,然后按选定的键(例如向上和向下箭头)来循环查看匹配项
- 网络搜索添加了使用 Google、Wiki、Bing、YouTube 和其他流行服务进行搜索的别名
- z命令可以跟踪您最常访问的目录,并允许您通过很少的按键访问它们
我还有来自外部存储库的插件来添加更多功能:
- 自动建议会根据历史记录和完成情况在您输入时建议命令。
- 语法高亮:类似 Fish shell 的 ZSH 语法高亮
- ohmyzsh-full-autoupdate自动更新自定义插件和主题 Oh My Zsh
主题
还有很多主题,但我最喜欢的是Powerlevel10k,因为它易于设置和使用
Git
令人难以置信且完整的 Git 别名
Git 状态提示可以包含以下内容:
| 部分 | 意义 | 
|---|---|
| master | 当前分支 | 
| #v1 | HEAD 带有标签 v1;在分支上时不显示 | 
| @5fc6fca4 | 当前提交;在分支或标签上时不显示 | 
| ⇣1 | 本地分支比远程分支落后 1 个提交 | 
| ⇡2 | 本地分支比远程分支领先 2 次提交 | 
| ⇠3 | 本地分支比远程推送落后 3 个提交 | 
| ⇢4 | 本地分支比远程推送提前了 4 个提交 | 
| *5 | 有 5 个藏匿处 | 
| merge | 合并正在进行中(可能是其他操作) | 
| ~6 | 有 6 个合并冲突 | 
| +7 | 共有 7 个阶段性变化 | 
| !8 | 有 8 个未暂存的更改 | 
| ?9 | 有 9 个未跟踪的文件 | 
快捷方式
编辑长命令
ctrl+x+e在编辑器上打开命令以轻松编辑,一旦保存并关闭编辑器,它将在终端上更新
你可以设置你喜欢的编辑器,例如运行export EDITOR="code -w"使用 VSCode
停放命令
ctrl+q“停放” 当前正在输入的命令,并返回到提示符,以便您重新开始并输入另一个命令。一旦运行该命令,原始命令将取消停放并重新填充命令行,以便您继续。
如果您忘记在执行命令之前执行某个命令,那么这个功能非常有用。
显示别名
ctrl+x a将别名转换为真实命令
路径历史
ZSH 保留您访问过的目录的历史记录,以便您可以快速切换到其中的任何一个。
要查看列表,请键入dirs -v。通过键入 切换到此列表中的任意目录,~#其中#是列表中目录的编号。
钩子
您可以使用 ZSH Hooks 个性化操作(命令之前和之后)
好了,各位!祝您
编程愉快🖖
文章来源:https://dev.to/equiman/why-oh-my-zsh-is-so-cool-31gd来源
 后端开发教程 - Java、Spring Boot 实战 - msg200.com
            后端开发教程 - Java、Spring Boot 实战 - msg200.com
          

 
   
   
  