Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5703046
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: LINUX

2006-04-22 17:40:30

#1  debain下的一些有用的工具

1 .将DOS下的文本文件转换为Unix类型

将DOS文本文件(行尾=^M^J)转换成Unix文本文件(行尾=^J)。

     # apt-get install sysutils
     $ dos2unix dosfile
2 .使用 recode 转化文本文件

下面将在 DOS、 Mac 和 Unix 的文本文件中转换行结尾格式:

     $ recode /cl../cr mac.txt
     $ recode /cr.. unix.txt
     $ recode ../cl dos.txt

自由的 recode 在各种各样的字符集和界面中转换:

     $ recode charset1/surface1..charset2/surface2 \
       output.txt

3 .精巧的管道命令辅助脚本

下列脚本做为管道的一部分十分有用。

     find /usr | egrep -v "/usr/var|/usr/tmp|/usr/local"
                          # 查找 /usr 下的所有文件,排除某些文件
     xargs -n 1 command   # 将所有项作为标准输入来执行命令
     xargs -n 1 echo |    # 将空格隔离的项分开为行
     xargs echo      |    # 合并所有的行到一行里面
     grep -e pattern|     # 提取含有 pattern 的行
     cut -d: -f3 -|
             # 提取用 : 分开的第 3 列(比如说 passwd 文件)
     awk '{ print $3 }' | # 提取用空格分开的第 3 列
     awk -F'\t' '{ print $3 }' |
            # 提取用 tab 分开的第 3 列
     col -bx |            # 删除退格键,扩展 tab 为空格
     expand -|            # 扩展 tab
     sort -u|             # 排序并删除重复行
     
     tr '\n' ' '|         # 将多行连接为一行
     tr '\r' ''|          # 删除 CR
     tr 'A-Z' 'a-z'|      # 转化大写字母为小写
     sed 's/^/# /'|       # 将每行变为注释
     sed 's/\.ext//g'|    # 删除 .ext
     sed  -n -e 2p|       # 显示第 2 行
     head -n 2 -|         # 显示头两行
     tail -n 2 -|         # 显示最后两行

上面有一些对于脚本的编写,比较有好处。像tr '\n' ' '| 、 tr 'A-Z' 'a-z'|等等,当然这些任务的实现还有其他的方法。

4 .从网页上获取文本或邮件列表文档

下面的操作将网页转化为文本文件。从网上拷贝配置文件时十分有用。

     $ lynx -dump >textfile

links和w3m也可以这么用,只是生成的文本样式可能略有不同。

如果是邮件列表文档,可使用munpack从文本获得mime内容。

注意:这个对于网络管理员会有一定的帮助,尤其是编写一些脚本来读取网页上的ip列表。

5 .打印网页

下面的操作将网页内容打印成PostScript文件或发送到打印机。

     $ apt-get install html2ps
     $ html2ps URL | lpr

参阅lpr/lpd, 第 3.6.1 节。还可使用a2ps和mpage软件包生成PostScript文件。

6 .合并两个 PostScript 或 PDF 文件

可以将两个 PostScript 文件或 PDF 文件合并。

     $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite \
       -sOutputFile=bla.ps -f foo1.ps foo2.ps
     $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
       -sOutputFile=bla.pdf -f foo1.pdf foo2.pdf


7 .日程安排(cron,at)

在Linux下使用cron和at进行任务日程安排。参阅at(1)、crontab(5)、crontab(8)。

执行命令crontab -e创建或编辑crontab文件,为规律事务(按周期循环的事务)安排日程。下面的一个crontab文件样例:

     # use /bin/sh to run commands, no matter what /etc/passwd says
     SHELL=/bin/sh
     # mail any output to `paul', no matter whose crontab this is
     MAILTO=paul
     # Min Hour DayOfMonth Month DayOfWeek command (Day... are OR'ed)
     # run at 00:05, every day
     5  0  *  * *   $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
     # run at 14:15 on the first of every month -- output mailed to paul
     15 14 1  * *   $HOME/bin/monthly
     # run at 22:00 on weekdays(1-5), annoy Joe. % for newline, last % for cc:
     0 22 *   * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%.%%
     23 */2 1 2 *   echo "run 23 minutes after 0am, 2am, 4am ..., on Feb 1"
     5  4 *   * sun echo "run at 04:05 every sunday"
     # run at 03:40 on the first Monday of each month
     40 3 1-7 * *   [ "$(date +%a)" == "Mon" ] && command -args

执行at命令为偶然任务(只执行一次的任务)安排日程:

     $ echo 'command -args'| at 3:40 monday

这个命令经常用在系统管理上面,尤其是管理员写一个自动的脚本,让它定时运行
阅读(1916) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~