先说 sed , 这个名称来源于“stream editor”的简写。用它可以很简单快速的处理文本。
例如像这样,我们需要替换某些字符。
echo "My name is hooyes" | sed s/hooyes/jack/
# My name is jack
”s”表示替换(substitute), “/”是定界符,使用逗号,分号是等效的。
例如
echo "My name is hooyes" | sed s,hooyes,jack,
echo "My name is hooyes" | sed s:hooyes:jack:
执行了以上命令后我们看到了输出了 My name is jack
下一个例子我们看看如何用 sed 处理文本文件,首先创建一个文本文件,然后使用 sed 命令替换里面的文字。
echo "My website is https://hooyes.net" > ~/temp.txt
sed s/website/blog/ ~/temp.txt
# My blog is https://hooyes.net
我们看到了令行窗输出中website替换成了blog,但temp.txt文件没有变化;
如果想保存到新的文件:
sed s/website/blog/ ~/temp.txt > temp2.txt
如何把结果保存到原文件呢?如下:
sed -ie s/website/blog/ ~/temp.txt
Windows 服务器中使用netsh命令行配置端口转发很简单。
以下操作需要在管理员权限下的命令行窗口执行。
假设我们的服务器IP为104.198.14.52 需要把3100端口转发到另外一台服务器172.217.160.69的 3307 端口
netsh interface portproxy add v4tov4 listenaddress=104.198.14.52 listenport=3100 connectaddress=172.217.160.69 connectport=3307
netsh interface portproxy delete v4tov4 listenport=3100 listenaddress=104.198.14.52
netsh interface portproxy show all
注:IP地址可以是内网地址,也可是公网地址,支持IPv4 与 IPv6 , 关于 v4tov4 参数的解释
v4tov4 - IPv4 代理连接到另一个 IPv4 端口的参数
v4tov6 - IPv4 代理连接到 IPv6 的参数
v6tov4 - IPv6 代理连接到 IPv4 的参数
v6tov6 - IPv6 代理连接到另一个 IPv6 端口的参数
rinetd 快速配置实现端口转发,它配置简单方便。
我们通常都认为,简单的东西往往是好东西。
以下以CentOS 为例,其它Linux操作系统,请相应该修改命令。
2020年1月13日 更新:
boutell.com 已不再是rinetd的官网,作者已把代码开源到Github上, 请从作者Github下载源码
https://github.com/boutell/rinetd
或者从我Fork的版本
https://github.com/hooyes/rinetd
在CentOS输入下面的命令,一行一个:
#安装依赖
yum -y install gcc gcc-c++
#下载rinetd
wget https://boutell.com/rinetd/http/rinetd.tar.gz (下载地址已失效,请从github下载 )
#解压
tar -zxvf rinetd.tar.gz
#创建手册目录
mkdir -p /usr/man/man8
#进入目录
cd rinetd
#编译安装
make && make install
#编译成功后,请输入rinetd -v 查看当前版本