仓酷云

标题: Linux教程之Linux中10个有效的命令行补齐命令 [打印本页]

作者: 精灵巫婆    时间: 2015-1-15 22:14
标题: Linux教程之Linux中10个有效的命令行补齐命令
虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行。
  在Linux体系中,输出一个命令,再按两次TAB键,就会列出一切以输出字符开首的可用命令。这其实不奇怪,极可能你已晓得了这个。这个功效被称作命令补全。默许情形下,bash命令行能够主动补全文件或目次称号。不外,我们可使bash命令行补全实行更多的操纵,经由过程补全命令可让它成绩下一个光辉。



  这个教程申明了我们是如何利用可编程的命令行补全功效(programmablecompletion)把主动补全的功效使用于选项大概命令行参数。
  比方:在输出write命令以后,假如你按两次TAB按键,主动补全功效会供应实行write操纵的列表。
  1. $write[TAB][TAB]balarajjasonrandyjohnritumaylathomasnishawww-data
复制代码
  鄙人面的例子中,输出telnet命令将会显现可用了主机名:
  1. $telnet[TAB][TAB]localhostdev-dbfileserver
复制代码
  要让可编程命令补全功效在你的终端起感化,你只必要实行/etc/bash_completion便可,就像上面展现出来的操纵:
  1. #./etc/bash_completion
复制代码
  你也能够作废/etc/bash.bashrc(关于UbuntuLinux13.04体系)上面的正文,如许,你就能够不必要实行下面的命令了,
  1. enablebashcompletionininteractiveshellsif!shopt-oqposix;thenif[-f/usr/share/bash-completion/bash_completion];then./usr/share/bash-completion/bash_completionelif[-f/etc/bash_completion];then./etc/bash_completionfifi
复制代码
  假如你没有发明这些代码,也没有找到/etc/bash_completion文件,那末你只必要经由过程利用apt-get命令来安装bash_completion包便可。
  1、检察现有的bash补全命令

  启用可编程的bash命令行补全功效,就能够界说一套bash补全命令。命令行补全能够用来界说bash补全命令。
  来看一下现有的bash补全功效,利用完全的命令,以下:
  1. complete-p|less
复制代码
  选项-p是可选择的。
  2、Bash中尺度补全的列表

  Bash为linux用户默许供应了上面的尺度补全命令。
  我们已在更早的一篇文章bashstandardcompletion中会商了这些。
  3、为猎取命令界说补全命令

  利用-c参数界说一个补全命令来取得可以使用的命令列表。鄙人面的例子中,为which命令界说了补全命令,
  1. $complete-cwhich$which[TAB][TAB]Displayall2116possibilities?(yorn)
复制代码
  就像下面看到的,假如按”y”,一切的命令城市显现出来。
  4、为取得目次界说补全命令

  利用参数d,界说一个只取得目次称号的补全命令,上面的例子中,界说了ls的补全命令
  1. $lscountfiles.shdir1/dir2/dir3/$complete-dls$ls[TAB][TAB]dir1/dir2/dir3/
复制代码
  就像下面看到的,一连按两次TAB,就能够看到目次称号。
  5、为取得背景功课称号取得补全命令

  经由过程利用complete命令,把取得job称号作为参数是同意的。参数j用来把job称号作为参数传到命令行,展现以下:
  1. $jobs[1]-Stoppedcat[2]+Stoppedsedp$complete-j./list_job_attrib.sh$./list_job_attrib.sh[TAB][TAB]catsed
复制代码
  想要懂得更多的背景义务,能够经由过程这些案例来懂得下怎样办理Linux背景义务。
  6、利用前缀和后缀补全命令

  补全命令能够经由过程被前缀(在前面增加)和后缀(增加在前面)来界说。鄙人面的例子中,前缀和后缀在list_job_attrib.sh中被界说。
  1. $jobs[1]+Stoppedcat$complete-P">-S<"./list_job_attrib.sh$./list_job_attrib.sh[TAB][TAB]$./list_job_attrib.sh">cat<"
复制代码
  7、具有扫除功效的文件名和目次补全

  看看上面的剧本,输入output目次上面的文件:
  1. $cdoutput/$lsall_calls.txtincoming_calls.txtoutgoing_calls.txtmissed_calls.txtparser_mod.tmpextract.o
复制代码
  在下面的例子中,假如你想要扫除以.tmp和.o为后缀的文件,完成ls命令的主动补全功效,能够如许:
  1. $telnet[TAB][TAB]localhostdev-dbfileserver0
复制代码
  FIGNORE是一个shell变量,它包括了扫除在主动补全行列中的文件的文件名的后缀。
  8、经由过程IFS变量支解String字符串,失掉被支解后的值。

  单词表能够经由过程利用w参数被IFS变量中界说的字符串支解成多个单词。终极每一个单词城市被分隔,被显现出来。
  1. $telnet[TAB][TAB]localhostdev-dbfileserver1
复制代码
  如上所述,被IFS支解以后,单词就会被扩大开,以是也大概有上面展现的这些变量。
  1. $telnet[TAB][TAB]localhostdev-dbfileserver2
复制代码
  9、编写你本人的函数以完成主动补全功效

  你能够声明一个函数来界说补全功效。利用-F参数,被传进到补全命令的函数名,能够实行并。比方,函数能够写成上面的款式。
  1. $telnet[TAB][TAB]localhostdev-dbfileserver3
复制代码
  在下面的函数中,
  文件中parser_option函数经由过程source实行以下:
  1. $telnet[TAB][TAB]localhostdev-dbfileserver4
复制代码
  这个函数链接到剧本剖析器以下:
  1. $telnet[TAB][TAB]localhostdev-dbfileserver5
复制代码
  就像下面所看到的,剖析器的参数能够经由过程_parser_options函数天生。
  注重:检察/etc/bash_completion文件,懂得更多的可编程的命令行补全功效函数。
  10、当第一标准没有举行婚配时,就必要实行第二标准

  经由过程界说的补全标准,没有举行婚配,那末经由过程-o参数界说的completion就会实行。
  1. $telnet[TAB][TAB]localhostdev-dbfileserver6
复制代码
  同上,经由过程利用_count_files文件中界说的_count_files函数界说的completion,假如_count_files函数没有举行婚配,那末就会实行目次补全。
  1. $telnet[TAB][TAB]localhostdev-dbfileserver7
复制代码
  原文链接:BalakrishnanMariyappan翻译:极客范-踏雁寻花
对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;
作者: 老尸    时间: 2015-1-17 17:12
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
作者: 海妖    时间: 2015-2-1 11:51
硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
作者: 蒙在股里    时间: 2015-2-7 08:13
Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。
作者: 金色的骷髅    时间: 2015-2-21 18:05
硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
作者: 只想知道    时间: 2015-3-6 21:44
对我们学习操作系统有很大的帮助,加深我们对OS的理解。?
作者: 因胸联盟    时间: 2015-3-13 22:33
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
作者: 活着的死人    时间: 2015-3-20 22:08
应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2