纠正国人对Linux的误解和错误认识(6)

  如果要小分区,就直接用/dev/ram0-15 系统自带了16个内存设备文件,只要把这些设备文件格式化,然后挂载到文件系统就行:

  $ sudo mkfs.ext2 /dev/ram0

  $ sudo mount -t ext2 /dev/ram0 /mnt/my_directory

  sudo 意思是用超级管理员的权限来执行这个命令。这样挂载上来的假分区,一般只有64MB大。如果要很大的分区,可以用tmpfs文件系统:

  $ sudo mount -t tmpfs 任意名 /mnt/my_directory

  搞定。默认情况下这个分区会占用一半的内存。

  现在你看到了吧!什么叫做把设备当作文件,就是可以用操作一般文件的命令来操作设备文件!不需要额外的软件。不知道这个算不算做方便?

  统计某篇英语文章的词频:在Windows下要专门编程或者专门的软件吧?在Linux下且看:

  tr 'A-Z' 'a-z' | tr -cs 'a-z' '\012' | grep -v '^\s*$' | sort | uniq -c | sort -n

  结果就出来了。解释下:|表示管道,意思把前一个程序的输出作为下一个程序的输入,这样形成一系列的过滤器。第一个tr命令,把所有的大写字母转换为小写;第二个tr命令把不是a-z的字母转换为换行符,接下来的grep过滤掉空行,然后sort排序将重复的单词排到一起,uniq 将重复单词的数目放到单词前面,最后又用sort对单词的数目排序。怎么样?漂亮吧。这里所有用到的命令,都是Linux下的基础命令。

  再者,如果你写了个排序的程序,想测试性能,可以如此:

  seq 1 10000 | shuf | time sort

  seq命令产生一个数字序列,这里是1到10000,结果通过管道传递给shuf命令,shuf是用来将输入行的顺序随机打乱的,之后送给sort。time放到sort前面是测试sort执行的时间。

  在Linux下,这样组合各种小程序来完成一个任务是再稀松平常的事情了,现在你能理解为什么Linux许多的程序不会过时的原因了吧?编程会让你感到十分有趣,因为写一个程序只要做一件事,其他的和其他程序协作就可以了。许多程序不用写的很多,就是产生些文本,过滤些文本而已,简单,搞定一切。

  这些,恐怕是在Windows下想都不敢想的吧。听说现在Windows 7出了个power shell, 意思是要超越Unix/Linux shell的强大功能,姑且拭目以待!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27580.html