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 程序选项和特
    点的完整列表。

  • 相关阅读:
    670. Maximum Swap
    653. Two Sum IV
    639. Decode Ways II
    636. Exclusive Time of Functions
    621. Task Scheduler
    572. Subtree of Another Tree
    554. Brick Wall
    543. Diameter of Binary Tree
    535. Encode and Decode TinyURL
    博客园自定义背景图片
  • 原文地址:https://www.cnblogs.com/yangguang-it/p/7594525.html
Copyright © 2011-2022 走看看