2013-01-03 58 views
1

我在这些日子里encouter许多shell脚本使用命令wc这实在是awesome.For例如:命令WC的功能

  1. 例如,在过去的20个小时左右,16个新用户注册FAS :
    $ cat messages | grep \
    'fedora-infrastructure:org.fedoraproject.prod.fas.user.create'|wc -l
    16 /*output*/

  2. 计算在.目录的代码行

    find . -type f -exec cat '{}' \; | wc -l

我是一个新手到Linux,所以我想现在什么样的精彩内容wc可以做(与其他命令支持)不仅基本使用来自手册页

+0

顺便说一句,(2)是刚开从所有文件中的所有线路在当前目录节点(树段。)限制文件类型匹配以获得更准确的LOC计数。 – ocodo

回答

2

编辑:听起来你可能会从理解what pipes are, and how they work

试试这个命令行上受益最大:

man wc 

它为您提供wc的手册页,您可以通过该页面了解您可以使用该工具执行的所有操作。

这里是当你开始学习Linux的一些基本的成语/心智模型知道:

  • wc是一个工具。有很多,你可以直接与交互工具,在你的[shell][2],如:ls(当前目录列表内容),pwd(打印当前工作目录),date(打印当前时间),以及更先进的,如awksedgreptr
  • |语法(!但不是||)被称为“pipe”:
    • 默认情况下,命令可以从stdinstandard input)读取或从文件中读取,或者不需要读任何东西(ls,例如,不需要输入)
    • 所以,当你这样做ls | wc -l,它实际上是在说:
      • 运行ls
      • 采取输出通常将写入stdout(标准输出),并且将其“直接输入”的wc,其与-l选项一起到wc,计数行数。
  • 还有其他的命令是wc可以交互,由于外壳语言管道和过滤器模式没有详尽的清单。任何你看到类似... | wc的东西,它只是意味着,在|之前的程序的任何输出被馈送到wc作为输入。
+0

非常感谢,我想知道如何以及何时使用'wc'命令?与其他命令的一些惊人的组合? – yuan

+0

@张元:给这个读一下:http://www.cse.ohio-state.edu/~mamrak/CIS762/pipes_lab_notes.html我认为它会在=后有更多的意义) –

0

Unix工具都设计得非常简单,像wc是这个很好的例子。

WC =字数

WC -l =行使用|

的想法是您将这些小工具整合在一起来算

在UNIX下,你可以直接从一个命令输出到另一个实现超出个人能力的成果方式。

找到

与许多选项的命令功能非常强大,但本质上找到的文件名匹配指定的谓词和选项文件。

man是内置在UNIX上的帮助系统,只需键入man wc,以获取有关wc您可以使用它可以使用的命令行大多数命令,只有少数例外信息。

岩组,抗原&哦,MY-岩组

的Unix更容易具有良好的外壳,和有用的工具很多。我建议你使用Zsh,简单的方法来获得这个设置是使用AntigenOh-my-zsh(Antigen将帮助安装Oh-My-Zsh和一堆其他工具,因此请按照说明进行操作。)

一旦你拥有了它设置,你有Tab自动完成,显示命令,命令选项(对于许多工具,如git,find等等..)

这将非常迅速地将黑暗的壳变为充满活力环境工作英寸

如何学习命令的酷组合?

好吧,要开始,请记住你有基本的循环和条件可用的UNIX shell。

这些命令通常与文件名模式,例如工作*.txt并且还经常使用管道|输入。

例如,如果你想进行复杂的操作,比方说重命名替换给定模式的一组文件:

for f in *; mv $a ${a/bak/} 

将从当前文件夹中的所有文件名删除单词bak \

隐金

有两个命令sedawk这是 在自己的权利几乎 语言。没有必要从内部知道它们,并且许多事情可以通过更简单的命令来复制,例如trcut。但是,了解它们基本上如何工作是非常方便的事情。事实上,SedAwk是如此强大,他们甚至有一本专门为他们写的O'Reilly书。

在哪里可以找到Unix命令行真棒的例子?

一个很好的地方去寻找例子是command-line fu

好运