1

这些天来,我使用非常棒的命令遇到了许多 shell 脚本。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可以做(有其他命令支持),不仅基本用法来自手册页

4

2 回答 2

2

编辑:听起来你可能会从了解管道是什么以及它们如何工作中受益最多)

在你的命令行上试试这个:

man wc

它为您提供了 的手册页wc,您可以在其中找到使用该工具可以执行的所有操作。

当你开始学习 Linux 时,这里有一些基本的习惯用法/心智模型:

  • wc是一种工具。有许多工具可以直接与您[shell][2]的.lspwddateawksedgreptr
  • |语法(但不是||!)称为“管道
    • 默认情况下,命令可以从stdin标准输入)读取或从文件读取,或者根本不需要读取任何内容(ls例如,不需要输入)
    • 所以当你做类似ls | wc -l的事情时,它实际上是在说:
      • ls
      • 获取 的输出ls,通常会写入stdout(标准输出),然后将其直接“通过管道”传输到stdinof 中wc,它与 to 的-l选项一起wc计算行数。
  • wc由于 shell 语言中的管道和过滤器范例,没有可以与之交互的其他命令的详尽列表。任何你看到的东西... | wc,它只是意味着在 之前程序的任何输出都被|作为wc输入。
于 2013-01-03T05:32:35.160 回答
0

Unix 工具被设计得非常简单,诸如此类的东西wc就是很好的例子。

wc = 字数

wc -l = 行数

在 unix 中,您可以使用以下命令将输出从一个命令定向到另一个命令|

这个想法是你将这些小工具组合在一起,以实现超出其个人能力的结果。

寻找

是一个非常强大的命令,有很多选项,但本质上是查找与指定的谓词和选项匹配的文件的文件名。

男人

man是一个内置在 unix 中的帮助系统,只需键入man wc以获取有关wc您可以将其用于命令行中可用的大多数命令的信息,只有少数例外。

Zsh、抗原和 Oh-My-Zsh

Unix 有一个好的 shell 和有用的工具会容易得多。我建议您使用 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 命令行令人敬畏的示例?

查找示例的好地方是命令行 fu

祝你好运

于 2013-01-03T06:13:15.787 回答