您的位置:首页 > 运维架构 > Linux

Linux 系统命令精通指南-2-

2005-02-03 09:59 603 查看
date 命令可用于显示或设置日期。如果用户具有超级用户权限,则他或她可以通过在以下命令中提供一个数字型字符串来设置日期:
  $ date 0101010004
  此命令将日期设置为 2004 年 (04) 1 月 1 日 (0101) 凌晨 1 时 (0100)。

  但是,任何用户可以用所需的格式来显示日期。注意在格式序列之前需要一个加号 "+"。如果没有出现此命令的预期输出,则尝试将它包含在单引号中:
  $ date +'%H%M%S'
  204748

  您可以在序列中包含空格,这时您需要使用双引号:
  $ date +"%H %M %S"
  20 47 51

  在日期的主页上列有三十多种不同的格式序列,这些序列可以按需要结合起来,以获得您最后的输出格式。

  date 的输出还可以用于脚本中,如:
  $ date -d '2 day'
  Thu Jan 29 19:02:02 EST 2004

  -d 选项指示 date 显示其后字符串中所描述的时间。在上例中,我们要求显示从现在起(2004 年 1 月 27 日)两天后的日期。我们也可以要求显示三天前的日期,其命令为:
  $ date -d '-3 day'
  Sun Jan 25 20:56:59 EST 2004

  date 多种功能的另一个示例是能够向其输出附加字符串,为生成唯一的文件名提供了一种便利的方法。
  $ ls -l | cat > $(date +ls_%d%b%y%H%M.out)
  $ ls ls_*.out
  ls_04Feb041633.out

  在这里,我们将一个长文件列表的输出传送给 cat,它将我们的输出再传送到一个名为 ls_04Feb041609.out 的文件。注意我们为文件名使用了一个变量,由美元符号 "$" 表示。依次将 "ls_" 和 ".out" 附加到日期,其格式为月份中的日 (%d)、本地的月份名称缩写 (%b)、年份的最后两位数字 (%y)、小时 (%H) 和分钟 (%M),从而产生此文件名。

  Sort 和 Uniq。 您可以从管道或从命令行所指定的文件对文本文件的行进行 sort 操作。除非另外指定,sort 对多列输出的第一列进行操作。在默认情况下,除非使用 -n 选项,数字型的列按字母顺序排序。

  Sort 列可以用两种不同的格式指定。如果使用 -k 选项,则列的位置从 1 开始进行编号。您还可以使用 +POS1 格式,从第一列编号为零开始进行列的编号。以下两个命令产生相同的输出:
  $ ls -l *.out | sort +5 -7
  $ ls -l *.out | sort -k 6,8
  -rw-r--r-- 1 bluher users 375 Dec 5 2002 fdisk.out
  -rw-r--r-- 1 bluher users 2447 Dec 28 20:15 ls.out
  -rw-r--r-- 1 bluher users 590 Jan 4 21:24 greps.out
  -rw-r--r-- 1 bluher users 78 Jan 4 21:25 sgrep.out
  ...

  在默认情况下,sort 命令的列分隔符是空格和制表符。可以使用 -t SEP 选项指定其他分隔符,其中 SEP 是您指定的分隔符号。sort 的默认顺序是从最低到最高,利用 -r 选项可以将顺序颠倒。

  Sort 可用于很多不同的任务。例如,它可用于对文件输出进行排序(如 /etc/passwd),或者如我们在下面所看到的那样,对 du 的输出进行排序。当使用 -m 选项时,sort 将文件合并,实际上并没有对它们进行排序。但是,如果您希望将它们排序,就应该在文件合并前对它们排序。

  Sort 经常与 uniq 命令一起使用,从已排序的文件中删除完全相同的行。uniq 命令在管道中经常跟在 sort 命令的后面,还可以使用 -c 选项来计算某一行所出现的次数,或者使用 -d 选项,只报告完全相同的行:
  $ sort -m test.out test2_sort.out | uniq -c
  1 Another test.
  1 Testing testing
  2 This is a test.

  在这里我们合并两个文件 test.out 和 test2_sort.out。然后我们使用 -c 选项,将输出传送到 uniq,这样最后的结果是按字母顺序排列的列表,完全相同的行被删除,并带有一个关于每行出现频率的报告。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息