首页 > 其他分享 >tab键补全命令以及补全路径的原理

tab键补全命令以及补全路径的原理

时间:2023-02-28 16:32:29浏览次数:41  
标签:shell 补全 外部命令 路径 命令 内存 tab

      在我们日常操作Linux发行版Rocky或Ubuntu等一些系统的时候,往往在输入命令的时候习惯按tab键补全,此时最好是在系统上通过命令yum -y install bash-completion或者apt -y install bash-completion把命令补全给安装上(上述软件安装命令分别对应Rocky和Ubuntu)。

     Linux命令分为内部命令和外部命令,可通过type查询命令到底是内部还是外部命令。如果通过命令type查询出有带"xxxx is a shell builtin"的就是内部命令,除此之外显示有“xxxxx is /usr/sbin/ifconfig”具体path路径的,为外部命令,如图:

内存命令

tab键补全命令以及补全路径的原理_补全

外部命令

tab键补全命令以及补全路径的原理_可执行程序_02

执行命令的过程

    输入命令之后回车,提请shell程序找到键入命令对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来。

shell中可执行的两类命令

内部命令:由shell自带的,而且通过某命令形式提供,用户登陆后自动加载并常驻内存。

外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕再比内存中删除。我个人理解的就是,外部命令在你按回车键之后,系统会去对应外部命令的PATH路径下面去找到命令的可执行文件,启动并执行它执行结束后再从内存中删除。

关于外部命令存放路径的二进制程序和man帮助手册、命令源码可通过which和whereis查询

tab键补全命令以及补全路径的原理_补全_03

tab键补全命令以及补全路径的原理_Ubuntu_04

tab键补全命令以及补全路径的原理_Ubuntu_05

标签:shell,补全,外部命令,路径,命令,内存,tab
From: https://blog.51cto.com/sihaishibei/6091494

相关文章

  • ubuntu iptables 做为路由转发
    实现功能,本地服务器的号段的192.168.8.0/24,而做为路由器的机器有2个ip,192.168.8.x和另一个ip,而另一个ip可以访问 192.168.2.0/24号段,为了让其它192.168.8.0/24上服务器......
  • Java容器类List、ArrayList、Vector及map、HashTable、HashMap
    ArrayList和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引......
  • 免登陆,用脚本提前修改微信、企业微信、QQ的聊天路径
    为什么要改聊天路径微信、企业微信、QQ的聊天记录默认都是放在登陆用户的文档目录下面的登陆用户的文档目录路径C:\Users\%USERNAME%\Documents在我的日常工作中,碰到......
  • 获取winform的工程路径
    stringstartupPath=System.Windows.Forms.Application.StartupPath;stringsolutionPath= startupPath+@" \..\..\..\";如果在工程目录下建立了一个Images目录,需要取......
  • 'chromedriver' executable needs to be in PATH
    报错信息如下:selenium.common.exceptions.WebDriverException:Message:'chromedriver'executableneedstobeinPATH.Pleaseseehttps://sites.google.com/a/chrom......
  • linux 定时任务 crontab
    linux定时任务crontabcrontab-l列出所有任务crontab-e编辑任务servicecrondreload刷新任务......
  • Tableau 视图中图例隐藏了,怎么显示
    Tableau仪表板里把颜色图例给删掉了该怎么恢复原本我们的tableau视图如下图1中是这样的,右边有颜色图例,让人一看就知道什么颜色在视图中代表什么,  有的时候不小心把......
  • WPF中,Grid与Table的区别(英文)
    HowisGridDifferentfromTable?TableandGridsharesomecommonfunctionality,buteachisbestsuitedfordifferentscenarios.(1)GridderivesfromthePanel......
  • linux定时任务crontab的使用
    文章目录​​linux​​​​crontab参数列表​​​​crontab-e和vim/etc/crontab的区别​​​​编辑完定时任务重启什么吗​​​​定时任务是否生效,查看日志​​​​定时......
  • python文件路径
    importos#获取绝对路径#os.path.abspath("__file__")获取当前文件的绝对路径#os.path.dirname(os.path.abspath("__file__"))获取当前文件目录path=os.path.......