当前位置:  建站>运营/SEO
本页文章导读:
    ▪linux shell必知必会sed、awk       Table of Contents 1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 7. 脚本 8. 小技巧 1. Sed简介 sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓.........
    ▪升级 XPLite 中的 IE      升级 XPLite 中的 IE 网上下载的 XPLite 中的 IE 是 6.0,而现在的许多网站必须要 8.0 以上,没有办法,只能升级。 但是,下载的程序不能安装。 经查,是由于没有 Windows Update 服务。 1、从别的电.........
    ▪Nginx RTMP 模块 nginx-rtmp-module 指令详解      译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解。 指令 Core rtmp 语法:rtmp { ... } 上下文:根 描述:保存所有 RTMP 配置的块。 server 语法:server { ... } 上下文:rtmp 描.........

[1]linux shell必知必会sed、awk
    来源: 互联网  发布时间: 2013-10-31

Table of Contents

1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 7. 脚本 8. 小技巧
1. Sed简介

sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed 3.02。

2. 定址

可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如1,3表示1,2,3行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定 。

3. Sed命令

调用sed命令有两种形式:

  • sed [options] 'command' file(s)

  • sed [options] -f scriptfile file(s)

a\

在当前行后面加入一行文本。

b lable

分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。

c\

用新的文本改变本行的文本。

d

从模板块(Pattern space)位置删除行。

D

删除模板块的第一行。

i\

在当前行上面插入文本。

h

拷贝模板块的内容到内存中的缓冲区。

H

追加模板块的内容到内存中的缓冲区

g

获得内存缓冲区的内容,并替代当前模板块中的文本。

G

获得内存缓冲区的内容,并追加到当前模板块文本的后面。

l

列表不能打印字符的清单。

n

读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。

N

追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。

p

打印模板块的行。

P(大写)

打印模板块的第一行。

q

退出Sed。

r file

从file中读行。

t label

if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。

T label

错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。

w file

写并追加模板块到file末尾。

W file

写并追加模板块的第一行到file末尾。

!

表示后面的命令对所有没有被选定的行发生作用。

s/re/string

用string替换正则表达式re。

=

打印当前行号码。

#

把注释扩展到下一个换行符以前。

以下的是替换标记
  • g表示行内全面替换。

  • p表示打印行。

  • w表示把行写入一个文件。

  • x表示互换模板块中的文本和缓冲区中的文本。

  • y表示把一个字符翻译为另外的字符(但是不用于正则表达式)

4. 选项
-e command, --expression=command

允许多台编辑。

-h, --help

打印帮助,并显示bug列表的地址。

-n, --quiet, --silent

取消默认输出。

-f, --filer=script-file

引导sed脚本文件名。

-V, --version

打印版本和版权信息。

5. 元字符集
^

锚定行的开始 如:/^sed/匹配所有以sed开头的行。

$

锚定行的结束 如:/sed$/匹配所有以sed结尾的行。

.

匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d。

*

匹配零或多个字符 如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。

[]

匹配一个指定范围内的字符,如/[Ss]ed/匹配sed和Sed。

[^]

匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。

\(..\)

保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。

&

保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。

\<

锚定单词的开始,如:/\<love/匹配包含以love开头的单词的行。

\>

锚定单词的结束,如/love\>/匹配包含以love结尾的单词的行。

x\{m\}

重复字符x,m次,如:/0\{5\}/匹配包含5个o的行。

x\{m,\}

重复字符x,至少m次,如:/o\{5,\}/匹配至少有5个o的行。

x\{m,n\}

重复字符x,至少m次,不多于n次,如:/o\{5,10\}/匹配5--10个o的行。

6. 实例
删除:d命令
  • $ sed '2d' example-----删除example文件的第二行。

  • $ sed '2,$d' example-----删除example文件的第二行到末尾所有行。

  • $ sed '$d' example-----删除example文件的最后一行。

  • $ sed '/test/'d example-----删除example文件所有包含test的行。

替换:s命令
  • $ sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。

  • $ sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换

        
[2]升级 XPLite 中的 IE
    来源: 互联网  发布时间: 2013-10-31

升级 XPLite 中的 IE

网上下载的 XPLite 中的 IE 是 6.0,而现在的许多网站必须要 8.0 以上,没有办法,只能升级。
但是,下载的程序不能安装。
经查,是由于没有 Windows Update 服务。
1、从别的电脑上 \Windows\System32 目录中复制 WU*.* 文件;
2、导出  HKLM\SYSTEM\CurrentControlSet\Services\wuauserv;
3、编辑注册表 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost 下的 netsvcs,在其中添加 wuauserv;
4、注册控件 for %1 in (wu*.dll) do regsvr32 %1。
至此,应该可以安装 IE8 了。

 

作者:hadstj 发表于2013-7-8 16:09:39 原文链接
阅读:36 评论:0 查看评论

    
[3]Nginx RTMP 模块 nginx-rtmp-module 指令详解
    来源: 互联网  发布时间: 2013-10-31
