Loading...

在vi中如何删除^M

Filed under: 互联网事 — 江东 @ 2011-06-21 12:34:00 才(16)条评论

如果你是用某些windows编辑器编辑的文件,很可能就会产生多余的^M转义符合,当然这些符号在wxin下是看不到的。

但是某天,你在linux下,用vim打开,发现文件中很多^M,那是多么的恶心啊,如下图:

ctrlm.png

这个时候就要vim的替换功能了,替换命令很简单 :%s/^M//g 也就是将全部的^M替换成空。

但是你可能会发现,如果你直接用键盘输入^M,是替换不成功滴,所以这里有个小技巧,^M不是直接输出来的,而是要用 ctrl+v 接下来ctrl+m 才能出现真正的文件中的^M.

上面这行,才是这篇日志记录的主要目的,因为我每次想替代^M总会忘记如何打出^M.

再次谈谈linux下文件夹权限的问题

Filed under: 网站技术,虚拟主机 — 江东 @ 2009-06-18 10:44:50 才(14)条评论

有网友说我前面的日志写得太简单了,好吧,这篇我稍微详细一点。其实很为难:详细点吧,都不愿意看,简单点吧,都说看不懂!

homezz.com后面的几个的服务器的数据转移过程中,发现很多homezz.com用户转移到新的服务器上的时候,都出现了这样那样的错误,归根结底,就是文件夹权限设置错误。旧的主机放得太开,对安全性能控制不严格,所以文件权限太大没有做限制,新服务器的安全机制更加严格,因此太大的权限服务器将会拒绝执行。下面开始讲一讲linux下的文件权限。

Linux的文件权限是linux能有如此安全性能的最大的保障之一,有朋友可能会知道,很多攻击windows的方法都是通过漏洞获取到创建用户的权限从而达到控制计算机的目的,在linux下,Root帐户有最大的权限,可以干任何事情,其他用户只能拥有自己的文件的所有权限和该改组成员赋予的文件的权限,下面开始对文件权限的一个说明。 (read on …)

linux文件和文件夹权限

Filed under: 网站技术,虚拟主机 — 江东 @ 2009-06-16 20:36:24 才(10)条评论

快餐阅读的年代,继续用简约的几句话来描述。

linux下,每个文件和文件夹都是有权限的,他们分为可读、可写和可执行,默认的权限并不是和window一样:可读+可写+可执行;

linux下用户的对文件的控制是非常严格的,所以文件若需要任何人都可写,必须设置成  可读+可写,可读+可写的数字组合就是4+2=6 (所有人6 组成员6 公共成员6),即设置成0666;

linux下文件的可执行和win不一样,不靠后缀名来区分,因此linux下需要对可执行文件赋予可执行属性数字即为1,可以可读+可写+可执行=4+2+1,那么给三种用户都设置全属性就是 0777;

文件夹的打开即可理解成象文件夹发送了执行命令,所以文件夹没有可执行的属性,其他用户是无法打开的;

重要的来了,大家在ftp下或者在shell中用简单的chmod 0777 dir来对一个文件夹进行修改,记住,该文件夹下的所有文件不会自动继承0777属性,这个和你在windows下设置共享文件夹不是一样的效果,很多朋友犯了这样的错误,还理直气壮的说我已经把web根目录属性都设置成了0777,为何我的wordpress后台还无法在线更改。答案很简单:那是因为你所更改的那个php文件依然不是公共可读写属性,即0777;

即使文件夹属性为0777,也并不表示该文件夹下的所有文件就可以随意读写,这些文件依然有他们自身的属性,所以你必须将你需要修改的文件设置成0666;

记住:web根目录不要设置成0777,这有安全隐患。有php文件的目录也最好不要设置成0777.

此日志结束,不懂的在评论中留言,高手也请出山指点!

解决rm –rf 多文件的问题

Filed under: 网站技术 — 江东 @ 2009-03-26 15:54:07 才(3)条评论

在linux下rm -rf表示删除文件不做任何询问,大多数情况下,cosbeta就用rm –rf cache/*来清空bloggermap服务器上大约1G的缓存。

rm -rf对文件大小到无所谓,但是一旦文件数量过多可能就会删除失败,并且做出“argument too lang”之类的提示。出现这样的错误不难理解,因为rm –rf *执行过程是先遍历文件夹下文件名,然后作为参数传递给rm,文件太多(比如刚才cosbeta发现bloggermap cache目录中大约有30w(10G)个文件)肯定就会出现参数太长的提示了。

解决方法:find  ./cache  -name ‘*’ -exec rm {} \; 等到执行完毕之后,再进入cache,执行一个rm –rf *即可。

上面的命令其实是改变了rm的执行顺序:找到一个文件,便执行删除之,所以就不会提示参数过长了。

此命令的来源启示:

paveo: 晕,走得那么快。

0:32 find

find PATH -name *.mp3 -exec rm {} \;

就可以了。