对话 UNIX: 适用于任何 UNIX 系统的 10 个出色的工具(3)

来源:developerWorks 中国 作者:Martin Streicher
  

与 wget 不同,cURL 把它下载的东西发送到 stdout。使用 -o 选项把下载的东西保存到指定的文件。

  • 为了下载大量文件,可以提供序列、集或同时提供这两者。序列 是放在方括号([])中的一个数字范围;集 是放在花括号({})中的逗号分隔的列表。例如,下面的命令从目录 archive1996/vol1 到 archive1999/vol4(含)下载名为 parta.html、partb.html 和 partc.html 的所有文件,共有 48 个文件。
    $ curl http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html \
      -o "archive#1_vol#2_part#3.html"
    

    在指定序列或集时,可以提供 -o 选项和一个模板,模板中的 #1 替换为第一个序列或集的当前值,#2 是第二个序列或集的占位符,以此类推。另外,还可以提供 -O 选项以保持每个文件名不变。

  • 为了把一组图像上传到服务器,可以使用 -T 选项:
    $ curl -T "img[1-1000].png" ftp://ftp.example.com/upload/
    

    在这里,把 img[1-1000].png 放在引号中,以避免 shell 解释它。这个命令把 img1.png 到 img1000.png 上传到指定的服务器和路径。

  • 甚至可以用 cURL 在词典中查找单词:
     $ curl dict://dict.org/d:stalwart
    220 miranda.org dictd 1.9.15/rf on Linux 2.6.26-bpo.1-686 
        <auth.mime> <400549.18119.1238445667@miranda.org>
    250 ok
    150 1 definitions retrieved
    151 "Stalwart" gcide "The Collaborative International Dictionary of English v.0.48"
    Stalwart \Stal"wart\ (st[o^]l"w[~e]rt or st[add]l"-; 277),
    Stalworth \Stal"worth\ (-w[~e]rth), a. [OE. stalworth, AS.
       staelwyr[eth] serviceable, probably originally, good at
       stealing, or worth stealing or taking, and afterwards
       extended to other causes of estimation. See {Steal}, v. t.,
       {Worth}, a.]
       Brave; bold; strong; redoubted; daring; vehement; violent. "A
       stalwart tiller of the soil." --Prof. Wilson.
       [1913 Webster]
    
             Fair man he was and wise, stalworth and bold. --R. of
                                                      Brunne.
       [1913 Webster]
    
       Note: Stalworth is now disused, or but little used, stalwart
             having taken its place.
             [1913 Webster]
    .
    250 ok [d/m/c = 1/0/20; 0.000r 0.000u 0.000s]
    221 bye [d/m/c = 0/0/0; 0.000r 0.000u 0.000s]
    

    把单词 stalwart 替换为您要查找的单词。

  • 除了通过命令行使用之外,还可以通过 libcurl 库使用 cURL 的所有功能。许多编程语言包含 libcurl 的接口,可以自动执行通过 FTP 传输文件等任务。例如,下面的 PHP 片段使用 libcurl 把通过表单上传的文件存放到 FTP 服务器上:

    <?php
      ...
      $ch = curl_init();
      $localfile = 
    UNIX® 工具一直在变化。本文介绍 10 个有用的工具,其中一些是您以前可能不太关注的工具,一些是新工具。

    与日常用语一样,UNIX 工具一直在变化。经常会出现新工具,同时老工具常常会改进以适应新的最佳实践。一些工具非常常用,其他工具不太常用。一些工具经久不衰,有些工具完全过时了。为了顺畅地操作 UNIX,您必须了解最新的 “行话”。

    表 1 列出了 对话 UNIX 系列中以前讨论过的 11 个重要的软件包。


    表 1. 重要的 UNIX 工具
    名称 用途
    Cygwin 一种适用于 Windows® 操作系统的与 UNIX 相似的 shell 和构建环境
    fish 一种交互性很强的 shell,具有针对命令名、选项和文件名的自动展开和语法彩色标记功能
    locate 构建并搜索所有文件的数据库
    rename 对大型文件集合进行批量重命名
    rsync 高效地本地或远程同步文件和目录
    Screen 创建和管理虚拟的持久的控制台
    Squirrel 一种跨平台的脚本编程 shell
    tac 以相反的次序输出输入,首先输出最后一行(tac 的作用与 cat 相反)
    type 判断一个命令是别名、可执行程序、内置的 shell 还是脚本
    wget 使用命令行下载文件
    zsh 一种高级的 shell,提供自动补全、高级的操作数重定向和高级替换

    在这一期中,我们讨论另外 10 个实用程序和应用程序,它们可以扩展或改进现有的更著名的 UNIX 包。它们涉及从通用存档转换器到高速 Web 浏览器的多个领域。

    根据您使用的 UNIX 风格不同,有时候必须安装新的软件包。可以从源代码构建它们,如果包管理软件提供等效的二进制包,也可以直接安装,这会节省时间和精力。例如,如果使用 Debian 风格的 Linux®,那么可以使用 apt-get 直接安装本期讨论的许多实用程序。





    用 apropos 寻找命令

    UNIX 的命令太多了,所以很容易忘记某个实用程序的名称;对于不常使用的工具,尤其可能出现这种情况。如果您正在努力回想一个命令名,那么试试 apropos(或等效的 man -k)。例如,如果您要找一个计算器,那么只需运行 apropos calculator:

    $ apropos calculator
    bc (1)        - An arbitrary precision calculator language
    dc (1)        - An arbitrary precision calculator
    

    bc 和 dc 都是命令行计算器。

    每个 UNIX 手册页都有简短的描述,apropos 在描述中搜索指定的关键字。关键字可以是字面值(比如 calculator),也可以是正则表达式(比如 calc*)。如果使用后一种形式,那么一定要把表达式放在引号("")中,以防止 shell 解释特殊字符:

    $ apropos "calcu*"
    allcm (1)     - force the most important Computer-Modern-fonts to be calculated
    allec (1)     - force the most important Computer-Modern-fonts to be calculated
    allneeded (1) - force the calculation of all fonts now needed
    bc (1)        - An arbitrary precision calculator language
    dc (1)        - An arbitrary precision calculator
    





    在命令行上运行计算

    如上所示,dc 是在每个 UNIX 系统上都可以找到的计算器。如果不带参数运行 dc,就会进入交互模式,可以编写和运算 Reverse Polish Notation (RPN) 表达式:

    $ dc
    5
    6 
    * 
    10
    / 
    p
    3
    

    但是,可以在命令行上做所有这些工作。指定 -e 选项并提供要运算的表达式。同样,要把表达式放在引号中,以防止 shell 解释它:

    $ dc -e "5 6 * 10 /"
    3
    



    时间:2009-07-13 15:03 来源:developerWorks 中国 作者:Martin Streicher 原文链接

    好文,顶一下
    (4)
    100%
    文章真差,踩一下
    (0)
    0%
    ------分隔线----------------------------


    把开源带在你的身边-精美linux小纪念品
    无觅相关文章插件,快速提升流量