zoukankan      html  css  js  c++  java
  • 键盘高级操作技巧

    开玩笑地说,我经常把 Unix 描述为“这个操作系统是为喜欢敲键盘的人们服务的。”当

    然,Unix 甚至还有一个命令行,这个事实是个确凿的证据,证明了我所说的话。但是命令行用
    户不喜欢敲入那么多字。那又为什么如此多的命令会有这样简短的命令名,像 cp,ls,mv,和
    rm?事实上,命令行最为珍视的目标之一就是懒惰;用最少的击键次数来完成最多的工作。另
    一个目标是你的手指永远不必离开键盘,永不触摸鼠标。在这一章节,我们将看一下 bash 特
    性,这些特性使键盘使用起来更加迅速,更加高效。

    Bash 使用了一个名为 Readline 的库(共享的线程集合,可以被不同的程序使用),来实现
    命令行编辑。我们已经看到一些例子。我们知道,例如,箭头按键可以移动鼠标,此外还有许
    多特性。想想这些额外的工具,我们可以在工作中使用。学会所有的特性并不重要,但许多特
    性非常有帮助。选择自己需要的特性。
    注意:下面一些按键组合(尤其使用 Alt 键的组合),可能会被 GUI 拦截来触发其它的功
    能。当使用虚拟控制台时,所有的按键组合都应该正确地工作。

    移动光标

    修改文本

     

    剪切和粘贴文本
    Readline 的文档使用术语 killing 和 yanking 来指我们平常所说的剪切和粘贴。剪切下来的
    本文被存储在一个叫做剪切环 (kill-ring) 的缓冲区中。

    自动补全
    shell 能帮助你的另一种方式是通过一种叫做自动补全的机制。当你敲入一个命令时,按下
    tab 键,自动补全就会发生。让我们看一下这是怎样工作的。给出一个看起来像这样的主目录

    自动补全成功了。
    这个实例展示了路径名自动补全,这是最常用的形式。自动补全也能对变量起作用(如果
    字的开头是一个 “$”),用户名字(单词以”∼” 开始),命令(如果单词是一行的第一个单词),
    和主机名(如果单词的开头是 “@”)。主机名自动补全只对包含在文件/etc/hosts 中的主机名有
    效。
    有一系列的控制和元键序列与自动补全相关联

    可编程自动补全
    目前的 bash 版本有一个叫做可编程自动补全工具。可编程自动补全允许你(更
    可能是,你的发行版提供商)来加入额外的自动补全规则。通常需要加入对特定应
    用程序的支持,来完成这个任务。例如,有可能为一个命令的选项列表,或者一个
    应用程序支持的特殊文件类型加入自动补全。默认情况下,Ubuntu 已经定义了一
    个相当大的规则集合。可编程自动补全是由 shell 函数实现的,shell 函数是一种小
    巧的 shell 脚本,我们会在后面的章节中讨论到。如果你感到好奇,试一下:
    set | less
    查看一下如果你能找到它们的话。默认情况下,并不是所有的发行版都包括它们。

    利用历史命令
    正如我们在第二章中讨论到的,bash 维护着一个已经执行过的命令的历史列表。这个命令
    列表被保存在你主目录下,一个叫做.bash history 的文件里。这个 history 工具是个有用资源,
    因为它可以减少你敲键盘的次数,尤其当和命令行编辑联系起来时。

    搜索历史命令
    在任何时候,我们都可以浏览历史列表的内容,通过:

    提示符改变,显示我们正在执行反向递增搜索。搜索过程是 “反向的”,因为我们按照从”
    现在” 到过去某个时间段的顺序来搜寻。下一步,我们开始输入要查找的文本。在这个例子里
    是 “/usr/bin”

    历史命令展开
    通过使用 “!” 字符,shell 为历史列表中的命令,提供了一个特殊的展开类型。我们已经知
    道一个感叹号,其后再加上一个数字,可以把来自历史列表中的命令插入到命令行中。还有一
    些其它的展开特性:

    应该小心谨慎地使用 “!string” 和 “!?string” 格式,除非你完全确信历史列表条目的内容。
    在历史展开机制中,还有许多可利用的特点,但是这个题目已经太晦涩难懂了,如果我们
    再继续讨论的话,我们的头可能要爆炸了。bash 手册页的 HISTORY EXPANSION 部分详尽
    地讲述了所有要素。
    脚本
    除了 bash 中的命令历史特性,许多 Linux 发行版包括一个叫做 script 的程序,
    这个程序可以记录整个 shell 会话,并把 shell 会话存在一个文件里面。这个命令的
    基本语法是:
    script [file]
    命令中的 file 是指用来存储 shell 会话记录的文件名。如果没有指定文件名,则
    使用文件 typescript。查看脚本的手册页,可以得到一个关于 script 程序选项和特
    点的完整列表。

  • 相关阅读:
    velocity语法
    使用VS2003创建WEB程序的时候出现"AutoMation服务器不能创建对象"错误
    ASP.NET 2.0 Tips:跨页提交
    Tip #1 – 创建、管理、应用样式表的强大工具(Visual Studio 2008)
    解决ASP.NET2.0和1.1在同一台电脑上不能并行的问题
    Tip #2 - 样式应用工具(style application toolbar)
    利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆
    ASP.NET Tips: 获取插入记录的ID
    通过rsync远程增量备份数据
    array_merge() [function.arraymerge]: Argument #1 is not an array in ……错误的解决办法
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/7594525.html
Copyright © 2011-2022 走看看