linux命令自动补全, linux系统下如何命令自动补全?下面具体介绍一下。
输入“命令的前几个字符”,然后按TAB键自动完成。比如我想改密码,但是我只记得这个命令的前几个字母是pass。这时候按Tab键,shell会自动输出passwd命令,非常方便。
扩展信息:
在shell命令行中,可以使用“Tab”键自动完成命令或文件名。这个功能其实可以在shell脚本中实现,这样使用“Tab”键就可以自动完成自定义shell功能。有三个相关的命令。
Compgen, finish and composite materials.
1. Compgen:
compgen [option] [word]
Compgen命令根据选项生成可能与word匹配的补全,并将它们打印到标准输出中。这些选项可以是内置命令complete支持的任何选项,但不能是“-p”和“-r”。如果使用“-F”或“-C ”,
仍然可以使用由可编程完成函数设置的shell变量,但是它们的值不起作用。补码条目以相同的方式生成,就像可编程完成代码直接生成具有相同完成选项的完成条目一样。如果指定了word,
仅显示匹配的条目。
2. Complete:
complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name .]
complete -pr [-DE] [name .]
complete命令指定如何完成每个名称。如果指定了选项“-p”或者没有指定选项,那么现有的完成方法将以一种可以作为输入重用的格式打印。选项“-r”用于删除具有指定名称的完成方法。
一种删除所有名字而不指定名字的完成方法。选项“-D”意味着下面的选项和动作将应用于默认的命令完成,这意味着之前未定义的完成命令也可以完成。选项“-E”表示以下选项和操作将应用于空命令完成,
也就是说,填空行。选项"-G "、"-W "、"-X "、"-P "和"-S "应该用括号保护起来,以防止它们在完成之前被展开。
"-o bashdefault ":如果没有生成完成条目,将使用bash默认的其他完成。
"-o default ":如果没有生成完成条目,将使用默认文件名" readline "来完成。
"-o dirnames ":如果没有生成完成条目,将完成目录名。
"-o filenames ":告诉" readline "为与文件名相关的处理生成文件名,例如在目录名后添加斜杠、引用特殊字符以及删除shell函数行尾的空格。
"-o noquote ":告诉" readline "不要引用文件名,而是默认引用它。
“-o nospace”:告诉“readline”不要在完整名称后添加空格,而是默认添加空格。
"-o plusdirs ":完成条目后,将完成目录名,并将结果添加到其他操作获得的结果中。
“-a别名”:别名,与选项“-A”相同。
“-A arrayvar”:数组变量名。
“-A binding”:“readline”键绑定名。
“-A builtin”:shell内建命令名,同选项“-b”。
“-A command”:命令名,同选项“-c”。
“-A directory”:目录名,同选项“-d”。
“-A disabled”:不可用的shell内建命令名。
“-A enabled”:可用的shell内建命令名。
“-A export”:导出的shell变量名,同选项“-e”。
“-A file”:文件名,同选项“-f”。
“-A function”:shell函数名。
“-A group”:组名,同选项“-g”。
“-A helptopic”:内建命令help支持的帮助主题。
“-A hostname”:主机名,从shell环境变量HOSTFILE中获取。
“-A job”:作业名,同选项“-j”。
“-A keyword”:shell保留字,同选项“-k”。
“-A running”:正在运行的作业名。
“-A service”:服务名,同选项“-s”。
“-A setopt”:内建命令set的选项“-o”可用的参数。
“-A shopt”:内建命令shopt可接受的选项名。
“-A signal”:信号名。
“-A stopped”:暂停的作业名。
“-A user”:用户名,同选项“-u”。
“-A variable”:所有的shell变量名,同选项“-v”。
“-C command”:在子shell中执行命令,并把其结果作为补全条目。
“-F function”:在当前的shell环境中执行函数function,执行时,参数“$1”表示那个参数正在进行补全的命令名,参数“$2”表示补全的名称,参数“$3”表示补全的名称前面的单词,
表示结束执行时,从数组变量COMPREPLY中获取补全条目。
“-G globpat”:使用文件名扩展模式globpat进行扩展以生成可能的补全条目。
“-P prefix”:在所有的选项应用到补全结果后,在结果前添加前缀prefix。
“-S suffix”:在所有的选项应用到补全结果后,在结果后添加后缀suffix。
“-W wordlist”:使用特殊变量IFS中的字符拆分单词列表wordlist,并扩展拆分后的每个单词,结果中与待补全单词
匹配的条目就是补全条目。
“-X filterpat”:filterpat是进行文件名扩展时使用的模式,它作用于通过前面的选项和参数生成的补全列表,并把每个与过滤模式匹配的条目删除,模式中前导的叹号表示否定,
这时会删除与过滤模式不匹配的条目。
3、compopt:
compopt [-o option] [-DE] [+o option] [name]
compopt命令修改每个名称指定的补全选项,如果没有指定名称则修改当前执行的补全的选项,如果也没有指定选项,则显示每个名称或当前补全所用的选项。
选项可能的取值就是上面的内建命令complete的有效选项。
linux命令自动补全,以上就是本文为您收集整理的linux命令自动补全最新内容,希望能帮到您!更多相关内容欢迎关注。