#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
这个命令经常用在系统管理上面,尤其是管理员写一个自动的脚本,让它定时运行
阅读(1963) | 评论(0) | 转发(0) |