rf2013 侠客风云传存档修改器存档问题

关于 RF2013 BUG 刷14Y的方法! 从苦逼到高富帅最详细的方法!【lumia920吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:117,397贴子:
关于 RF2013 BUG 刷14Y的方法! 从苦逼到高富帅最详细的方法!收藏
原来我也是试了好多好多好多好多次 都没成功我第一次是花了我 3个小时 按出只是一个4星的龙门....够苦逼的后来又不甘心再试 终于成功了方法跟网上说的一样 我两个方法一起用(免费冷却才好用 不用苦逼等CD)方法1. 切换到转会时瞬间同时按免费跟黄金(就是1和3)方法2.不用切换 直接在转会页面同时按免费跟黄金 按出了充值 就按返回再同时按 以此重复最重要是按的时间差 跟运气 (还有一点就是要把机子按卡 让机子处理速度有些缓慢时更加容易出)其实 大家没按出来 觉得部分是因为一个原因 就是按多了 没了耐心跟手指起了惯性作用我按出来是一次机遇 在我用方法2试了无数次以后 一次手指突然抽筋 按不动返回键 忽然再次进入黄金射球这次进入 我发现跟我上次有一个共通点就是 黄金射球的牌 下面绿色的条变成了暗色(就是选择时的颜色) 其实这个情况我发动过很多次 基本上都是因为手指起了惯性作用 每次都很快的按返回键 取消了进入黄金射球按照刚才我说的 当黄金射球下面的绿条变成了暗色时 什么都不用做 放开手指 等1~2秒 或者更久 就会进入黄金射球 一定要有耐心发动这个BUG的攻略基本是 运气+次数+质量 当三者合一 恭喜你14Y是你的了!!
最后一波年终福利祭出 ,直降300,魅蓝 Note6 不惧全面屏
还有一个分享是 我抽到黄金射球成功后 抽到的竟然是我最喜欢用的梅西
补充一点 我是开了节电模式的 不知道有没印象 权当参考
登录百度帐号推荐应用[root@localhost /]# rm -rf /mnt/nfs/
rm: cannot remove `/mnt/nfs': Device or resource busy
解决方法:
[root@localhost /]# umount /mnt/nfs/
[root@localhost /]# rm -rf /mnt/nfs/
主机 WEB-PC1(NetBIOS 名称) 的IP是 192.168.3.100
[root@localhost /]# smbclient -L 192.168.3.100 -U&&admininstrator&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Enter admininstrator's password:
Domain=[WORKGROUP] OS=[Windows 7 Ultimate 7601 Service Pack 1] Server=[Windows 7 Ulti&&mate 6.1]
&&&&&&& Sharename&&&&&& Type&&&&& Comment
&&&&&&& ---------&&&&&& ----&&&&& -------
&&&&&&& ADMIN$&&&&&&&&& Disk&&&&& 远程管理
&&&&&&& C$&&&&&&&&&&&&& Disk&&&&& 默认共享
&&&&&&& D$&&&&&&&&&&&&& Disk&&&&& 默认共享
&&&&&&& E$&&&&&&&&&&&&& Disk&&&&& 默认共享
&&&&&&& F$&&&&&&&&&&&&& Disk&&&&& 默认共享
&&&&&&& IPC$&&&&&&&&&&& IPC&&&&&& 远程 IPC
&&&&&&& IPS1&&&&&&&&&&& Disk
&&&&&&& print$&&&&&&&&& Disk&&&&& 打印机驱动程序
session request to 192.168.3.100 failed (Called name not present)
session request to 192 failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)
NetBIOS over TCP disabled -- no workgroup available
[root@localhost /]# smbclient -L&WEB-PC1(NetBIOS 名称) -U administrator
Enter administrator's password:
Domain=[WORKGROUP] OS=[Windows 7 Ultimate 7601 Service Pack 1] Server=[Windows 7 Ultimate 6.1]
&&&&&&& Sharename&&&&&& Type&&&&& Comment
&&&&&&& ---------&&&&&& ----&&&&& -------
&&&&&&& ADMIN$&&&&&&&&& Disk&&&&& 远程管理
&&&&&&& C$&&&&&&&&&&&&& Disk&&&&& 默认共享
&&&&&&& D$&&&&&&&&&&&&& Disk&&&&& 默认共享
&&&&&&& E$&&&&&&&&&&&&& Disk&&&&& 默认共享
&&&&&&& F$&&&&&&&&&&&&& Disk&&&&& 默认共享
&&&&&&& IPC$&&&&&&&&&&& IPC&&&&&& 远程 IPC
&&&&&&& IPS1&&&&&&&&&&& Disk
&&&&&&& print$&&&&&&&&& Disk&&&&& 打印机驱动程序
Domain=[WORKGROUP] OS=[Windows 7 Ultimate 7601 Service Pack 1] Server=[Windows 7 Ultimate 6.1]
&&&&&&& Server&&&&&&&&&&&&&& Comment
&&&&&&& ---------&&&&&&&&&&& -------
&&&&&&& SAMBASERVER&&&&&&&&& Samba Server Version 3.5.8-75.fc13
&&&&&&& WEB-PC1
&&&&&&&&WEB-PC2
&&&&&&& Workgroup&&&&&&&&&&& Master
&&&&&&& ---------&&&&&&&&&&& -------
&&&&&&& WORKGROUP&&&&&&&&&&& WEB-PC1
&mount -t cifs //IP地址/共享目录 /mnt/liunx目录 -o username=username,workgroup=workgroupname
如果不加 workgroup=workgroupname 参数,可能出现 mount&error 13 =&Permission&denied。
&Samba是SMB的一种实现方法,主要用来实现Linux系统的文件和打印服务。Linux用户通过配置使用Samba服务器可以实现与Windows 用户的资源共享。守护进程smbd和nmbd是Samba的核心,在全部时间内运行。nmbd程序使得通过企图计算机可以浏览Linux服务器。
CentOS6& Samba服务器配置&
一、安装前准备&
1、&使用Samba服务器需要防火墙开放以下端口&
&&& UDP 137 UDP 138 TCP 139 TCP 445
#配置防火墙端口&
[root@www&~]&vi /etc/sysconfig/iptables&&&&
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
#重启防火墙,使规则生效&
[root@&www&~]&/etc/rc.d/init.d/iptables restart&&&&&
2、关闭CentOS6系统的 SELinux&
[root@&www&~]&vi /etc/selinux/config&
#SELINUX=enforcing&&&&&#注释掉&
#SELINUXTYPE=targeted&&#注释掉&
SELINUX=disabled&&&&&&&#增加&
#:wq& 保存。&
#重启系统&
[root@&www&~]&shutdown -r now& 或者 init 6
二、安装Samba
1&、检查Samba服务包是否已安装&
[root@&www&~]&rpm -qa | grep samba&
&&& samba-3.5.4-68.el6.x86_64
&&& samba-common-3.5.4-68.el6.x86_64
&&& samba-client-3.5.4-68.el6.x86_64
&&& samba4-libs-4.0.0-23.alpha11.el6.x86_64
&&& samba-winbind-clients-3.5.4-68.el6.x86_64
&& 说明samba已经安装,如果没有安装,运行下面命令安装
[root@&www&~]&yum install samba&
2、配置samba&
[root@&www&~]&chkconfig smb on& &#设置 Samba开机自动启动&
[root@&www&~]&service smb start&&&&&&&#启动Samba服务&
[root@&www&~]&/etc/init.d/smb restart&&#重启&
[root@&www&~]&/etc/init.d/smb stop&&&&&#停止&
[root@&www&~]&cp /etc/samba/smb.conf&&&/etc/samba/bak_smb.conf_bak&&&#备份&
[root@&www&~]&cp /etc/samba/bak_smb.conf_bak& /etc/samba/smb.conf&&&#恢复&
[root@&www&~]&vi /etc/samba/smb.conf&
[global]&&&&&&&&&&&&&&&&&&&&&&&&&&&#找到这一行(全局设置标签),在此行下面添加如下行:&
&&& workgroup = WORKGROUP&&&&&&&&& #工作组名称改为 Windows 网络所定义的工作组名
&&& server string = Samba Server&& #设置samba服务器的主机名称
&&& security = user&&&&&&&&&&&&&&& #设置samba服务器安全级别为user,即以账号和口令访问
&&& netbios name = SambaServer&&&& #设置Samba服务器访问别名
#在配置文件的末尾添加以下自定义内容
[SambaServer]&&&&&&&&&&&&&&&&&&&&& #在Windows网上邻居中看到的共享目录的名字
&&& comment = SambaServer&&&&&&&&& #在Windows网上邻居中看到的共享目录的备注信息
&&& path = /home/SambaServer&&&&&& #共享目录在系统中的位置
&&& public = no&&&&&&&&&&&&&&&&&&&&#不公开目录&
&&& writable = yes&&&&&&&&&&&&&&&&&#共享目录可以读写&
&&& valid users=SambaServer&&&&&&& #只允许SambaServer用户访问
3、添加访问linux共享目录的账号SambaServer
&& 用户家目录为/home/SambaServer, 用户登录终端设为/bin/false(即使之不能登录系统)&
[root@&www&~]&mkdir -p /home/SambaServer&#建立SambaServer文件夹&
[root@&www&~]&cd /home/SambaServer&
[root@&www&~]&touch& samba.txt&&&&#创建测试文件samba.txt&
[root@&www&~]&useradd SambaServer -d /home/SambaServer -s /bin/false&
[root@&www&~]&chown SambaServer:SambaServer /home/SambaServer -R&
4、将用户SambaServer添加入到Samba用户数据库,并设置登录共享目录的密码为:123456&
[root@&www&~]&smbpasswd -a SambaServer&
&& New SMB password:  输入该用户用于登录Samba的密码
&& Retype new SMB password:  再次确认输入该密码
&& Added user SambaServer.
#备注:这里设置的密码是SambaServer用户登录该机的Samba共享的密码,非登陆OS的密码;
5、重启Samba服务器&
[root@&www&~]&/etc/init.d/smb restart&
6、浏览共享信息&
在Windows客户端输入 \\ip& 或者 \\SambaServer& #服务器别名&
&& 回车之后,会跳出来登录框,输入账号SambaServer ,密码123456 , 即可访问共享目录
至此,CentOS 6 linux samba服务器配置完成。
服务名:smb
配置目录:/etc/sabma/
主配置文件:/etc/sabma/smb.conf
如果无法访问共享目录的内容,请把防火墙停止;&
[root@&www&~]&service iptables stop
SWAT工具使用
&&&&&& SWAT 是通过浏览器对 Samba 进行管理的工具之一。通过 SWAT ,可以在 Samba 允许访问范围内的客户端,用浏览器对服务端的 Samba 进行控制。在线文档的阅览、smb.conf 的确认和编辑,以及密码的变更、服务的重启等等都可以通过 SWAT 来完成,它的直观让 Samba 变得温和化,对那些不喜欢文本界面管理服务器的朋友来说,是一个强大的工具。
一 安装 SWAT&
 首先,通过 yum 在线安装 SWAT 。&
[root@&www&~]#&yum -y install samba-swat& &#&在线安装 SWAT
二 配置 SWAT&  
然后编辑 /etc/xinetd.d/swat ,对其进行配置。本文的原则是只允许内网以及本地的客户端对 SWAT 进行访问。&
[root@&www&~]#&vi /etc/xinetd.d/swat& &#&编辑 SWAT 的配置文件&
only_from = 127.0.0.1 &#&找到此行,在下面添加如下行:
only_from = 192.168.0.0 &#&添加此行,只允许内网范围对 SWAT 进行访问
disable = yes &#&找到此行,将 yes 改为 no
disable = no &#&变为此状态
启动 SWAT&
  在启动 SWAT 之前,先将防火墙中 SWAT 使用的 901 号端口开放。&
[root@&www&~]#&vi /etc/sysconfig/iptables& &#编辑防火墙规则&
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 901 -j ACCEPT &#&添加此行开放SWAT的901端口
[root@&www&~]#&/etc/rc.d/init.d/iptables restart& &#重新启动防火墙,使新的规则生效&
由于 SWAT 的启动是通过超级服务器,所以只要重新启动 xinetd 即可启动 SWAT 。&
[root@&www&~]#&/etc/rc.d/init.d/xinetd restart& &#&重新启动超级服务器,启动 SWAT&
三 测试 SWAT&
   在服务端启动 SWAT 后,我们就可以通过 SWAT 允许范围(本文以内网192.168.0.0及本地127.0.0.1为例) 内的客户机的浏览器中,通过 http://服务器的内网IP:901 来访问服务端的 SWAT 了。如下所示:
1、在浏览器中输入“http://服务器的内网IP:901”(本文以笔者测试环境的“http://192.168.0.9:901”为例。请各自替换为您的服务器内网IP地址。),然后输入 root 用户的用户名及密码进入 SWAT 的管理首页;
2、确认出现如下 SWAT 管理中心的首页:
  通过 SWAT 管理 Samba 与直接修改 smb.conf 的方式,在本质上并无差异,但通过浏览器访问的方式,可以使 Samba 的管理更加温和化,更加适用于不擅长使用文本界面、直接修改配置文件的朋友。
linux 访问windows文件配置&
&&&&& 通常我们使用Samba都是在Windows上访问做为Samba服务器的Linux。但是在某些时候情况会反过来,你可能需要从Linux上访问Windows共享出来的目录。幸运的是,Samba本身也支持这种类型的访问。
要想从Linux访问Windows上的共享目录,需要安装smbclient工具。在CentOS上则使用yum命令安装:
[root@&www&~]#&yum install samba-client.i386&
安装好smbclient工具,就可以使用mount命令来挂载Windows上的共享目录了:&
[root@&www&~]#&mount -t cifs -o username=easwy //windows-server/share /mnt/winshare
在这里我们使用的文件系统类型是cifs(Common Internet File System)而不是smbfs,因为Linux Kernel将不再支持smbfs。而从这个网站测试结果来看,smbfs的性能也远不如cifs。
我们所用的mount -t cifs命令其实会调用mount.cifs,如果你在mount时失败,先检查一下你的mount.cifs命令是否存在。
如果windows计算机处于域中,那么在username一项输入你的域用户名domain/username就可以了。windows-server可以是一台计算机的名称,也可以是一个IP地址。
如果想列出Windows上的所有共享资源,可以使用命令:&
这条命令会列出windows服务器上所有的共享目录和文件。
[root@&www&~]#&smbclient -L //windows-server -U easwy
[root@&www&~]#&smbclient -L //linux-server -U root
session setup failed: NT_STATUS_LOGON_FAILURE
解决方法如下:
[root@&www&~]#&smbpasswd -a root
然后可以看到正确的结果:
Enter root's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.8-75.fc13]
&&&&&&& Sharename&&&&&& Type&&&&& Comment
&&&&&&& ---------&&&&&& ----&&&&& -------
&&&&&&& IPC$&&&&&&&&&&& IPC&&&&&& IPC Service (Samba Server Version 3.5.8-75.fc1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 3)
&&&&&&& root&&&&&&&&&&& Disk&&&&& Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.8-75.fc13]
&&&&&&& Server&&&&&&&&&&&&&& Comment
&&&&&&& ---------&&&&&&&&&&& -------
&&&&&&& LOCALHOST&&&&&&&&&&& Samba Server Version 3.5.8-75.fc13
&&&&&&& Workgroup&&&&&&&&&&& Master
&&&&&&& ---------&&&&&&&&&&& -------
&&&&&&& MYGROUP&&&&&&&&&&&&& LOCALHOST
&&&&&&& WORKGROUP&&&&&&&&&&T410_JIMMY
samba主配置文件详解:/etc/sabma/smb.conf&
#============================== Global Settings =============================
workgroup&
语法 workgtoup = &工作组群&;
预设 workgroup = MYGROUP
说明 设定 Samba Server 的工作组
例 workgroup = workgroup 和WIN2000S设为一个组,可在网上邻居可中看到共享
server string&
语法 server string = &说明&;
预设 sarver string = Samba Server
说明 设定 Samba Server 的注释
其他 支持变量 t%-访问时间 I%-客户端IP m%-客户端主机名 M%-客户端域名 S%-客户端用户名
例 server string = this is a Samba Server 设定出现在Windows网上邻居的 Samba Server 注释为 this is a Samba Server
hosts allow&
语法 hosts aoolw = ; ...
预设 ; host allow = 192.168.1. 192.168.2. 127.
说明 限制允许连接到 Samba Server 的机器,多个参数以空格隔开。表示方法可以为
完整的IP地址,如 192.168.0.1
网段,如 192.168.0.
例 hosts allow = 192.168.1. 192.168.0.1 表示允许192.168.1 网段的机器 网址为192.168.0.1 的机器 连接到自己的samba server
printcap name&
语法 printcap name = &打印机配置文件&;
预设 printcap name = /etc/printcap
说明 设定 samba srever 打印机的配置文件
例 printcap name = /etc/printcap 设定 samba srever 参考 /etc/printcap 档的打印机设定
load printers&
语法 load printers = ;
预设 load printers = yes
说明 是否在开启 samba server 时即共享打印机
语法 printing = &打印机类型&;
预设 printing = lprng
说明 设定 samba server 打印机所使用的类型,37行为目前所支持的类型
guest account&
语法 guert account = &帐户名称&;
预设 guert account = pcguest
说明 设定访问 samba server 的来宾帐户(即访问时不用输入用户名和密码的帐户),若设为pcguest的话则为默认为"nobody"用户
例 guert account = andy 设定设定访问 samba server 的来宾帐户以andy用户登陆,则此登陆帐户享有andy用户的所有权限
语法 log file = &日志文件&;
预设 log file = /var/log/samba/%m.log
说明 设定 samba server 日志文件的储存位置和文件名(%m代表客户端主机名)
max log size&
语法 max log size = ;
预设 max log size = 0
说明 设定日子文件的最大容量,单位KB 这里的预设值0代表不做限制
语法 security = &等级&;
预设 security = user
说明 设定访问 samba server 的安全级别 共有四种
share---不需要提供用户名和密码
user----需要提供用户名和密码,而且身份验证由 samba server 负责
server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台 samba server作身份验证
domain--需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证
password server&
语法 password server = ;
预设 password server = ;
说明 指定某台服务器(包括windows 和 linux)的密码,作为用户登入时验证的密码
其他 此项需配合 security = server时,才可设定本参数
password level&
username level&
语法 password level = &位数&;
username level = &位数&;
预设 password level = 8
username level = 8
说明 设定用户名和密码的位数,预设为8位字符
encrypt passwords&
语法 encrypt passwords = ;
预设 encrypt passwords = yse
说明 设定是否对samba的密码加密
smb passwd file&
语法 smb passwd file = &密码文件&;
预设 smb passwd file = /etc/samba/smbpasswd
说明 设定samba的密码文件
local master&
语法 local master = ;
预设 local master = no
说明 设定 samba server 是否要担当LMB角色(LMB负责收集本地网络的Browse List资源),通常无特殊原因设为no
os level = 33
语法 os level = &数字&;
预设 os level = 33
说明 设定 samba server的os level. os level从 0 到 255 . winNT的os level为33, win95/98的os level 是 1 .
若要拿samba server 当LMB或DMB则它的os level至少要大于NT的33以上
domain master&
语法 domain master = ;
预设 domain master = yes
说明 设定 samba server 是否要担当DMB角色(DMB会负责收集其他子网的Browse List资源),通常无特殊原因设为no
preferred master&
语法 preferred master = ;
预设 preferred master = yes
说明 设定 samba server 是否要担当PDC角色(PDC会负责追踪网络帐户进行的一切变更),通常无特殊原因设为no.
(同一网段内不可有两个PDC,他们会每5分钟抢主控权一次)
wins support&
语法 wins support = ;
预设 wins support = yes
说明 设定samba server 是否想网络提供WINS服务,通常无特殊原因设为no.
除非所处网络上没有主机提供WINS服务且需要此台samba server提供WINS服务是才设yes
其他 wins support 和 wins server 只能选择一个
wins server&
语法 wins server = ;
预设 wins server = w.x.y.z
说明 设定samba server 是否要使用别台主机提供的WINS服务.通常无特殊原因设为no.除非所处网络上有一台主机提供WINS服务才要设yes
其他 wins support 和 wins server
例 wins server = 192.168.0.1 表示samba server要使用192.168.0.1提供的WINS服务
#============================== Share Definitions =============================
comment = Home Directories
browseable = no
writable = yes
valid users = %S
使用者本身的"家"目录,当使用者以samba使用者身份登入samba server 后,
samba server 底下会看到自己的家目录,目录名称是使用者自己的帐号
[分享的资源名称]
&指令1&; = (参数)
&指令2&; = (参数)
..........................
要提供分享资源时,须先把欲分享的资源以 [ ] 符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下
comment---------注释说明
path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
printable-------是yes/否no允许打印
hide dot ftles--是yes/否no隐藏隐藏文件
public----------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
guest ok--------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
read only-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
writable--------是yes/否no不以只读方式共享当与read only发生冲突时,无视read only
vaild users-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
invalid users---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
read list-------设定此名单内的成员为只读(用户名/@组名)
write list------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
create mask-----建立文件时所给的权限
directory mask--建立目录时所给的权限
force group-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force user------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allow hosts-----设定只有此网段/IP的用户才能访问共享资源
allwo hosts = 网段 except IP
deny hosts------设定只有此网段/IP的用户不能访问共享资源
allow hosts=本网段指定IP指定IP
deny hosts=指定IP本网段指定IP
编码问题:
1. Sed简介
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下介绍的是Gnu版本的Sed 3.02。
可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如1,3表示1,2,3行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定 。
3. Sed命令
调用sed命令有两种形式:
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
在当前行后面加入一行文本。
分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
用新的文本改变本行的文本。
从模板块(Pattern space)位置删除行。
删除模板块的第一行。
在当前行上面插入文本。
拷贝模板块的内容到内存中的缓冲区。
追加模板块的内容到内存中的缓冲区
获得内存缓冲区的内容,并替代当前模板块中的文本。
获得内存缓冲区的内容,并追加到当前模板块文本的后面。
列表不能打印字符的清单。
读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
打印模板块的行。
打印模板块的第一行。
从file中读行。
if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
写并追加模板块到file末尾。
写并追加模板块的第一行到file末尾。
表示后面的命令对所有没有被选定的行发生作用。
s/re/string
用string替换正则表达式re。
打印当前行号码。
把注释扩展到下一个换行符以前。
以下的是替换标记
g表示行内全面替换。
p表示打印行。
w表示把行写入一个文件。
x表示互换模板块中的文本和缓冲区中的文本。
y表示把一个字符翻译为另外的字符(但是不用于正则表达式)
-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次,如:/0\{5\}/匹配包含5个o的行。
重复字符x,至少m次,如:/o\{5,\}/匹配至少有5个o的行。
重复字符x,至少m次,不多于n次,如:/o\{5,10\}/匹配5--10个o的行。
删除: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标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
$ sed 's/^192.168.0.1/&localhost/' example-----&符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。
$ sed -n 's/\(love\)able/\1rs/p' example-----love被标记为1,所有loveable会被替换成lovers,而且替换的行会被打印出来。
$ sed 's#10#100#g' example-----不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100。
选定行的范围:逗号
$ sed -n '/test/,/check/p' example-----所有在模板test和check所确定的范围内的行都被打印。
$ sed -n '5,/^test/p' example-----打印从第五行开始到第一个包含以test开始的行之间的所有行。
$ sed '/test/,/check/s/$/sed test/' example-----对于模板test和west之间的行,每行的末尾用字符串sed test替换。
多点编辑:e命令
$ sed -e '1,5d' -e 's/test/check/' example-----(-e)选项允许在同一行里执行多条命令。如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执 行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。
$ sed --expression='s/test/check/' --expression='/love/d' example-----一个比-e更好的命令是--expression。它能给sed表达式赋值。
从文件读入:r命令
$ sed '/test/r file' example-----file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。
写入文件:w命令
$ sed -n '/test/w file' example-----在example中所有包含test的行都被写入file里。
追加命令:a命令
$ sed '/^test/a\\---&this is a example' example&-----'this is a example'被追加到以test开头的行后面,sed要求命令a后面有一个反斜杠。
插入:i命令
$ sed '/test/i\\
-------------------------' example
如果test被匹配,则把反斜杠后面的文本插入到匹配行的前面。
下一个:n命令
$ sed '/test/{ s/aa/bb/; }' example-----如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。
变形:y命令
$ sed '1,10y/abcde/ABCDE/' example-----把1--10行内所有abcde转变为大写,注意,正则表达式元字符不能使用这个命令。
退出:q命令
$ sed '10q' example-----打印完第10行后,退出sed。
保持和获取:h命令和G命令
$ sed -e '/test/h' -e '$G example-----在sed处理文件的时候,每一行都被保存在一个叫模式空间的临时缓冲区中,除非行被删除或者输出被取消,否则所有被处理的行都将 打印在屏幕上。接着模式空间被清空,并存入新的一行等待处理。在这个例子里,匹配test的行被找到后,将存入模式空间,h命令将其复制并存入一个称为保 持缓存区的特殊缓冲区内。第二条语句的意思是,当到达最后一行后,G命令取出保持缓冲区的行,然后把它放回模式空间中,且追加到现在已经存在于模式空间中 的行的末尾。在这个例子中就是追加到最后一行。简单来说,任何包含test的行都被复制并追加到该文件的末尾。
保持和互换:h命令和x命令
$ sed -e '/test/h' -e '/check/x' example -----互换模式空间和保持缓冲区的内容。也就是把包含test与check的行互换。
Sed脚本是一个sed的命令清单,启动Sed时以-f选项引导脚本文件名。Sed对于脚本中输入的命令非常挑剔,在命令的末尾不能有任何空白或文本,如果在一行中有多个命令,要用分号分隔。以#开头的行为注释行,且不能跨行。
* 获取XML文档对象转化为数组
* @param simplexml $obj XML文档对象
* @return Array 节点的数据
function XmlToArray($obj){
if(is_object($obj)){
$obj=get_object_vars($obj);
if(is_array($obj)){
foreach ($obj as $key=&$value){
$obj[$key] = XmlToArray($value);
* @支持gb2312,gbk,utf-8,big5 字符串截取
* @param string $str 要截取的字串
* @param int $start 截取起始位置
* @param int $length 截取长度
* @param string $charset utf-8|gb2312|gbk|big5 编码
* @param $suffix 是否加尾缀
function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
if(function_exists("mb_substr"))
return mb_substr($str, $start, $length, $charset);
$re['utf-8']
= "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk']
= "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5']
= "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
if($suffix) return $slice."…";
* @name yaddslashes
* @desc 转义定符串函数
* @param string $string
* @return mixed
function yaddslashes($string)
if(!get_magic_quotes_gpc())
if(is_array($string)) {
foreach($string as $key =& $val) {
$string[$key] = yaddslashes($val);
$string = addslashes($string);
//获得客户端ip
function getClientIp()
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
register_shutdown_function 执行机制是:PHP把要调用的函数调入内存。当页面所有PHP语句都执行完成时,再调用此 函数。
注意:register_shutdown_function是指在执行完所有PHP语句后再调用函数,不要理解成客户端关闭流浏览器页面时调用函数。
可以这样理解调用条件:
1、当页面被用户强制停止时
2、当程序代码运行超时时
3、当PHP代码执行完成时
//register_shutdown_function测试范例
function shutdown()
echo 'PHP_EOL 万能换行符,window \r\n, unix \n, mac \r'.PHP_EOL; //连接符的使用方式。
echo 'Script executed with success', PHP_EOL;
//,和 PHP_EOL 的使用方式
register_shutdown_function('shutdown');
echo 'pos1'.PHP_EOL;
echo 'pos2';
测试结果:(输出POS1后,由于exit()退出,然后开始执行内存中的'shutdown' 函数。没有执行 pos2)
PHP_EOL 万能换行符,window \r\n, unix \n, mac \r
Script executed with success}

我要回帖

更多关于 rf2013 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信