ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux文件命令精通指南(三)(转)

Linux文件命令精通指南(三)(转)

原创 Linux操作系统 作者:ilg 时间:2019-04-22 15:12:05 0 删除 编辑
Linux文件命令精通指南(三)(转)

  查看和查找文件

  文件过滤器

  用来读取文件内容和在文件内容上执行操作的命令有时被称为 1y滤器。sed 和 awk 命令是两个滤波器的例子,因为在以前的 OTN 文章中有它们详细的讨论,在这里将略过。

  诸如 cat、 more 和 less 之类的命令让您能够从命令行查看一个文本文件的内容,而无需调用编辑器。Cat 是 "concatenate" 的缩写,它将默认地在标准输出(显示屏)上显示文件内容。和 cat 一起提供的最有趣的选项之一是 -n 选项,它用编号的输出行来显示文件内容。

  $ cat -n test.out

  1 This is a test.

  因为 cat 一次性输出文件中的所有行,所以您可能更喜欢用 more 和 less,因为它们都一次输出一屏的文件内容。Less 是 more 的一个增强的版本,它允许用来自 vi 文本编辑器的关键命令来增强文件查看。例如,d 向前翻滚、b 向后翻滚 N 行(如果 N 是在 d 或 b 之前指定的)。为 N 输入的值成为随后的 d 命令的默认值。man 页面实用工具使用 less 来显示使用说明的内容。

  重定向和管道

  重定向允许将命令输出重定向到文件中,而不是标准输出,或者类似地,也可重定向输入。重定向的标准符号 > 创建一个新的文件。>> 符号将输出添加到一个现有的文件中:

  $ more test2.out

  Another test.

  $ cat test.out >> test2.out

  $ cat test2.out

  Another test.

  This is a test.

  到文件的标准输入可以用 < 符号来重定向:

  $ cat < test2.out

  错误消息用 2> 和 2>> 来重定向和添加,格式如下:

  $ command 2> name_of_error_file

  要避免无意地覆盖一个现有的文件,使用 BASH 内置的命令集:

  $ set -o noclobber

  可以在命令和输出文件之间用 >! 符号来重载这个特性。要关闭这个特性,用 +o 代替 -o。

  重定向在一个命令和文件之间、或文件和文件之间工作。重定向语句的一项必须是一个文件。

  管道使用 |符号,并且在命令之间工作。例如,您可以用以下方式将一个命令的输出直接发送到打印机上:

  $ ls -l * | lpr

  可以用以下方式快速地找到历史列表中的一个命令:

  $ history | grep cat

  更多的滤波器

  Grep、fgrep 和 egrep 都显示匹配一种模式的行。所有这三个命令都在文件中搜索指定的模式,如果您想不起来一个所需文件的名称,这将非常有用。基本格式是:

  grep [options] PATTERN [FILE...]

  $ grep -r 'Subject' nsmail

  CTRL-Z 将终止上述或其它任何命令。

  grep 的最有用的选项可能是 -s。如果您以除根用户之外的任何身份搜索系统文件,那么对于每一个您没有访问权限的文件,都将产生错误消息。这个命令禁止那些消息。

  Fgrep(也以 grep -F 调用)只查找固定的字符串,而不是 grep 接收的正则表达式。而 egrep 接收包含更大范围的特殊字符(如 “|”,它指示条件 OR 运算符)的模式。

  $ egrep 'Subject|mailto' *

  查找文件

  find 命令的 GNU 版本非常强大、灵活并且比 UNIX 系统上存在的经典版本更具包容性。它对于涉及到目录结构的任务非常有用,包括在文件上查找和执行命令。find 命令的基本格式是:

  $ find startdirectory options matchcriteria [actionoptions]

  如果您知道文件的名称、或者甚至名称的一部分,但不知道它所处的目录,您可以这么做:

  $ find .-name 'test*'

  ./test

  ./jdevhome/mywork/EmpWS/EmpBC4J/test

  与经典的 UNIX 系统不同,在 Linux 中不需要在末尾添加 -print 操作,因为如果没有指定其它的操作选项,就将假定执行这个操作。在目录起始位置上的一个点 ( . ) 将使 find 在您的工作目录中开始搜索。两个点, ..,在父目录中开始搜索。您可以在任意目录下开始搜索。

  注意,您可以使用通配符作为搜索准则的一部分(只要用单引号将整个项目括起来)。

  $ find .-name 'test*' -print

  ./test.out

  ./test2.out

  显示拥有 .out 扩展名的一系列文件:

  $ find /home -name '*.out'

  不过记住,除非您是作为超级用户运行这个命令,否则您将可能得到许多的 "Permission denied" 错误消息。

  最强大的搜索工具之一是和 grep 一起使用的 -exec 操作:

  $ find .-name '*.html' -exec grep 'mailto:foo@yahoo.com' {} ;

  这里,我们让 find 命令在当前目录中开始执行, .,查找一个 html 文件,*.html,并在当前文件上执行 (-exec) grep 命令,{}。当使用 -exec 操作时,需要一个分号 ;,这是用来在使用 find 命令时执行其它一些操作。需要反斜线 和引号来确保这些项目通过 BASH,以使它们由命令而不是 shell 来进行解释。

  立即掌握 Linux 文件命令

  在 Linux 中提供了许多有用的命令和利用它们的强大的方法,在此无法一一说明。此外,完成许多任务通常都存在多种方法。

  我们已经看到了一些最常用和最有启发意义的 Linux 文件命令。掌握这些基础但却关键的工具将使您的 Linux 学习走上快车道。利用您手头上的 man 页面,和试验的积极性,您现在拥有了足够的信息来开始探索 Linux 文件操作的力量。

  在我的下一篇文章中,我将提供 Linux 系统命令的一个类似的说明。

  

本文来自:http://www.linuxpk.com/40375.html

-->linux电子图书免费下载和技术讨论基地

·上一篇:Vi命令一览表

·下一篇:Linux文件命令精通指南(二)
 
     最新更新
·Linux指令篇:终端机管理--clear

·Linux基础系列教程

·将.c文件更名时使用的完美脚本

·详解Bash命令行处理

·RPM常用命令及RPM中文手册

·Linux的kill命令与信号控制

·Linux文件查找命令find,xargs详述

·Linux下的编辑器——vi大全

·常用命令之make常见规则解析

·另类技术:怎样显示一个字呢?

·软件安装之--RPM命令大全

·vi中将逗号和回车互换的技巧

·Linux指令篇:档案目录管理--rmdir

·Linux指令篇:档案目录管理--split

·Linux指令篇:档案目录管理--touch

·Linux指令篇:档案目录管理--rm

·Rpm命令手册

·Linux指令篇:日期时间排程--at

·Linux指令篇:日期时间排程--cal

·Linux指令篇:日期时间排程--crontab

·Linux指令篇:日期时间排程--date

·Linux指令篇:日期时间排程--sleep

·Linux指令篇:日期时间排程--time

·Linux指令篇:档案目录管理--mv

·Linux指令篇:档案目录管理--more

·Linux指令篇:档案目录管理--mkdir

·Linux指令篇:档案目录管理--cat

·Linux指令篇:档案目录管理--cd

·Linux指令篇:档案目录管理--chmod

·Linux指令篇:档案目录管理--chown


关于我们 | 联系方式 | 广告合作 | 诚聘英才 | 网站地图 | 网址大全 | 友情链接 | 免费注册

Copyright © 2004 - 2007 All Rights Reserved

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14102/viewspace-117261/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-06-18

  • 博文量
    1715
  • 访问量
    1300141