译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解。
指令
Core
rtmp
语法:rtmp { ... }
上下文:根
描述:保存所有 RTMP 配置的块。
server
语法:server { ... }
上下文:rtmp
描述:声明一个 RTMP 实例。
rtmp {
  server {
  }
}
listen
语法:listen (addr[:port]|port|unix:path) [bind] [ipv6only=on|off] [so_keepalive=on|off|keepidle:keepintvl:keepcnt]
上下文:server
描述:给 NGINX 添加一个监听端口以接收 RTMP 连接。
server {
    listen 1935;
}
application
语法:application name { ... }
上下文:server
描述:创建一个 RTMP 应用。application 名的模式并不类似于 http location。
server {
    listen 1935;
    application myapp {
    }
}
timeout
语法:timeout value
上下文:rtmp, server
描述:Socket 超时。这个值主要用于写数据时。大多数情况下,RTMP 模块并不期望除 publisher 端口之外的其他端口处于活动状态。如果你想要快速关掉 socket 可以用 keepalive 或者 RTMP ping 等。timeout 默认值为 1 分钟。
timeout 60s;
ping
语法:ping value
上下文:rtmp, server
描述:RTMP ping 间隔。零值的话将 ping 关掉。RTMP ping 是一个用于检查活动连接的协议功能。发送一个特殊的包到远程连接,然后在 ping_timeout 指令指定的时间内期待一个回复。如果在这个时间里没有收到 ping 回复,连接断开。ping 默认值为一分钟。ping_timeout 默认值为 30 秒。
ping 3m;
ping_timeout 30s;
ping_timeout
语法:ping_timeout value
上下文:rtmp, server
描述:请参考上文 ping 描述。
max_streams
语法:max_streams value
上下文:rtmp, server
描述:设置 RTMP 流的最大数目。数据流被整合到一个单一的数据流里。不同的频道用于发送命令、音频、视频等。默认值为 32,适用于大多数情况。
max_streams 32;
ack_window
语法:ack_window value
上下文:rtmp, server
描述:设置 RTMP 确认视窗大小。这是对端发送确认包到远端后应该收到的字节数量。默认值为 5000000。
ack_window 5000000;
chunk_size
语法:chunk_size value
上下文:rtmp, server
描述:流整合的最大的块大小。默认值为 4096。这个值设置的越大 CPU 负载就越小。这个值不能低于 128。
chunk_size 4096;
max_queue
语法:max_queue value
上下文:rtmp, server
描述:输入数据报文最大尺寸。所有输入数据会被分割成报文(然后进一步分割为块)。报文在处理结束之前会放在内存里。理论上讲,接收到的报文很大的话对于服务器的稳定性可能会有影响。默认值 1M 对于大多数情况就足够了。
max_message 1M;
out_queue
out_cork
Access
allow
语法:allow [play|publish] address|subnet|all
上下文:rtmp, server, application
允许来自指定地址或者所有地址发布/播放。allow 和 deny 指令的先后顺序可选。
allow publish 127.0.0.1;
deny publish all;
allow play 192.168.0.0/24;
deny play all;
deny
语法:deny [play|publish] address|subnet|all
上下文:rtmp, server, application
描述:参考 allow 的描述。
Exec
exec
语法:exec command arg*
上下文:rtmp, server, application
描述:定义每个流发布时要执行的带有参数的外部命令。发布结束时进程终止。第一个参数应该是二进制可执行文件的完整路径。关于这个进程将会做些什么事没有任何假定。但这一特点在使用 ffmpeg 进行流转换时是很有用的。FFmpeg 被假定作为客户端连接到 nginx-rtmp 然后作为发布者输出转换流到 nginx-rtmp。类似于 $var/${var} 形式的替换可以在命令行使用:
* $name - 流的名字。
* $app - 应用名。
* $addr - 客户端地址。
* $flashver - 客户端 flash 版本。
* $swfurl - 客户端 swf url。
* $tcurl - 客户端 tc url。
* $pageurl - 客户端页面 url。
可以在 exec 指令中定义 Shell 格式的转向符用于写输出和接收输入。支持如下
* 截断输出 >file。
* 附加输出 >>file。
* 重定向描述符类似于 1>&2。
* 输入 <file。
以下 ffmpeg 调用将输入流转码为 HLS-ready 流(H264/AAC)。运行这个示例,FFmpeg 须编译为支持 libx264 & libfaac。
application src {
    live on;
    exec ffmpeg -i rtmp://localhost/src/$name -vcodec libx264 -vprofile baseline -g 10 -s 300x200 -acodec libfaac -ar 44100 -ac 1 -f flv rtmp://localhost/hls/$name 2>>/var/log/ffmpeg-$name.log;
}


application hls {
    live on;
    hls on;
    hls_path /tmp/hls;
    hls_fragment 15s;
}
exec_static
语法:exec_static command arg*
上下文:rtmp, server, application
描述:类似于 exec 指令,但在 nginx 启动时将运行定义的命令。因为(启动时)尚无会话上下文,不支持替换。
exec_static ffmpeg -i http://example.com/video.ts -c copy -f flv rtmp://localhost/myapp/mystream;
exec_kill_signal
语法:exec_kill_signal signal
上下文:rtmp, server, application
描述:设置进程终止信号。默认为 kill(SIGKILL)。你可以定义为数字或者符号名(POSIX.1-1990 信号)。
exec_kill_signal term;
exec_kill_signal usr1;
exec_kill_signal 3;
respawn
语法:respawn on|off
上下文:rtmp, server, application
描述:如果打开 respawn 子进程,进程终止时发布会仍然继续。默认为打开。
respawn off;
respawn_timeout
语法:respawn_timeout timeout
上下文:rtmp, server, application
描述:启动新的子实例之前,设置 respawn 超时时间。默认为五秒。
respawn_timeout 10s;
exec_publish
语法:exec_publish command arg*
上下文:rtmp, server, application
描述:指定发布事件触发的带有参数的外部命令。返回码是未解析的。这里可以用 exec 替换。另外,args 变量支持持有查询字符串
    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3