Linux脚本刷新屏幕显示输出,像top命令一下刷新屏幕 首先说一下怎么监听端口流量 刷新屏幕脚本 引用1 引用2 引用3 我自己准备在服务器上写一个监听IP:端口流量统计的一个脚本,但是每次都去手动执行脚本很麻烦,一直执行控制台输出又贼长,所以我就准备写一个像top命令一样的刷新脚本,说一下我的心得,文章结尾是我整理的资料以免大家再到处去找,已声明转载出处!如有问题请作者联系我。 首先说一下怎么监听端口流量 # 监听端口出站流量 iptables -A OUTPUT -p tcp --sport 9001 # 监听端口入站流浪 iptables -A INPUT -p tcp --dport 9001 # 查看监听统计信息 重启会清空,-x是以字节显示统计,不要-x就是以MB为单位显示 iptables -L -v -n -x 只要在iptables中添加完监听信息,之后(在重启服务器之前)直接运行查看统计信息就行了 刷新屏幕脚本 先贴一下我的最终版脚本,慢慢说明 #!/bin/bash # 当Ctrl+c 清空屏幕再退出,见引用3 trap "clear;exit" 2 # 翻一个新屏幕 clear # 每秒刷新输出屏幕的端口统计结果 while [ true ] do # 需要执行的功能命令,各写各的业务 report=`iptables -L -n -v` # echo输出特殊处理,见引用2 echo -ne "$report" # 使用ASCI码控制光标定位回到第一行第一列,见引用1 echo -ne "\033[1;1H" # 进程睡眠1秒 sleep 1 done trap 后面一定要跟"",双引号内写要执行的命令,否则无效,然后再接要拦截的操作标识符 clear实质上是输出一个换页符,将屏幕下移一页,并没有清空输出,还可以使用滚轮向上滑动 echo -ne “$report” 一定要使用双引号,如果双引号内要写命令就用``(这不是单引号,是英文输入状态下的Tab上方的键),$report这里是引用变量所以不用 引用1 转自:https://blog.csdn.net/shenwansangz/article/details/46865513 echo进行颜色输出的时候,要使用参数-e 格式: echo -e “\033[字背景颜色;字体颜色m” 如:echo -e “\033[32;40m” 在上面命令中,”\033[32;40m”表示定义后面文本的颜色,“\033”表示启动一个转义序列,“[”定义开始颜色定义,“0”定义默认的字体颜色,其它部分稍后定义。“32”定义文本的前景色,这里32表示绿色;“40”定义文本的背景色,40表示黑色。 我们一共有8种字体颜色可供选择: 它们分别是30 (黑色)、31 (红色)、32 (绿色)、33 (黄色)、34 (蓝色)、35 (紫红色)、36 (青色)和37 (白色)。 对于底色也有8种颜色可供选择,只需要将字体颜色的3修改为4即可,例如40、41、42、43、44、45、46、47。 另外,我们还可以用echo进行光标定位 如:echo -e “\033[10;5H\033[31;46mthis is a test”,表示,将光标移到第10行第5列,并输出this is a test字样,该字样前景色为红色,背景色为青色 更多echo输出的控制,具体的摘抄一些如下: \033[0m 关闭所有属性 \033[1m 设置高亮度 \033[4m 下划线 \033[5m 闪烁 \033[7m 反显 \033[8m 消隐 \033[30m — \033[37m 设置前景色 \033[40m — \033[47m 设置背景色 \033[nA 光标上移n行 \033[nB 光标下移n行 \033[nC 光标右移n行 \033[nD 光标左移n行 \033[y;xH设置光标位置 \033[2J 清屏 \033[K 清除从光标到行尾的内容 \033[s 保存光标位置 \033[u 恢复光标位置 \033[?25l 隐藏光标 \033[?25h 显示光标 引用2 转载地址:http://blog.csdn.net/panpan639944806/article/details/19940127 echo -n 不换行输出 $echo -n “123” $echo “456” 最终输出 123456 而不是 123 456 echo -e 处理特殊字符若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v 与\f相同; \ 插入\字符; 引用3 转自:https://zhidao.baidu.com/question/111701847.html linux中有trap命令可以拦截到ctrl+c信号并忽略它: 使用命令kill -l可以列出系统的信号名称 通常我们需要忽略的信号有四个,即:HUP, INT, QUIT, TSTP,也就是信号1, 2, 3, 24; QUIT即信号3就是表示操作CTRL+C; trap的使用格式为: trap 操作 信号名称 例如: trap “echo iuioooo” 3 表示捕获到信号3(ctrl+c)时并不会退出而是会 执行命令echo iuioooo; 同样可以trap “” 3 表示什么也不操作。 使用 trap 3 来使其恢复默认设置。 (责任编辑:IT) |