* 4.引用第 n 个参数 描述:对于引用上一条命令中的参数,我们甚至可以要求 Shell 精确到具体的第几个。...:n* 这种表示让我们能够从上一条命令中引用从第 n 个到最后的参数 #示例1.下面允许我将 hosts 和 hostname 同时打开进行编辑。...:2* #示例2.我们也可以引用历史列表中其它命令的参数 #引用以 hi 打头的命令的第 2 个参数 $ !hi:2 #将引用第 10 条命令的 2、3 两个参数。 $ !...(从左边数)第N个元素,由0开始计。...popd -N # 删除栈中(从右边数)第N个元素,由0开始计。
* 4.引用第 n 个参数描述:对于引用上一条命令中的参数,我们甚至可以要求 Shell 精确到具体的第几个。...:n* 这种表示让我们能够从上一条命令中引用从第 n 个到最后的参数 12345678910#示例1.下面允许我将 hosts 和 hostname 同时打开进行编辑。...:2*#示例2.我们也可以引用历史列表中其它命令的参数#引用以 hi 打头的命令的第 2 个参数 !hi:2#将引用第 10 条命令的 2、3 两个参数。 !...(从左边数)第N个元素,由0开始计。...popd -N # 删除栈中(从右边数)第N个元素,由0开始计。
图形化界面的Shell 幼儿园的小孩,可以面对图形化界面的电脑,手持鼠标,愉快的上网冲浪 字符型界面的Shell 计算机专业的新生面对的无界面的Linux,用vi编写一个简单的Hello World...等级 Shell分类 第一梯队 zsh 第二梯队 bash, sh 第三梯队 Windows命令行 第四梯队 Ubuntu, Mac, Windows中的图形化界面 Shell变量 系统变量(在系统环境中有效...) 在zsh,base中查看系统变量env ?...不同shell-查看系统变量 ---- 内置变量(只在特定Shell中有效) 在zsh的配置文件.zshrc中设置 export my_name=export zhaozhaoli="把快乐放大!.../bin/bash # 将三个数相加 three_add(){ let res=0 echo "脚本的名称为$0" echo "第一个参数为$1" echo "第二个参数为
#:只用一个#,就是注释 echo:输出 我们把上面的脚本保存成一个文件, 1.sh 后面的这个sh是shell脚本的扩展名。然后要怎嚒来执行呢?...b 删除前一个字符 \c 后不加上换行符号 \f 换行但光标仍旧停留在原来的位置 \n 换行且光标移至行首 \r 光标移至行首,但不换行 \t 插入tab 上面的特殊符号,写到mac的shell脚本里面要注意...$* 以一个单字符串显示所有向脚本传递的参数 $$ 脚本运行的当前进程ID号 $!...4.11、shell传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。...n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 除了参数可以使用特殊符号,也可以使用上文中函数所使用的特殊符号,这里不再赘述 echo "执行的文件名:$0";
/bin/bash -v printf '%0.2f\n' 12.12334 12.12 注意:第3行输出结果之前,把源码也打印出来了,秘密在于第1行最后的 -v 参数 3.调试模式 #!...hello hello 注意:第一行后面的参数变成了-x,加上这个后,执行时,每一行代码在执行前,会先输出对应的源码,并且以+开头,十分方便调试。 .../bin/bash -x i=$1 #变量i的值取第1个参数的值 if test $i -gt 89; then #如果i>89 echo 'A' elif test $i -gt 79; then...:新建一个.sh脚本文件,写在脚本文件里就能运行了),grep后的部分是一个正则表达式,匹配0-9中的1个或多个,最后再来看: (echo $1 | grep ^[0-9]*$ >/dev/null)...现在应该能看懂了吧,将1个参数输出,然后做为grep的输入,正常情况下,如果第1个参数为数字,则会输出,但是我们的本意是放在if条件判断中,并不希望将其输出,所以最后重定向到黑洞。
第一个 Unix Shell 是1979年底在V7 Unix(AT&T第7版)中引入的,以它的资助者 Stephen Bourne 命名。...zsh具有以下主要功能: 开箱即用、可编程的命令行补全功能可以帮助用户输入各种参数以及选项。 在用户启动的所有shell中共享命令历史。...由上面的例子可以看到,在打开自动完成功能后,使用Tab键可以自动提示cp命令的可选参数,也能够自动提示出kill命令可以杀掉的用户进程的pid。...Fish Shell 在我整理资料的过程中,不断的看到一些文章资料介绍 fish shell 并且给它打上 90后 最现代 等一系列标签来彰显它的年轻与现代化,出于好奇我也整理试用了一下。...它的一些功能特性总结如下: 默认彩色显示 自动在光标后给出命令建议 自动补全,fish shell会根据历史命令或者命令的可能性自动列出所有可能的选项,还能在下方提供各个命令的解释说明问题 fish的语法与
比妹纸贴心吧,她们向来都是让你猜的…… 各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下 tab 键,补全项可以使用 ctrl+n/p/f/b上下左右切换。...ssh + 空格 + 两个tab键,zsh会列出所有访问过的主机和用户名进行补全 智能跳转,安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全...vi 模式 复制粘贴缓冲区 脚本化.通过脚本可以自动化窗口布局。...例如,我们想要新建一个窗体,就需要先在键盘上摁下CTRL+b,松开后再摁下n键。...--- Go2Shell Go2Shell 是一个便捷小工具,它可以实现一次点击,即可在当前目录中打开终端,这比打开终端->cd到当前目录直观快捷的多,就像下面这样: 其他常见问题 Terminal
rpm 全称RPM Package Manager 1.rpm包的查询 常用的有: rpm -qa # 列出所有已安装的rpm包 rpm -qi zsh # 查询zsh...zsh # 查询zsh依赖的其他软件包 rpm -q --scripts zsh # 查询zsh 包含的脚本【安装、卸载时候会调用这些脚本】 另外,加上 -p参数适用于尚未安装的软件包的信息查询...,如: 【注意加上-p参数后,后面接的是必须是完整的包名称】 rpm -qpi httpd-2.2.15-39.el6.centos.x86_64.rpm # 查询httpd软件包的详细信息...--test 如rpm -ivh --test xxx.rpm 表示仅测试软件包的安装情况,不实际卸载 --noscripts 表示不执行rpm安装过程的脚本,不建议使用该参数...rpm -V zsh # 校验zsh包【zsh已安装情况下】 rpm -Va # 校验所有已安装的软件包的文件【md5】 rpm -Vf /bin/ls# 校验/bin
问题描述 在使用 SourceTree 提交代码的时候,会出现 husky 命令失败的问题(通过命令行提交代码没有问题),如下图所示: 图片 看错误,是一个 catch 参数的问题,在新版本的 Node...中,catch 参数是可以省略的,但是在旧版本中,catch 参数是必须的。...nvm, 建议在 $ZSH_CUSTOM 目录下添加一个自定义 zsh 脚本。...这个脚本会在你进入包含了 .nvmrc 文件目录中自动切换 node 版本,切换版本后修正 ~/.huskyrc 的 path 内容。...local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/
有些同学可能听说过zshell和oh-my-zsh,前者是一个shell程序,由于功能比较强大,所以叫做z shell,意为终极shell;而后者是一个模板化的zshell配置脚本,通过它我们可以快速配置一个好用的...安装 用下面的命令就可以将antigen脚本下载到本地。...apt-get install zsh-antigen 如果使用ArchLinux,用下面的命令。 yaourt -S antigen-git 其他系统请参考官方文档或者直接用antigen脚本。...antigen list 该命令用于列出所有安装的插件,可以使用三个参数指定如何显示。...如果antigen位于git仓库中,该命令会执行git pull操作,否则就什么也不做。不过这时候我们仍然可以用前面介绍的方法直接下载脚本。 antigen help 该命令会列出帮助信息。
: 删除到行尾 ctrl + p/n: 上/下移动一行或者前/后一个命令 ctrl + b/f: 光标前/后移char esc + b/f: 光标前/后移word(蛋疼不能连续work) ctrl +...: bck-i-search/reverse-i-search,输入关键字搜索历史命令 上面的这些快捷键特别是在敲命令时还是很有用的(可能有的确实是在命令行中才生效),特别是结合 zsh 自动补全等功能...分屏功能 cmd + d 竖着分屏, cmd + shift + d 横着分屏 cmd + t 新建一个 tab,cmd + num 切换到第 num 个 tab 当前窗口含有分屏时, 通过 cmd +...cmd + alt + e,在所有的 tab 中全局搜索,搜索出候选项后,再选择你想要进入的 tab。 ?...git: 当前目录若是在一个 git repo 下面的话,会自动显示当前的分支信息等等。
这意味着,当前目录的 node_modules/.bin 子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。...-n:可以取消末尾的回车符,使得下一个提示符紧跟在输出内容的后面 -e:会解释引号(双引号和单引号)里面的特殊字符(比如换行符\n);否则原样输出 快捷键: Ctrl + L:清除屏幕并将当前行移到页面顶部...$0:脚本文件名,即script.sh。 1~9:对应脚本的第一个参数到第九个参数。 $#:参数的总数。 $@:全部的参数,参数之间使用空格分隔。...实际开发中,如果某个命令失败,往往需要脚本停止执行,防止错误累积。这时,一般采用下面的写法。...:脚本需要在执行过程中,由用户提供一部分数据,这时可以使用read命令;它将用户的输入存入一个变量,方便后面的代码使用。
shell的分类 Winodws中 cmd.exe命令提示字符 linux中 sh bash zsh 常用命令 head:默认获取文件前十行 tail:默认获取文件后十行 获取一个区间...,第10~13行 $ head -n13 xxx | tail -n4 cut:取出文本指定列 -d:指定分割符 -f:指定列 Name Age Scorea 25 90b 26 91c 27 92d...定义全局变量 export 变量 export 变量=值 在 ~/.bashrc中创建才是真正的全局变量 内置变量 $0:获取当前执行的shell脚本文件名,包括脚本路径 $n:当前shell脚本的第n...个参数(n>9需要使用 ${10}) $#:获取当前shell命令行中参数的总个数 $?.../bin/bashecho "参数的总个数:$#"echo "脚本名为:$0"echo "第二个参数:$2"echo "第十个参数:${10}"echo "获取所有参数:$*" ?
Shell(一) 發佈於 2020-01-18 Shell 通常指的是命令行界面的解析器,一般来说,这个词是指操作系统中提供访问内核所提供之服务的程序。...局部变量只在创建他们的 shell 脚本中使用,例如 A=13,就是定义了一个变量 A,如果我们想引用该变量,可以在字符串中使用 $A,如果不希望转义,则可以使用 \,如果想取消变量,我们可以使用 unset...系统变量又分为: 本地变量: 只有本用户可以使用,保存在当前用户 home 目录下的 .bash_profile 或 .bashrc 文件中 全局变量: 所有用户都可以使用,保存在 /etc/profile...: 脚本名称 ${N}: 第 N 个参数 $$: 脚本本身进程 PID $?...进行算数运算: let sum=$INT+$INT2 echo $sum let 语法的乘法运算符号不需要转义: let multi=$INT*$INT2 echo $multi (()) shell 中两个小括号也可以做运算
此时你需要执行 xrandr 命令来查看你的 output 参数(也就是当前显示接口的名称,日志中显示 connected 的就是),比如我设备上的是 DP-4。 ...重启后 xrandr 的设置会失效,我们可以设置个启动自动执行的脚本,比如 start-service.sh : # start-service.sh #!...按照前面的方式配置好后,每次系统启动时都需要打开终端,执行 clash 命令,并且终端不可以关闭,否则整个 clash 进程就结束了。...当你在 Ubuntu 中把系统显示的时间设置正确后,计算机硬件时间就变成了在这个时间上减去 8 小时,所以当你切换成 Windows 系统后慢了8小时,就是这个原因。...并不是把自动登陆关闭后 gdm3 的 bug 就一定能规避掉,这一点可能只适用于我安装的 Ubuntu19.10;我这里说的原因也不一定适用所有人。
,只需要按快捷键 command + shift + p 打开命令面板,输入 reopen in container,回车即可 2.自定义配置 上面的配置只是最基本的配置,大部分情况我们是需要自定义配置...我推荐的是轻量版 slim 版本,需要用到啥工具,自己去安装就好了,docker 的难度在于 shell 脚本能力,所以自己用啥自己去安装,提升自己 shell 脚本能力。...所以不要直接在 workspaces/你的目录名 目录下进行开发,而是你执行一个工作目录 /root/uccs,这个目录必须提前创建,可以写在 Dockerfile 中 (3) shutdownAction...在挂载的时候要注意,如果是 bind 挂载,那么宿主机的目录必须存在,否则会报错 (7) runArgs:docker run 后面接的参数 (8) build.args:docker build 后面接的参数...其他 项目地址:https://github.com/astak16/devcontaienr,仅供学习使用,如果用于工作中,请自行配置相关参数
安装完成后重新打开一个新的终端,就可以看到彩色的提示符(Oh My Zsh 默认主题的标志)了。 ?...如果你不知道选择哪个主题,可以通过下面的网址进行预览。...echo hello echo 命令会将参数 hello 打印出来,Shell 是基于空格分隔命令进行解析的,第一个单词代表可执行的程序,后续的单词作为传递给程序的参数。...d:第 1 位表示文件类型,d 是目录、l 是链接文件、- 是普通文件。 rwx:第 2-4 位表示这个文件的所有者拥有的权限,r 是读、w 是写、x 是执行。...r-x:第 5-7 位表示和这个文件的所有者所在同一个组的用户具有的权限。 r-x:第 8-10 位表示其他用户所具有的权限。
23.4 zsh shell 是由Paul Falstad开发的已个开源Unix shell。它汲取了所有现在shell的设计理念并增加了许多独到的功能,为程序员创建了一个无所不能的高级shell。...下面的zsh shell的一些独特的功能: 1)改进的shell选项处理 2)shell兼容性模式 3)可加载模块(最先进的功能) zsh shell提供了一组核心内建命令,并提供了添加额外命令模块的能力...zsh shell通常会用在编程环境中,因为它为shell脚本程序员提供了许多很好的功能。 它是以可加载的模块来加载单独的代码库,这使得高级函数的使用在命令行上运行命令一样简单。...可以更改 4.其他组:除了上面那两个 5.对于一个文件来说,文件权限分为所有者权限、属组权限、其他权限。可以用chmod改变 6.改变用户组: 在添加用户时,可以指定将该用户添加到哪个组中。...删除账户时,至少需要四个步骤: 1)获得正确的删除用户账户名 2)杀死正在系统上运行的属于该账户的进程 3)确认系统中属于该账户的所有文件 4)删除该用户账户 可以把它设计成交互式脚本。
) 加入 .zshrc 文件中,就可以在每次启动 shell 时自动加载自动补全脚本,之后就可以体验到与原生 shell 相同的自动补全功能了。...Cobra 基础用法 Cobra 当前的最新版本为 v1.0.0,支持生成多种 Shell 的自动补全脚本,目前支持: •Bash•Zsh•Fish•PowerShell 如上所述,Cobra 不但是一个功能强大的...比如,kubectl get [tab] 这里的预期内容是返回所有 k8s 资源名称,但是只靠上面的代码是无法实现的。...在使用 ValidArgsFunction 时,Cobra 将在解析了命令行中提供的所有 flag 和参数之后才会调用您的注册函数。...当然 Cobra 还不是完美的,比如生成的 Zsh 脚本有些问题,kubectl 和 helm 都是使用将其生成的 Bash 自动补全脚本转化为 Zsh 的自动补全脚本的方式。
一般发行版的Linux系统中,默认的shell程序就是bash。我们在写shell脚本时,通常也会在脚本文件头部指定bash作为脚本解释器。 ? 这里多说一句,zsh有时也作为猿媛们的默认shell。...后面的内容我们还是以Linux系统中的bash为例来介绍:) 变量的分类 Shell是一门动态类型语言和弱类型语言,我们可以把变量理解为KV对,key是变量名,value是变量值。...另外,在开启一个shell进程中,有一些参数的值也会影响到配置文件的加载。如--rcfile ,--norc等。这些参数的含义值可以使用man bash进一步了解。...还有,在发行版的Linux系统中,Interactive&Login模式下的~/.bash_profile, ~/.bash_login, ~/.profile并不一定是三选一,看一下这三个脚本的内容会发现他们会继续调用下一个它想调用的配置文件...系统变量 Shell中系统变量主要在对参数判断和命令返回值判断时使用,包括脚本和函数的参数和返回值判断。没啥可说的,主要难记且脚本中经常出现: ?
领取专属 10元无门槛券
手把手带您无忧上云