|
|
第 31 帖 | |
|
|
标题: 技巧:妙用watch命令实时观察内存变化 在linux中,有一个很有趣的命令--watch,他的作用很有趣!
![]() 他作用是以全屏幕方式重复地执行指定的命令,用户可以通过他了解命令的运行情况. 如,我们要观察内存动态的变化,那么就可以: watch free 这样就可以动态的观察内存中各个指标在指定时间内的变化啦~~, 如要观察虚拟内存的变化,也可以通过打开另外一个终端,而不耽误当前终端的操作!: xterm -e watch -n 1 vmstat & 这样就会*出一个xterm,显示有关虚拟内存的情况. 详细解释,请: watch --help man watch |
|
|
|
|
|
|
|
第 32 帖 | |
|
|
标题: 技巧: 用 tr 过滤文件[转贴] 了解文本实用程序
Jacek Artymiak(jacek@artymiak.com) 自由作家和顾问 2003 年 7 月 没有人曾说过 sed 很容易 - 它确实不容易!但通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。Jacek Artymiak 向您展示如何去做。 您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。 那么,为什么要使用 tr,而不使用 sed 呢?当然是为了使事情简单。例如,如果我们希望用字母"z"来替换出现的所有字母"a",则可以用 tr a z,这条命令毫无疑问比 sed -e s/a/z/g 简单,尤其在把它用到脚本中时,其中的引号转义很让人头痛。另外,在使用 tr 时,可以避免写那些让人讨厌的正则表达式。 使用 tr 很简单:使用前面一段中所给出的符号表示法,用一个字符去替换出现的所有另一个字符。当需要替换多个字符时,使用类似于这样的表示法:tr abc xyz,它表示用字母"x"去替换出现的所有字母"a",用字母"y"去替换所有字母"b",用字母"z"去替换所有字母"c"。这两组中所列出的字符的数目不必相等。 您也可以指定字符的范围。例如,tr a-z A-Z 将用对应的大写字母来替换所有的小写字母(例如,它将"no smoking"转换成"NO SMOKING")。当您在 vi 编辑器中想强调正在编辑的文本的某一部分时,使用这一特殊技巧非常方便。只要按一下 Escape 键,然后按 : 键,再输入 2,4!tr 'a-z' 'A-Z',最后按一下 Return 键。现在,从第 2 行到第 4 行的字母就都转换成了大写字母。 关于 tr 的其它内容 GNU 手册上提到,tr 在执行您所选择的操作时,通过将标准输入复制到标准输出,从而实现"转换、压缩和/或删除字符"。在这篇技巧文章中,您将了解到这些选项;当然也可以通过了解 tr 的手册页或信息页,学习到更多关于 tr 的内容。 打开一个新的终端窗口,输入 man tr 或 info tr - 或者打开一个新的浏览器窗口,并链接到 gnu.org 上的 tr 手册页(关于这个链接,请参阅参考资料)。 另外,当有人给您发送了一个在 Mac OS 或 DOS/Windows 机器上创建的文本文件时,您会发现 tr 非常有用。如果没有将文件保存为使用 UNIX 换行符来表示行结束这种格式,则需要将这样的文件转换成本机 UNIX 格式,否则一些命令实用程序不会正确地处理这些文件。Mac OS 的行尾以回车字符结束,许多文本处理工具将这样的文件作为一行来处理。为了纠正这个问题,可以用下列技巧: Mac -> UNIX:tr '\r' '\n' < macfile > unixfile UNIX -> Mac:tr '\n' '\r' < unixfile > macfile Microsoft DOS/Windows 约定,文本的每行以回车字符并后跟换行符结束。为了纠正这个问题,可以使用下列命令: DOS -> UNIX:tr -d '\r' < dosfile > unixfile UNIX -> DOS:在这种情况下,需要用 awk,因为 tr 不能插入两个字符来替换一个字符。要使用的 awk 命令为 awk '{ print $0"\r" }' < unixfile > dosfile 另外,当您需要对文本文件做一些简单的整理工作(如用 tr -d '\t' 除去制表符,用 tr -s ' ' 除去多余的空格,或者用 tr -d '\n' 将分开的几行合成一行)时,会需要用 tr。同样,可以在 vi 内使用所有这些命令;只要记住:在 tr 命令前要加上您希望处理的行范围和感叹号(!),如 1,$!tr -d '\t'(美元符号表示最后一行)中所示。 有什么问题,或是有什么见解吗?我很欢迎您的来信 - 请将邮件发至 jacek@artymiak.com。 |
|
|
|
|
|
|
|
第 33 帖 | |
|
|
标题: 技巧:删除文件中空行的几种方法 1,cat filename|tr -s '\n'
2,sed '/^$/d' filename 3,awk '{if($0!="")print}' filename 4,用grep也可以,但是比较麻烦 ![]() 此帖于 03-07-22 02:59 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 34 帖 | ||
|
|
标题: 这是我刚写的XF86Config配置程序,调用xf86cfg,请大家看看有什么值得改进的? 还没系统地学过shell,水平比较菜,还请大家别见笑!如果哪里需要改进的请发短信或电子邮件:hamigua@8bb8.com,多谢!
原贴请见:http://www.linuxsir.com/bbs/showthre...threadid=53441 引用:
|
||
|
|
|
||
|
|
第 35 帖 | |
|
|
谢谢哈兄!不过应该帖到[精华区]也许更恰当
![]() |
|
|
|
|
|
|
|
第 36 帖 | ||
|
|
标题: 回复: 技巧:像执行命令一样执行脚本 引用:
|
||
|
|
|
||
|
|
第 37 帖 | |
|
|
很简单,你按照上述步骤就可以的呀!~O~,
以我的为例: 1,mkdir funlib 2,cat tree function tree { du|awk '{print $2, "== ("$1/2"kb)"}'|sort -f|sed -e "s,[^ /]*/\([^ /]*\) ==,\|--\1," -e"s,[^ /]*/,| ,g"; } 把这个tree文件cp到funlib目录中, 3,把: export FPATH=$HOME/funlib 加到/etc/profile文件中 4,运行: . /etc/profile 就可以啦~~ 此帖于 03-07-26 01:00 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 38 帖 | |
|
|
有一点不明白 怎么要先写一个再复制到funlib目录中
直接在它那里写行吗? |
|
|
|
|
|
|
|
第 39 帖 | |
|
|
行!
|
|
|
|
|
|
|
|
第 40 帖 | |
|
|
标题: 技巧:如何判断输入的是字符还是数字的三个方法 1,用输入的字符串和任意一个数字进行运算,可以判断!
代码:
代码:
代码:
|
|
|
|
|
|
|
|
第 41 帖 | |
|
|
标题: 技巧:使用bash定义你的快捷键 在~./inputrc中输入如下内容
Control-t:"top -i\C-m" 然后保存退出,关闭虚拟终端, 重新开启后,按Ctrl+t,看看会发生什么?呵呵,很好用吧, 可以把一些经常打的长的命令按照这样的方法输入,当然不要和别的已经定义的快捷键冲突 ![]() [提供:前任版主Pye兄) |
|
|
|
|
|
|
|
第 42 帖 | ||
|
|
我实验了一下,好象只能按"Enter"才能继续,是不是这样?
引用:
|
||
|
|
|
||
|
|
第 43 帖 | |
|
|
|
|
|
|
|
|
|
|
第 44 帖 | |
|
|
标题: 回复::技巧:使用script命令捕获终端屏幕 请问: javalee 斑竹,你所提供的这个命令跟输出重定向有区别吗?如果用tcpdump〉typescipt是不是同样的效果?
此帖于 03-07-31 23:51 被 hentala 编辑. |
|
|
|
|
|
|
|
第 45 帖 | |
|
|
一样不一样,你可以自己在命令行中敲入script,自己实践一下吧
![]() |
|
|
|
|
|