Cnfan.net中国网络
IT网络技术专家
操作系统
 最新专题: HACMP for AIX 4.3.3 技术专题   FreeBSD使用大全   Apache应用专题   Linux命令大全   专题 | 分类 | 投稿 | 搜索
 操作系统首页 | 新闻动态 | Linux | freebsd | unix | Solaris | IBM AIX

提高UNIX工作效率 解析有价值的命令行

  • 2007-06-29 23:24:45  作者:  来源:Cnfan.net收集  浏览次数:363  文字大小:【】【】【
简介:在日常的办公环境中使用 UNIX? 并不一定是非常笨拙的。使用 UNIX Shell 的强大功能和可用的系统工具可以极大地提高您在办公中的工作效率。   引言   UNIX? 命令行的语言以功能全面而著称,通过使用各种 ...

关键字: unix 命令指南 快速入门

在日常的办公环境中使用 UNIX? 并不一定是非常笨拙的。使用 UNIX Shell 的强大功能和可用的系统工具可以极大地提高您在办公中的工作效率。

  引言

  UNIX? 命令行的语言以功能全面而著称,通过使用各种小型工具、实用程序,并在 Shell 中将它们组合在一起执行,您可以指定许多精确的和复杂的任务。

  但是,当在办公环境中使用它们时,同样的这些工具可能成为提高您工作效率的功能强大的助手。许多 UNIX 独特的技巧可以用于提高工作效率。

  对于使用命令行来改善办公工作效率,本文给出了一些建议和技巧,包括如何查看当前系统习惯、如何计算工作花费的时间、操作日期的秘诀、使用快速而简单的方法对自己发送提醒、对重复性交互任务实现自动化的方法。

  查看日常的习惯

  使用 UNIX 命令行提高办公工作效率的第一步是,仔细地研究您当前的日常习惯。通过通常所使用的工具和应用程序以及访问和修改的文件,可以告诉您究竟是什么样日常工作占用了大量的时间,以及应该避免哪些操作。

  查看所使用的工具

  您需要查看经常使用哪些工具和应用程序。可以轻松地在 Shell 的内置 history 中查明您的日常工作习惯,它将输出在当前的和过去的会话中发送给 Shell 的输入行内容的枚举清单。有关典型的示例,请参见清单 1.

  清单 1. Shell 的内置 history 的示例输出

$ history
1 who
2 ls
3 cd /usr/local/proj
4 ls
5 cd websphere
6 ls
7 ls -l
$

  真实的历史记录通常保存在一个文件中,以便能够提供给将来的会话,例如,Korn Shell 将其命令历史记录保存在用户 home 目录的隐藏文件 .sh_history 中,而 Bash Shell 则使用 .bash_history.通常在达到一定的长度后,会对这些文件进行覆盖,但是许多 Shell 具有设置最大历史记录长度的变量,Korn 和 Bash Shell 具有 HISTSIZE 和 HISTFILESIZE 变量,您可以在自己的 Shell 启动文件中对它们进行设置。

  通过 sort 来运行 history 非常有用,可以获得最常用的命令的列表。然后,使用 awk 删除命令名称减号选项和参数,然后将经过排序的列表传递给 uniq 以得到一个枚举列表。最后,再次调用 sort 以便对列表的第一列按照相反次序进行排序(最大的在前面),这是对其自身进行枚举。清单 2 显示了实际操作的示例。

  清单 2. 根据使用频率列举 Shell 历史记录中的命令

$ history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r

      4 ls
      2 cd
      1 who
$

  如果历史记录文件比较大,您可以首先通过管道传输到 tail 来运行周期性的检查,例如,要检查最后的 1,000 条命令,可以尝试使用:

$ history|tail -1000|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r

 

  查看访问或修改的文件

  可以使用相同的原则来查看访问和修改过的文件。要完成这项工作,可以使用 find 实用程序来定位和查看在某一段时间内(今天、昨天或者过去的任何日期或时间段)访问或更改过的所有文件。

通常,您无法找出到底是谁 对文件进行了最后的访问或修改,因为在 UNIX 中不大容易获得这种信息,但通过将搜索限制为您的 home 目录树中包含的文件,您可以仅查看个人的文件。您还可以对搜索进行限制,以便仅搜索您正在监视或使用的特定项目目录中的文件。

  find 实用程序有几个标志,可以用来根据时间定位文件,如表 1 中所列举的。目录不是常规文件,但是在列出目录内容或将其作为当前工作目录时,对其进行了访问,所以需要在搜索中使用否定和 -type 标志排除它们。

  表 1. find 实用程序的一些标志

标志 描述
-daystart 这个标志表示从某天凌晨开始。
-atime 最后访问该文件的时间,用天数表示。
-ctime 最后更改该文件状态的时间,用天数表示。
-mtime 最后修改该文件的时间,用天数表示。
-amin 最后访问该文件的时间,用分钟数表示。(并不是在所有的实现中都可用。)
-cmin 最后更改该文件状态的时间,用分钟数表示。(并不是在所有的实现中都可用。)
-mmin 最后修改该文件的时间,用分钟数表示。(并不是在所有的实现中都可用。)
-type 这个标志描述了文件的类型,如 d 表示目录。
-user X 文件属于用户 X。
-group X 文件属于组 X。
-newer X 文件比文件 X 更新。

  下面介绍了如何列出您的 home 目录树中、在整整一个小时之前经过修改的所有的文件:

$ find ~ -mmin 60 \! -type d

  为标志给定一个负值,表示要匹配该数值或更近的。例如,下面介绍了如何列出您的 home 目录树中、从一个小时之前到现在经过修改的所有的文件:

$ find ~ -mmin -60 \! -type d

  并非所有的 find 实现都支持 min 标志。如果您的 find 不支持,那么您可以使用 touch 创建一个虚拟文件,它的时间戳比要找的文件早,然后使用 -newer 标志搜索比它更新的文件:

$ date
Mon Oct 23 09:42:42 EDT 2006
$ touch -t 10230842 temp
$ ls -l temp
-rw-r--r--    1 joe        joe               0 Oct 23 08:42 temp
$ find ~ -newer temp \! -type d

  特殊的 -daystart 标志,当与任何日期选项一起使用时,可以度量从当天凌晨开始(而不是 24 小时以前)到命令执行的时刻。下面的命令尝试列举存在于系统中的任何位置、从当天凌晨到现在访问过的所有的文件:

$ find / -user `whoami` -daystart -atime -1 \! -type d

  类似地,您可以列出 home 目录树中、今天修改 的所有文件:

$ find ~ -daystart -mtime -1 \! -type d

  为各种时间标志赋于不同的值,可以更改搜索时间。您还可以对这些标志进行组合。例如,您可以列出 home 目录树中、从七天之前到现在经过访问和 修改的所有的文件:

$ find ~ -daystart -atime -7 -mtime -7  \! -type d

  您还可以根据特定日期或时间范围(以天或分钟进行度量)查找文件。要完成该任务,通常可以使用 touch 创建一个或多个虚拟文件,如前所述。

[1] [2] [3]

  <欢迎投稿>  <论坛讨论>
 »相关文章  »论坛新贴
精彩文章 活动资讯 今日头条