正确使用Unix操作系统

系统 其他OS
在Unix操作系统中,我们会有很多操作上的坏习惯和好习惯,在文章中,我们列出了几个,希望大家能够好好的掌握好习惯,改掉坏习惯。

我们在文章中,要介绍一些关于使用Unix操作系统中,需要养成的好习惯,这些习惯对我们使用Unix操作系统很有帮助。希望大家能够好好的掌握。主要是关于匹配输出中的某些字段,而不只是对行进行匹配,举出了好习惯和坏习惯,希望给大家一些借鉴。

Unix操作系统中匹配输出中的某些字段,而不只是对行进行匹配

当您只希望匹配输出行中特定字段 中的模式时,诸如 awk 等工具要优于 grep。下面经过简化的示例演示了如何仅列出 12 月修改过的文件。

坏习惯 2 的示例:Unix操作系统使用 grep 来查找特定字段中的模式

 ~/tmp $ ls -l /tmp/a/b/c | grep Dec
-rw-r--r--  7 joe joe  12043 Jan 27 20:36 December_Report.pdf
-rw-r--r--  1 root root  238 Dec 03 08:19 README
-rw-r--r--  3 joe joe   5096 Dec 14 14:26 archive.tar
~/tmp $

在此示例中,grep 对行进行筛选,并输出其修改日期和名称中带 Dec 的所有文件。因此,诸如 December_Report.pdf 等文件是匹配的,即使它自从一月份以来还未修改过。这可能不是您希望的结果。为了匹配特定字段中的模式,最好使用 awk,其中的一个关系运算符对确切的字段进行匹配,如以下示例所示:

好习惯 1 的示例:使用 awk 来查找特定字段中的模式

  1. ~/tmp $ ls -l | awk '$6 == "Dec"'  
  2. -rw-r--r--  3 joe joe   5096 Dec 14 14:26 archive.tar  
  3. -rw-r--r--  1 root root  238 Dec 03 08:19 README  
  4. ~/tmp $ 

Unix操作系统停止对 cat 使用管道

grep 的一个常见的基本用法错误是通过管道将 cat 的输出发送到 grep 以搜索单个文件的内容。这绝对是不必要的,纯粹是浪费时间,因为诸如 grep 这样的工具接受文件名作为参数。您根本不需要在这种情况下使用 cat,如以下示例所示:

好习惯和坏习惯 1 的示例:Unix操作系统使用带和不带 cat 的 grep

  1. ~ $ time cat tmp/a/longfile.txt | grep and  
  2. 2811  
  3.  
  4. real    0m0.015s  
  5. user    0m0.003s  
  6. sys     0m0.013s  
  7. ~ $ time grep and tmp/a/longfile.txt  
  8. 2811  
  9.  
  10. real    0m0.010s  
  11. user    0m0.006s  
  12. sys     0m0.004s  
  13. ~ $   

此错误存在于许多工具中。由于大多数工具都接受使用连字符 (-) 的标准输入作为一个参数,因此即使使用 cat 来分散 stdin 中的多个文件,参数也通常是无效的。仅当您使用带多个筛选选项之一的 cat 时,才真正有必要在管道前首先执行连接。

在Unix操作系统中我们需要养成很多好的习惯,希望大家能够养成以上的好习惯,改掉自己的坏习惯。

【编辑推荐】

  1. 管理Unix操作系统交换区
  2. 讲述Unix操作系统环境
  3. 防止入侵Unix操作系统决策
  4. 无Unix操作系统安全之忧
  5. 快清理你的Unix操作系统吧
责任编辑:小霞
相关推荐

2010-04-19 13:31:06

Unix操作系统

2010-04-15 11:15:04

2010-04-13 12:27:44

Unix操作系统

2010-04-15 14:40:26

Unix操作系统

2010-04-16 16:29:57

Unix操作系统

2010-04-08 14:15:53

Unix操作系统

2010-04-08 12:49:00

Unix操作系统

2010-04-15 10:45:57

2010-04-19 16:57:09

Unix操作系统

2010-04-14 13:59:45

Unix操作系统

2010-04-19 17:39:50

Unix操作系统

2010-04-19 18:31:16

Unix操作系统

2010-04-16 17:19:58

Unix操作系统

2010-04-19 10:54:33

Unix操作系统

2010-04-08 10:42:28

Unix操作系统

2010-05-04 10:16:11

Unix操作系统

2010-04-08 17:56:42

Unix操作系统

2010-04-09 11:24:38

Unix操作系统

2010-04-19 18:18:30

Unix操作系统

2010-04-16 17:49:28

Unix操作系统
点赞
收藏

51CTO技术栈公众号