很多命令都会提供一个bash-complete的脚本,在执行该命令时,敲tab可以自动补全参数,会极大提高生产效率。...docker命令自动补全 yum install docker后,会有一个文件: /usr/share/bash-completion/completions/docker ; 显然,该脚本是用于bash...“Tab”键自动补全命令或文件名,这种功能其实可以在shell脚本中实现,使得使用“Tab”键可以自动补全自定义的shell函数,相关命令有三个,compgen、complete和compopt。...1、compgen compgen [option] [word] compgen命令根据option生成与word可能匹配的补全,并打印到标准输出中,这些选项可以是内建命令complete所支持的任何选项...对于选项“-G”、“-W”、“-X”、“-P”和“-S”,应该使用括号进行保护,防止补全开始前被扩展。 “-o bashdefault”:如果没有生成补全条目,就使用bash默认的其它补全。
背景介绍 最近在完成一个由linux shell脚本编写的工具时,发现在实现多个功能时,冗长的多个参数不仅难记而且大小写混杂,虽然“悉心”地写了完备的'-h'帮助文档,但是为了实现其中一个功能,仍然需要输入多个冗长的字符串来定位某个大选项下的小选项所对应的功能...实现思路 在 linux shell 下本身有着体验极佳的命令补全功能,即[Tab][Tab]。现通过自定义该程序的命令补全脚本实现命令补全。...重点说明 执行shell 函数,函数中生成COMPREPLY作为候选的补全结果 compgen(筛选命令) 用来筛选生成匹配单词的候选补全结果 [root@localhost ~]# help compgen...,生成候选补全列表 compopt(修改补全命令设置) 用于修改补全命令设置,这个命令必须在补全函数中使用,否则会报错。....bash_profile中进行调用,亦可放于/etc/bash_completion.d/下,这样在下次登录终端时即可自动source自动补全脚本。
于Ubuntu13.10后来Ubuntu 14.04上,由APT安装fastboot以及adb该工具后, 发现fastboot在主动补充一个问题,, fastboot flash 自己主动有问题完成后,...查了一下,发现是fastboot的自己主动补全脚本限制了补全规则,略微改动一下就能解决问题....文件路径: /etc/bash_completion.d/fastboot 改动当中的内容例如以下: _fastboot() { local cur prev opts COMPREPLY...reboot-bootloader) COMPREPLY=() return 0 ;; flash) COMPREPLY=( $(compgen...modem tz persist splash aboot" -- $cur )) return 0 ;; boot) COMPREPLY=( $(compgen
这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...由示例中可以看到,使用一个斜杠(/)只替换首次出现的字符,使用2个斜杠(/)替换所有字符。...local cmd=${COMP_WORDS[COMP_CWORD-1]}; case $cmd in 'demo') COMPREPLY=( $(compgen...$ demo bar foo help version linux的自动补齐功能非常强大,通过其提供的框架,可以给自己的命令行添加自动补齐功能。...由示例中可以看到,首先创建一个demo.bash的shell脚本,该脚本需具有可执行权限,然后在当前终端source该脚本。
这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。...由示例中可以看到,使用一个斜杠(/)只替换首次出现的字符,使用2个斜杠(//)替换所有字符。...local cmd=${COMP_WORDS[COMP_CWORD-1]}; case $cmd in 'demo') COMPREPLY=( $(compgen...$ demo bar foo help version linux的自动补齐功能非常强大,通过其提供的框架,可以给自己的命令行添加自动补齐功能。...由示例中可以看到,首先创建一个demo.bash的shell脚本,该脚本需具有可执行权限,然后在当前终端source该脚本。
很多用户日常都是使用windows操作系统,Linux操作系统接触比较少;尤其是非图形界面的Linux。...往往都是看着UP主的视频教程一步步设置,而这些教程为了省事,往往是直接使用root用户登录、端口全开、防火墙彻底删除!这种操作很大概率是五分钟变“肉鸡”.......这里提供一种相对安全的设置,设置分两步: 1、设置防火墙规则,入站规则只开放必要的端口,比如ssh登录端口等 2、ssh登录设置,本文重点介绍ssh登录设置 ①尽量不要使用系统提供的统一用户名...),以便小白个性化修改,如果不想修改也可以直接执行: bash <(curl -sL ecgcc.cc/ssh) 脚本全文: #!...自定义模式:需要自己删减组合模块" && echo -e read -n 1 -p """执行“自动模式”请按“y”,按其他任意键执行“手动模式”,“自定义模式”请按ctrl+c退出编辑脚本.....
安装 假设你的系统已经存在pear命令了,那么接下来就是一招鲜了: shell> pear install doc.php.net/pman 安装好后使用非常方便,就和Linux下常见的man命令一样的用法...: shell> pman strlen 显示效果上也和man命令一样,如下图所示: PMan Command 扩展 以前我习惯于使用CHM格式的PHP文档,因为它的检索功能很方便,只要记住开头几个字母就能查到想要的内容...下面以CentOS为例(其它Linux可能有差异),前提是先安装EPEL,然后执行命令: shell> yum install bash-completion 缺省会安装不少现成的bash-completion...脚本,可以参考它们实现PMan的对应脚本: shell> cat /usr/share/bash-completion/pman # pman(1) completion have pman && _...fi COMPREPLY=(${COMPREPLY[@]##*/}) COMPREPLY=(${COMPREPLY[@]%.*.*}) COMPREPLY=($(compgen
Linux 执行命令时,总是先在自己的 Shell builtin 中查找该命令,如果找到则执行该命令;如果找不到该命令,则会从环境变量 PATH 指定的路径中依次去查找待执行的命令。...因为了解了这一点,所以看起来好像没有办法编写用户自己的命令来替代 Shell builtin 命令。幸运的是,有了 enable 命令我们就能做到了。...不带选项时,每一个 NAME 内嵌命令都会被启用。 不带任何选项和参数单独执行 enbale 将显示所有启用的 Shell 内建命令。 3.选项说明 -a 打印所有内置命令,并显示是否启用。...控制动态加载的选项: -f 从共享对象 FILENAME 文件中加载 NAME 内嵌命令。 -d 删除以 -f 选项加载的内嵌命令。...使用 -p 选项和单独执行 enable 的效果是一样的,即enable -p 等同于enable。
内建命令caller返回活动子函数调用的上下文cd将当前目录切换为指定的目录command执行指定的命令,无需进行通常的 shell 查找compgen为指定单词生成可能的补全匹配complete显示指定的单词是如何补全的...read 命令的用法为:# options 表示选项# variables 表示用来存储数据的变量,可以有一个,也可以有多个read [-options] [variables]options 支持的选项有.../bin/bash# 使用 read 命令给多个变量赋值read -p "Enter your name, age and city ===> " name age cityecho "你的名字为:${...aAfFgilprtux 支持的选项有:选项说明-f name列出之前由用户在脚本中定义的函数名称和函数体。...掌握这些内建命令,可以帮助你更高效地编写 Shell 脚本和命令行程序。希望这篇文章能够帮助你更好地理解和使用 Shell 内建命令。
使用场景: 操作系统安装完成后,执行下面脚本,记录命令的md5值,当命令被修改之后,再次使用脚本即可检查出来。...:中了挖矿病毒,服务器很多资源会被占用,但是操作系统命令top,netstat之类的被修改之后,我们就很难发现拖跨服务器的进程),这个脚本提前把命令的md5值记录下来,被修改之后,我们就知道哪些命令被修改了...add 脚本代码如下: #!.../bin/env bash #write by ddcw #https://cloud.tencent.com/developer/column/6121 #scriptname:CheckCommDDCW.sh...new_comm_n=0 change_comm_n=0 new_comm="" change_comm="" [ -f ${file_name} ] || touch ${file_name} for i in $(compgen
第二章:工具使用 ① 连接服务器 我们建个 session,后续就会直接存在列表中,点开就能连接服务器了。 选 SSH,host 直接输入我们的服务器ip就可以了。 ?...使用 `info bash' 来获得关于 shell 的更多一般性信息 使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息. 名称旁边的星号 (*) 意味着该命令被禁用....compgen [-abcdefgjksuv] [-o 选项] [-A 动> complete [-abcdefgjksuv] [-pr] [-DE] [-o 选> compopt [-o|+...o 选项] [-DE] [名称 ...]...选项: -p 以可重用的格式打印所有的已定义的别名 退出状态: 除非一个没有定义的名字被作为参数提供,否则 alias 返回值为真。
如果你已经频繁地使用过了 Bash,则向 Bash 编程的过渡相对容易。但是,如果你不曾使用过 Bash,你会很高兴地了解到它是一种为清晰和简单而构建的简单语言。...通过使用 GhostScript 处理了几天的任务,我确认这是解决我的问题的方法。 编写基本的脚本来运行命令,只不过是复制我用来从 PDF 中删除图像的命令和选项,并将其粘贴到文本文件中而已。...将 hello.sh 更改为: echo $1 用引号将两个参数组合在一起来运行脚本: $ bash hello.sh "hello bash" hello bash 对于我的 PDF 瘦身项目,我真的需要这种非交互性...镜像,学习编写 Bash 脚本都需要先使用 Bash,然后学习如何将这些脚本从仅仅是一个命令列表变成响应输入的东西。...它向你介绍了特定于 Bash 的编程概念,并且通过学习的构造,你可以开始构建自己的命令。当然,它是免费的,并根据 创作共用许可证 进行下载和分发授权,所以今天就来获取它吧。
命令、选项、输入和输出都相同,可通过提供的唯一内容来获取用于生成应用的工具和系统。 本文档重点介绍了 CI 工具获取方案,并提供了有关如何设计和构建生成脚本的建议。...CI 生成服务器的安装选项 使用本机安装程序 本机安装程序适用于 macOS、Linux 和 Windows。 安装程序需要拥有对生成服务器的管理员 (sudo) 访问权限。...CI 安装示例 此部分介绍了如何使用 PowerShell 或 bash 脚本进行手动安装,同时还介绍了多个服务型软件 (SaaS) CI 解决方案。...可以使用 PowerShell 或 bash 脚本安排 .NET 命令,也可以使用概述生成进程的项目文件。 业务流程部分详细介绍了这些选项。...下面是一相对简单的 PowerShell 脚本,说明了如何获取 .NET SDK,以及如何将它安装到 Windows 生成服务器上:
一、内置命令 所谓 Shell 内置命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件。...选项 说明 -a array 把读取的数据赋值给数组 array,从下标 0 开始。...六、下表列出了 Bash Shell 中直接可用的内建命令 命令 说明 : 扩展参数列表,执行重定向操作 ....,无需进行通常的 shell 查找 compgen 为指定单词生成可能的补全匹配 complete 显示指定的单词是如何补全的 compopt 修改指定单词的补全选项 continue 继续执行 for...readarray 从 STDIN 读取数据行并将其放入索引数组 readonly 从 STDIN 读取一行数据并将其赋给一个不可修改的变量 return 强制函数以某个值退出,这个值可以被调用脚本提取
、csh、zsh等,不同的shell都有自己的特点以及用途。.../bin/bash [指定告知系统当前这个脚本要使用的shell解释器] Shell相关指令 文件命名规范: 文件名.sh .sh是linux下bash shell 的默认后缀 使用流程:...中间不能有空格,可以使用下划线“_”。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 案例1:使用变量改写入门脚本中的第1个shell脚本。 ? ?.../bin/bash val=`expr 2 + 2` echo "两数之和为 : $val" 两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样...步骤: 调用tail指令 系统把后续选项传递给tail Tail先去打开指定的文件 取出最后10行 问题:自己写的shell是否也可以像内置命令一样传递一些选项呢?
编写Bash脚本或在Linux命令行上工作时,最常见的任务之一是读写文件。 本文介绍了如何使用重定向操作符和tee命令或者在bash脚本将文本写入文件。...使用重定向操作符写入文件 在Bash中,输出的重定向使您可以从命令捕获输出并将其写入文件。...这是一个简单的示例,显示了如何将echo命令的输出重定向到文件: echo "this is a line" > file.txt 为防止覆盖现有文件,请使用内置的set启用“ noclobber”选项...>|运算符可让您覆盖Bash的“ noclobber”选项: set -o noclobber echo "this is a line" >| file.txt >>运算符将输出追加到文件末尾,而不是覆盖文件...要将输出附加到文件,请使用-a(--append)选项调用命令: echo "this is a line" | tee -a file.txt 如果您不希望tee写入标准输出,则可以将其重定向到/dev
://github.com/apache/tvm tvm 使用以下命令来启动 Docker 镜像: /path/to/tvm/docker/bash.sh 完成本地构建后,这里的...该辅助脚本可实现: * 挂载当前目录到 /workspace * 将用户切换为调用 bash.sh 的用户(这样您就可以读/写主机系统) * 在 Linux 上使用宿主机的网络。...Docker 源代码 查看 Docker 源代码: 构建自己的 Docker 镜像。...在本文档中,我们对如何将 NNPACK 与 TVM 一起使用进行了高级概述。 条件 NNPACK 的底层实现使用了多种加速方法,包括 fft 和 winograd。...clone --recursive https://github.com/Maratyszcza/NNPACK.git cd NNPACK # 在 CFLAG 和 CXXFLAG 中添加 PIC 选项以构建
有的 VPS 服务商提供了较多种类的系统选择,有的却没有。如果你发现你希望重装的系统服务商没有提供,可以考虑自己安装。...---- 重装脚本 - 来自萌咖 以下是来自萌咖的一键重装脚本的发布贴: [ Linux VPS ] Debian(Ubuntu)网络安装/重装系统一键脚本 - 萌咖 [ Linux VPS ] CentOS...可以设置安装时 root 用户的密码: bash DebianNET.sh -d 9 -v 64 -a -p WalterlvPwd ? 如果你希望设置更多的安装选项,也可以选择手动安装。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布...如有任何疑问,请 与我联系 (walter.lv@qq.com) 。
而-a选项需要的选项参数则被默认置空。 在-o后面也可以指定多个短选项,直接写在一起就行了。...-o -n -g -p -r -f -- 具体是如何将alongprf这几个字符解析成短选项的,我暂时没有去深入了。...shell脚本示例 上面了解了getopt的基本使用方法,这里展示一个在shell脚本中使用getopt的例子。...# 下面一句中 $@ 是shell脚本传入的参数 TEMP=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \ -n 'example.bash' -...更进一步的解释可以参考Bash: Preserving Whitespace Using set and eval,这篇文章最后一点也没看明白。。。 实际运行 使用例子中提供的命令.
find / -name "string*"24、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?...查找自己所在的终端信息:who am i 查看当前谁在使用该主机:who25、使用什么命令查看用过的命令列表?history26、使用什么命令查看磁盘使用空间? 空闲空间呢?...使用命令 compgen -c,可以打印出所有支持的命令列表。...40、bash shell 中的hash 命令有什么作用?linux 命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径,用该命令可以打印出你所使用过的命令以及执行的次数。...[root@localhost ~]# whatis zcat45、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?