zsh) 加入 .zshrc 文件中,就可以在每次启动 shell 时自动加载自动补全脚本,之后就可以体验到与原生 shell 相同的自动补全功能了。...,即可在你的 CLI 工具中新增 completion 子命令,执行该命令即可生成相应 Shell 的命令自动补全脚本,将其插入或保存到相应 Shell 的指定位置即可实现命令自动补全功能。...进阶用法 上面的这些只是基本用法,完成的只是命令补全的基本功能,但一些定制化的需求是无法实现的。...静态名称补全 静态名称补全比较简单,只要在想要自动补全的子命令中加入 ValidArgs 字段,传入一组包含预期结果的字符串数组即可,代码如下: validArgs []string = { "pod"...当然 Cobra 还不是完美的,比如生成的 Zsh 脚本有些问题,kubectl 和 helm 都是使用将其生成的 Bash 自动补全脚本转化为 Zsh 的自动补全脚本的方式。
Bash功能 Bash(Bourne Again Shell)是许多Linux和Unix系统默认的命令行解释器,具有以下一些主要功能: 脚本编写:Bash是一个功能强大的脚本语言,可以编写自动化任务和脚本程序...命令历史:Bash记录用户执行的命令历史,允许用户浏览和重新执行之前的命令。 内置命令:Bash内置了许多常用的命令和功能,如文件操作、字符串处理、数学运算等。...可定制性对比 ZSH的可定制性 ZSH以其出色的可定制性而闻名。它提供了丰富的配置选项和插件系统,使用户能够根据自己的需求和偏好进行个性化定制。...Bash的生态系统 Bash作为默认的命令行解释器,在生态系统方面也具有强大的支持: 脚本和工具:许多脚本和工具都是为Bash编写的,可以通过它们实现各种自动化和系统管理任务。...Bash具有广泛的支持和生态系统,适用于日常的命令行操作和脚本编写。 无论选择ZSH还是Bash,都需要根据个人需求和偏好来做出决定。
为了获得更精确的结果,使用 for 循环连续启动 zsh 5 次: $ for i in $(seq 1 5); do /usr/bin/time /bin/zsh -i -c exit; done...的启动速度是如此的快,以至于 time 给出了 0.00 的结果。...这里提供一个简单的脚本: #!...lazyload 的方法是声明一个占位函数,当执行这个函数时完成对真实命令的初始化、并移除命令占位。...由于这些不受控制的子进程可能会产生其它子进程、从而导致潜在的巨大开销。
它是 Bourne Shell 的扩展,提供了更多的功能,包括命令历史、自动补全等。 Zsh(Z Shell): Zsh 是一个功能强大的 Shell,提供了许多先进的功能,如模糊匹配、主题定制等。...Shell 通过解释用户输入的命令并将其转化为系统调用,与操作系统内核进行交互。它执行命令并返回结果,同时提供了一些基本的编程结构,如条件语句和循环,以便用户能够编写脚本来完成更复杂的任务。...name="John" echo $name 字符串: 单引号和双引号用于定义字符串,有不同的行为。 single_quoted='Hello, World!'...正则表达式: Shell 支持正则表达式,用于字符串匹配和处理。 文件权限和用户管理: Shell 脚本可以用来管理文件权限和用户账户。 异常处理: 使用 trap 命令来捕获和处理脚本中的异常。...调试技术: 掌握 Shell 脚本调试技术,以便更有效地发现和修复错误。 使用其他 Shell: 了解其他 Shell,如 Zsh 和 Fish,并了解它们的特性和用法。
Bash 为用户提供了运行命令、导航文件系统和运行脚本的能力。用户可以利用命令历史记录、选项卡完成和脚本编写功能等功能来自动执行任务并简化工作流程。...Tcsh 结合了 Csh 的所有功能以及其他改进,例如命令行编辑、作业控制和命令完成。 这两种 shell 在 Unix 世界中都具有影响力,许多用户欣赏它们独特的脚本语法和功能。...Zsh Zsh shell(通常简称为“Zsh”)是一种功能强大的 Unix shell,在程序员和系统管理员中广受欢迎。...Zsh 的突出功能之一是其强大的自动完成功能。与其他 shell 不同,Zsh 的自动完成功能是上下文感知的,可以建议相关命令、文件路径,甚至 Git 分支,使用户体验更流畅、更直观。...此外,Zsh 使用 Oh My Zsh 框架进行高度可定制,用户可以轻松应用主题和插件,从而增强终端环境的美观和功能。 5.
tcsh /bin/zsh Bash Bash 是目前最常用的 Shell。...$SHELL $() 子命令扩展,扩展成另一个命令的运行结果 echo "$(cal)" $((...))...script),会创建一个新的 Shell(这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数)set 命令用来修改 Shell 环境的运行参数,也就是可以定制环境 #!.../usr/bin/env bash set -euxo set -u:遇到不存在的变量就会报错,并停止执行(默认忽略跳过) set -x:在运行结果之前,先输出执行的那一行命令(默认情况下,脚本执行后,...屏幕只显示运行结果,没有其他内容) set -e:使得脚本只要发生错误,就终止执行(彻底解决上述「错误处理」;不适用于管道命令) set -o:只要一个子命令失败,整个管道命令就失败,脚本就会终止执行
McFly试图使用这些额外的信息来提供更多相关的结果。 额外的信息是什么? 首先,McFly在其启发式排名中考虑了以下选项: 在命令之前输入的命令。 你运行该命令的频率。...我只使用了几天,所以我不能给它一个公平的评价,但这种概念——使用额外的信息来定制工具,以适应实际使用——令人充满希望。 ℹ️ 安装 McFly 有许多方法可以安装McFly。...init zsh)" 二进制文件发出初始化脚本,而不是将初始化脚本转储到主目录,这是一种很好的做 法。...它比使用现有的ZSH完成的 “cd TAB TAB ” 导航到文件夹更快。...不需要提供完整的路径,用户就能更改位置,只要提供路径的唯一子字符串,Zoxide就能使用它的使用历史记录来引导到想要的位置。
命令行效率 定制 针对开发者 系统工具 下载与服务 多媒体与文件格式 应用程序 游戏 Shell 包管理 Shell 脚本开发 指南 Awesome Zsh !...ag - 在层级目录中超快的搜索字符串 aliases - 针对 bash 的上下文动态组织别名 aliasme - 用来快速更改目录的 alias 辅助程序 autoenv - 基于目录的环境...,具有自动完成远端路径和异步执行的特性 hstr - Bash 历史建议框 k - k 是一个使目录列表更可读的 Zsh 脚本,它增添了 Git 状态、文件颜色、以及腐朽的日期 k alias -...定制 定制提示符、颜色主题等。...- 彩色的 Bash 提示符及定制的 Git 别名 Gogh - Color Scheme - 适用于 GNOME 终端的颜色主题 liquidprompt - 针对 Bash 和 Zsh 的全功能及用心设计的自适应提示符
命令行效率 定制 针对开发者 系统工具 下载与服务 多媒体与文件格式 应用程序 游戏 Shell 包管理 Shell 脚本开发 指南 Awesome Zsh Awesome Fish 其它 Awesome...ag - 在层级目录中超快的搜索字符串 aliases - 针对 bash 的上下文动态组织别名 aliasme - 用来快速更改目录的 alias 辅助程序 autoenv - 基于目录的环境 autojump...适用于终端的 hstr - Bash 历史建议框 k - k 是一个使目录列表更可读的 Zsh 脚本,它增添了 Git 状态、文件颜色、以及腐朽的日期 k alias - 获得用于单行的酷...Tmux 变得更容易 z - z 是新的 j 定制 定制提示符、颜色主题等。...对于特定的 zsh 工具,参阅 Zsh 节。
/sh 运行时可以伪装成 Bourne shell 可以定制呈现形式的提示符;包括在屏幕右端显示信息,并在键入长命令时自动隐藏 可加载的模块,提供其他各种支持:完整的 TCP 与 Unix 域套接字控制...,FTP 客户端与扩充过的数学函数 完全可定制化 1.3 zsh 与 oh-my-zsh 终极配置 之前是因为看到这篇文章:终极 Shell——Zsh 才选择使用 zsh,被它的自动完成、补全功能吸引了...官网:www.zsh.org 选择 oh-my-zsh, oh-my-zsh 是基于 zsh 的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。.../master/tools/install.sh -O -)" 其本质就是下载并执行了 github 上的 install.sh 脚本, 该脚本位于oh-my-zsh/tools/install.sh...配置主题 oh-my-zsh 集成了大量的主题, 位于 oh-my-zsh/theme 配置主题, 可以通过修改~/.zshrc中的环境变量ZSH_THEME来完成 ZSH_THEME="agnoster
哈哈哈,现在最流行的两个shell:bash shell 和 zsh shell。...-s /bin/zsh export 命令 shell 有“环境变量”和“自定义变量”,环境变量可以在其进程的子进程中继续有效,而自定义变量作用范围无法再子进程中有效。...index STRING SUBSTRING 返回子字符串的起始位置 length STRING 计算字符串的长度。...需要注意的是,在shell脚本中alias别名默认是关闭的,在shell里面执行命令是重新生成一个子进程。所以你可以通过login 选项来设置。 #!...--login shopt expand_aliases shopt -s expand_aliases shopt expand_aliases alias ll exit 0 —login 选项的作用是使脚本的子
安装完成后打开iTerm2,然后安装Oh My Zsh, sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master..., 还可以用 ⌥ + enter 将查找结果输入终端..../shells最后增加如下: /usr/local/bin/zsh 然后运行命令 chsh -s /usr/local/bin/zsh 至此zsh已经安装完成,我们接下来安装Oh My Zsh,它用来管理...安装完成之后,我们启动界面可以自定制window、session、panel等,先看一下界面: ? Tmux相关操作 Prefix-Command前置操作:所有下面介绍的快捷键,都必须以前置操作开始。...如果想删除原来的emacs,可以按照以下步骤做: 1.开机按 cmd+r,选择utilities-》terminal 2.执行 csrutil disable 3.reboot 4.启动后 执行如下脚本
我们可以参考此篇文章 - 如何在 Windows 10 上安装和使用 Zsh[4] 一旦设置完成,我们就可以配置终端应用程序使用 Bash 或 Zsh。...例如:MY_VAR="Front789"echo 特殊变量: $0:当前脚本的文件名。 1, 2, ...:传递给脚本或函数的参数。 $#:传递给脚本或函数的参数数量。 $?...例如: 命令替换: 使用 () 进行命令替换,即执行括号内的命令,并将其输出结果替换到当前命令行。...例如:DATE=(date)echo "Today's date is 参数扩展和子字符串操作: 符号用于参数扩展,允许你对变量进行子字符串操作、默认值替换等。...终端充满了结果,显示ping的返回时间在50-60毫秒之间 与我们之前看到的命令不同,ping 是一个长时间运行的进程。
2021-06-10:一个字符串用最少刀数切出来的子串都是回文串,返回所有划分结果 。 福大大 答案2021-06-10: 此题是前天的每日一题的变种。时间紧,有不对的地方,请指正。...对字符串范围做是否是回文串的dp。dp[i][j]=true是[i,j]范围上是回文串,dp[i][j]依赖左下方。消耗O(N**2)的空间。 再弄个dp2,相当于方法一的递归。...dp2[i]相当于从i的位置切下去。消耗O(N)的空间。 根据dp和dp2,采用递归,就能求出答案。跟前天的每日一题不同的地方,就是这里。 时间复杂度是O(N**2)。空间复杂度是O(N**2)。...s, 0, 1, checkMap, dp, pathp, ansp) } return ans } // s[0....i-1] 存到path里去了 // s[i..j-1]考察的分出来的第一份...getMin(a int, b int) int { if a < b { return a } else { return b } } 执行结果如下
在交互式的使用中,目前很多人都是zsh,因为zsh拥有很强大的提示和插件功能,炫酷吊炸天。...zsh是可以的。...执行并获取返回结果,有点类似JavaScript 的eval函数。 #!/bin/bash dt=`date` #反引号内的字符串会当作shell执行 ,并且返回结果。...,逻辑运算很容易出错 4.7.1、单小括号() 命令组 括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。...$* 以一个单字符串显示所有向脚本传递的参数 $$ 脚本运行的当前进程ID号 $!
2021-06-10:一个字符串用最少刀数切出来的子串都是回文串,返回所有划分结果 。 福大大 答案2021-06-10: 此题是前天的每日一题的变种。时间紧,有不对的地方,请指正。...对字符串范围做是否是回文串的dp。dpi=true是i,j范围上是回文串,dpi依赖左下方。消耗O(N**2)的空间。 再弄个dp2,相当于方法一的递归。dp2i相当于从i的位置切下去。...消耗O(N)的空间。 根据dp和dp2,采用递归,就能求出答案。跟前天的每日一题不同的地方,就是这里。 时间复杂度是O(N2)。空间复杂度是O(N2)。 代码用golang编写。...s, 0, 1, checkMap, dp, pathp, ansp) } return ans } // s[0....i-1] 存到path里去了 // s[i..j-1]考察的分出来的第一份...getMin(a int, b int) int { if a < b { return a } else { return b } } 执行结果如下
一提到Shell环境,很多人可能想到的就是那种神秘的黑框界面,但是其实Shell环境也可以设置成非常酷的样子,并带有自动完成、自动补全、人性化提示等各种功能。...所以首先要先安装这两个软件: sudo apt install zsh git 安装antigen 下面来安装antigen,它只是一个zsh脚本而已,所以安装起来非常简单,直接下载为用户家目录下的隐藏文件即可...最重要的是,在输入命令的时候,还可以直接按tab,zsh会非常智能得给出参数。大家可以实际体验一下。 ? 配置完成之后,将自己的默认Shell改成zsh。之后每次登录都可以看到这赏心悦目的终端了。...这样就完成了powerline字体的安装工作。 使用我的配置文件 如果大家觉得自己配置比较麻烦的话,还可以直接使用我的配置文件。...powerline10k这个主题十分强大,而且还支持个性化定制,如果你觉得我设置的平行四边形提示符不好看,还可以运行p10k configure命令从头开始设置主题样式,可定制的选项非常多,提示符也可以换成方形
2022-10-01:给定一个字符串 s,计算 s 的 不同非空子序列 的个数因为结果可能很大,所以返回答案需要对 10^9 + 7 取余 。...字符串的 子序列 是经由原字符串删除一些(也可能不删除)字符但不改变剩余字符相对位置的一个新字符串。输入: s = "abc"。输出: 7。...答案2022-10-01:dp0~25,保存26个字母结尾的子序列个数。时间复杂度:O(N)。空间复杂度:O(1)。代码用rust编写。...s.bytes().collect(); let mut map: HashMap = HashMap::new(); let mut all = 1; // 一个字符也没遍历的时候...m) % m; all = cur_all; map.insert(*x, new_add); } return all - 1;}执行结果如下
2、打开iterm2安装oh my zsh 执行如下脚本进行安装 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh...接下来 vi ~/.zshrc 在插件配置处添加下载的这两个插件名 plugins=( git zsh-syntax-highlighting zsh-autosuggestions...另外历史记录时间戳可以改成如下格式 HIST_STAMPS="yyyy-mm-dd" 5、p10k configure向导模式进行p10k的主题定制 定制过程中第一步提示下载字体 ?...再进行字体下载 然后按照wizard向导根据你喜欢的风格进行主题定制 部分截图如下 ? ? ? ? ? ? ? ? ? ?...这是重新打开iterm2,体验一下定制过后的效果 例如输入过的命令自动提示,这时只需要输入方向右键就可以自动补全 ? ? 界面美观且输命令也非常高效 ? 历史记录时间戳的效果 ?
而应对字符串操作,zsh 也已经绰绰有余了。...首先,为了获取代理配置不可避免的要生成一个 scutil 的子进程,为了避免子进程的反复生成,应该把输出缓存下来: SCUTILS_PROXY=$(scutil --proxy) 接着判断代理是否启用...中的字符串从右往左搜索的语法,返回值为找到匹配时的位置;当没有找到匹配时,zsh 会一路搜索到字符串最左侧、最终返回值是 0。...的多行字符串语法获取第一行内容、以将右端多余的内容略去: $ echo ${${SCUTILS_PROXY#*HTTPProxy : }[(f)1]} 127.0.0.1 使用 zsh 内置的 (...oh-my-zsh 用户可以通过下述命令完成安装: $ git clone https://github.com/sukkaw/zsh-osx-autoproxy ${ZSH_CUSTOM:-~/.oh-my-zsh
领取专属 10元无门槛券
手把手带您无忧上云