我已经使用 Linux 一段时间了。现在,我对终端窗口中命令和目录的自动完成功能存有疑问。
当我按下某个tab
键时,终端会自动完成或给出选择。这是 shell 提供的自动完成功能还是模拟器的功能。
此外,如果它由终端提供,终端如何如此透明地提供它。
答案1
shell 提供自动完成功能。它不是单独的脚本,而是内置于 shell 本身中 —— 用于标准文件完成。
参数自动完成功能基于 内置的可编程完成功能bash
。请参阅“可编程完成“bash 手册页的部分。
一些 Linux 发行版提供了bash_completion包。这是利用 bash 中的可编程完成命令的配置选项的集合。
答案2
shell 提供了这个。终端仿真器绘制 shell 生成的内容并将用户输入交给 shell。
答案3
自动补全由 shell 提供。
按下 Tab 键时,shell 会运行一个脚本,根据您已输入的内容决定需要补全的内容。然后,该脚本会生成一个可能的补全列表,这些列表可能是当前目录中的文件列表,也可能不是 $PATH 中的可执行文件列表。