我在这些天使用命令wc
编写了许多shell脚本,这非常棒。例如:
例如,在过去20个小时左右,有16个新用户在FAS注册:
$ cat messages | grep \
'fedora-infrastructure:org.fedoraproject.prod.fas.user.create'|wc -l
16 /*output*/
计算.
目录
find . -type f -exec cat '{}' \; | wc -l
我是Linux的新手,所以我想现在wc
可以做什么样的惊人的事情(其他命令支持)不仅基本用法来自手册页 < / p>
答案 0 :(得分:2)
(编辑:听起来您可能会从了解what pipes are, and how they work)中获益最多
在命令行上尝试:
man wc
它为您提供了wc
的手册页,您可以使用该页面找到使用该工具可以执行的所有操作。
以下是一些基本的习语/心智模型,可以让你知道什么时候开始学习Linux:
wc
是一种工具。您可以在[shell][2]
中直接与许多工具进行交互,例如:ls
(列出当前目录的内容),pwd
(打印当前工作目录),{{1} (打印当前时间),以及更高级的内容,例如date
,awk
,sed
,grep
。tr
语法(但不是|
!)称为“pipe”:
||
(standard input)读取或从文件中读取,或者根本不需要读取任何内容(stdin
,例如,不能需要输入)ls
这样的事情的时候,实际上是在说:
ls | wc -l
ls
的输出,该输出通常会写入ls
(标准输出),并将“管道”直接输入stdout
的{{1}},与stdin
的{{1}}选项一起计算行数。wc
可以与之交互的其他命令没有详尽的列表。你看到-l
之类的东西,只是意味着程序在wc
之前输出的任何内容都被输入wc
作为输入。答案 1 :(得分:0)
Unix工具设计得非常简单,wc
之类的东西就是非常好的例子。
在unix中,您可以使用|
我们的想法是将这些小工具结合在一起,以达到超出个人能力的结果。
是一个非常强大的命令,有很多选项,但基本上可以找到与指定的谓词和选项匹配的文件的文件名。
man
是一个内置于unix中的帮助系统,只需键入man wc
即可获取有关wc
的信息,您可以将其用于命令行中的大多数命令,只有少数例外情况
使用良好的shell和有用的工具可以轻松实现Unix。我建议你使用Zsh,这个设置的简单方法是使用Antigen和Oh-my-zsh(Antigen将帮助安装Oh-My-Zsh和其他一些工具,所以请遵循它的说明。)
完成设置后,您可以使用Tab自动完成,显示命令,命令选项(适用于许多工具,例如git
,find
等...等等。
这将很快将贝壳阴暗的黑暗转变为充满活力的环境。
嗯,要开始使用,请记住你在unix shell上有基本的循环和条件。
这些命令通常与文件名模式一起使用,例如: *.txt
并且经常使用管道|
输入。
例如,如果您想执行复杂的操作,请说重命名一组替换给定模式的文件:
for f in *; mv $a ${a/bak/}
会从当前文件夹中的所有文件名中删除单词bak
。\
有两个命令sed
和awk
,它们本身就是几乎语言。没有必要从内到外地了解它们,并且可以通过更简单的命令来复制它们所做的许多事情,例如tr
和cut
。但是,了解它们基本如何工作是一件非常方便的事情。事实上, Sed 和 Awk 是如此强大,他们甚至还有一本献给他们的O'Reilly书。
查找示例的好地方是command-line fu
祝你好运