按月份归档:5 月 2013

阿里云centos 安装PHP+Mysql+Nginx步骤

安装步骤:

//查看当前文件系统
[root@localhost ~]# df -h
//查找分区
[root@localhost ~]# fdisk /dev/sda
Command (m for help): p //选择
Command (m for help): n //选择
Command action
e extended
p primary partition (1-4)
P //选择
p primary partition (1-4) 1 //选择
Command (m for help): w //选择
[root@localhost ~]# partprobe
[root@localhost ~]# fdisk -l
[root@localhost ~]# mkfs.ext3 /dev/sda
PS:这里可能要写 sda1
[root@localhost ~]# fdisk -l
[root@localhost ~]# mkdir -p /data
[root@localhost ~]# vi /etc/fstab
/dev/sda1 /data ext3 defaults 0 0
[root@localhost ~]# mount –a
[root@localhost ~]# df -h

更新升级源
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://blog.s135.com/soft/linux/centos/5.2/CentOS-Base.repo

网易开通了一个开源软件的镜像站点,网址为:

http://mirrors.163.com/

第一步:
#—————————————-
|利用CentOS Linux系统自带的yum命令安装、升级所需的程序库
|(RedHat等其他Linux发行版可从安装光盘中找到这些程序库的RPM包,进行安装)
#—————————————-

#设置默认语言为中文
LANG=C

#运行yum命令 安装程序 yum -y insall
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

#—————————————-
*RedHat AS4 系统环境
#—————————————-
I.i386 系统 wget ->下载
rpm ->rmp原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。
-i  显示套件的相关信息。
-h或–hash  套件安装时列出标记。
-v  显示指令执行过程。

#————————————————————————————–+
# wget http://blog.s135.com/soft/linux/nginx_php/rpm/i386/libjpeg-devel-6b-33.i386.rpm
# rpm -ivh libjpeg-devel-6b-33.i386.rpm
# wget http://blog.s135.com/soft/linux/nginx_php/rpm/i386/freetype-devel-2.1.9-1.i386.rpm
# rpm -ivh freetype-devel-2.1.9-1.i386.rpm
# wget http://blog.s135.com/soft/linux/nginx_php/rpm/i386/libpng-devel-1.2.7-1.i386.rpm
# rpm -ivh libpng-devel-1.2.7-1.i386.rpm
#————————————————————————————–+

#—————————————-
II.x86_64 系统
#—————————————-
#—————————————————————————————-+
# wget http://blog.s135.com/soft/linux/nginx_php/rpm/x86_64/libjpeg-devel-6b-33.x86_64.rpm
# rpm -ivh libjpeg-devel-6b-33.x86_64.rpm
# wget http://blog.s135.com/soft/linux/nginx_php/rpm/x86_64/freetype-devel-2.1.9-1.x86_64.rpm
# rpm -ivh freetype-devel-2.1.9-1.x86_64.rpm
# wget http://blog.s135.com/soft/linux/nginx_php/rpm/x86_64/libpng-devel-1.2.7-1.x86_64.rpm
# rpm -ivh libpng-devel-1.2.7-1.x86_64.rpm
#—————————————————————————————-+

第二步:
#—————————————-
|下载程序源码包|
#—————————————-
#——————————————————————————————–+

# mkdir -p 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
mkdir -p /data0/software
cd /data0/software

#可以把下载好的的语言包复制到/data0/software目录

wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.15.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.10.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.10-fpm-0.5.11.diff.gz
wget http://blog.s135.com/soft/linux/nginx_php/mysql/mysql-5.1.38.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz
wget http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-7.9.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.5.3.tar.bz2
wget http://blog.s135.com/soft/linux/nginx_php/pdo/PDO_MYSQL-1.0.2.tgz
wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/imagick/imagick-2.2.2.tgz
#———————————————————————————————+

阅读全文 ……

Linux 监控VPS服务器负载/CPU

主要用于监控 linux 服务器负载及内存占用,如 MySQl、php-fpm,当负载或内存占用达到设置值后,便自动重启该进程以避免宕机。
# 设置最大内存占用百分比
PID_MEM_MAX=”85″

# 设置最大系统负载
SYS_LOAD_MAX=”3″

# 设置需要监控的服务名称
NAME_LIST=”php-fpm mysql”

for NAME in $NAME_LIST
do
# 初始化内存统计
PID_MEM_SUM=0

# 获取该程序总进程数
PID_NUM_SUM=`ps aux | grep $NAME | wc -l`

# 列出每个进程内存占用百分比
PID_MEM_LIST=`ps aux | grep $NAME | awk ‘{print $4}’`

# 计算所有进程总内存占用
for PID_MEM in $PID_MEM_LIST
do
PID_MEM_SUM=`echo $PID_MEM_SUM + $PID_MEM | bc`
done

# 获取最近一分钟系统负载
SYS_LOAD=`uptime | awk ‘{print $(NF-2)}’ | sed ‘s/,//’`

# 比较内存占用和系统负载是否超过阀值
MEM_VULE=`awk ‘BEGIN{print(‘”$PID_MEM_SUM”‘>='”$PID_MEM_MAX”‘?”1″:”0″)}’`
LOAD_VULE=`awk ‘BEGIN{print(‘”$SYS_LOAD”‘>='”$SYS_LOAD_MAX”‘?”1″:”0″)}’`

# 如果系统内存占用和系统负载超过阀值,则进行下面操作。
if [ $MEM_VULE = 1 ] || [ $LOAD_VULE = 1 ] ;then
# 写入日志
echo $(date +”%y-%m-%d %H:%M:%S”) “killall $NAME” “(MEM:$PID_MEM_SUM,LOAD:$SYS_LOAD)”>> /var/log/autoreboot.log
# 正常停止服务
/etc/init.d/$NAME stop
sleep 3
# 强制关闭
pkill $NAME

# 重启
/etc/init.d/$NAME start
#写入日志
echo $(date +”%y-%m-%d %H:%M:%S”) “start $NAME” “(MEM:$PID_MEM_SUM,LOAD:$SYS_LOAD)” >> /var/log/autoreboot.log
else
echo “$NAME very health!(MEM:$PID_MEM_SUM,LOAD:$SYS_LOAD)” > /dev/null
fi
done

以上代码保存为一个文件,例如:auto_reboot.sh

添加计划任务,设置每分钟检查一次

crontab -e
* * * * * /bin/bash/root/auto_reboot.sh

注意文件的位置要搞正确。
请确保您的Linux系统中已经安装了bc,否则会出现错误。查看是否安装了bc可以使用命令:
bc -v

如果没有安装,centos可以用 yum -y install bc 安装它
可以使用命令
sh /bin/bash/root/auto_reboot.sh

测试以上脚本,如果出现 syntax error near unexpected token `do 这样的错误请查看本站文章《Linux 下sh脚本执行时出现 syntax error near unexpected token `do 错误的解决方法 》一文。

CentOS VPS服务器根据CPU负载及内存占用自动重启的bash shell脚本:

#!/bin/sh
#usage: */2 * * * * root /root/checkload.sh
# [CentOS]VPS服务器根据CPU负载及内存占用自动重启脚本
# 设置最小剩余内存,一般至少要剩余50M可用(单位兆)
FREE_MEM_MIN=”50″
# 设置最大系统负载
SYS_LOAD_MAX=”3″
# 设置重启服务的最小剩余内存(单位兆)
RESTART_FREE_MEM_MIN=”500″
# 设置需要监控的服务名称
NAME_LIST=”httpd mysqld”
for NAME in $NAME_LIST
do
# 获得剩余内存(单位兆)
FREE_MEM=`free -m|grep Mem|awk ‘{print $4}’`
# 获得已用内存(单位兆)
#FREE_MEM=`free -m|grep Mem|awk ‘{print $3}’`
# 获取最近一分钟系统负载
SYS_LOAD=`uptime | awk ‘{print $(NF-2)}’ | sed ‘s/,//’`
# 比较内存占用和系统负载是否超过阀值
MEM_VULE=`awk ‘BEGIN{print(‘”$FREE_MEM”‘<'"$FREE_MEM_MIN"'?"1":"0")}'` LOAD_VULE=`awk 'BEGIN{print('"$SYS_LOAD"'>='”$SYS_LOAD_MAX”‘?”1″:”0″)}’`

# 测试结果
#LOAD_VULE=”1″
#echo $(date +”%y-%m-%d %H:%M:%S”) “DEBUG $NAME” “(FREE_MEM:$FREE_MEM|$MEM_VULE,LOAD:$SYS_LOAD|$LOAD_VULE)”>> /var/log/autoreboot_debug.log

# 如果系统内存占用和系统负载超过阀值,则进行下面操作。
if [ $MEM_VULE = 1 ] || [ $LOAD_VULE = 1 ] ;then
# 写入日志
echo $(date +”%y-%m-%d %H:%M:%S”) “killall $NAME” “(FREE_MEM:$FREE_MEM,LOAD:$SYS_LOAD)”>> /var/log/autoreboot.log
# 正常停止服务
service $NAME stop
sleep 3
# 强制关闭
skill $NAME
# 重启
sleep 10
for i in 1 2 3
do
FREE_MEM=`free -m|grep Mem|awk ‘{print $4}’`
MEM_VULE=`awk ‘BEGIN{print(‘”$FREE_MEM”‘>='”$RESTART_FREE_MEM_MIN”‘?”1″:”0”)}’`
if [ `pgrep $NAME | wc -l` -le 0 ] && [ $MEM_VULE = 1 ]
then
service $NAME start
sleep 15
echo “AutoStart:” $(date +”%y-%m-%d %H:%M:%S”) “start $NAME” `ps -ef | grep $NAME | wc -l` > /var/log/autoreboot.log
fi
done

# 写入日志
echo $(date +”%y-%m-%d %H:%M:%S”) “start $NAME” “(FREE_MEM:$FREE_MEM,LOAD:$SYS_LOAD)” >> /var/log/autoreboot.log
else
MEM_VULE=`awk ‘BEGIN{print(‘”$FREE_MEM”‘>='”$RESTART_FREE_MEM_MIN”‘?”1″:”0″)}’`
if [ `pgrep $NAME | wc -l` -le 0 ] && [ $MEM_VULE = 1 ]
then
service $NAME start
sleep 15
echo “AutoStart:” $(date +”%y-%m-%d %H:%M:%S”) “start $NAME” `ps -ef | grep $NAME | wc -l` > /var/log/autoreboot.log
else
echo “$NAME very health!(FREE_MEM:$FREE_MEM,LOAD:$SYS_LOAD)” > /dev/null
fi
fi
done

PHP http抓取类 HttpRequest

static function HttpRequest($url, $data=array(), $abort=false) {
		if ( !function_exists('curl_init') ) { return empty($data) ? self::DoGet($url) : self::DoPost($url, $data); }
		$timeout = $abort ? 1 : 2;
		$ch = curl_init();
		if (is_array($data) && $data) {
			$formdata = http_build_query($data);
			curl_setopt($ch, CURLOPT_POST, true);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $formdata);
		}
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
		curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
		$result = curl_exec($ch);
		return (false===$result && false==$abort)? ( empty($data) ? self:: DoGet($url) : self::DoPost($url, $data) ) : $result;
	}
	static public function DoGet($url){
		$url2 = parse_url($url);
		$url2["path"] = ($url2["path"] == "" ? "/" : $url2["path"]);
		$url2["port"] = ($url2["port"] == "" ? 80 : $url2["port"]);
		$host_ip = @gethostbyname($url2["host"]);
		$fsock_timeout = 2;  //2 second
		if(($fsock = fsockopen($host_ip, $url2['port'], $errno, $errstr, $fsock_timeout)) < 0){
			return false;
		}
		$request =  $url2["path"] .($url2["query"] ? "?".$url2["query"] : "");
		$in  = "GET " . $request . " HTTP/1.0\r\n";
		$in .= "Accept: */*\r\n";
		$in .= "User-Agent: Payb-Agent\r\n";
		$in .= "Host: " . $url2["host"] . "\r\n";
		$in .= "Connection: Close\r\n\r\n";
		if(!@fwrite($fsock, $in, strlen($in))){
			fclose($fsock);
			return false;
		}
		return self::GetHttpContent($fsock);
	}

	static public function DoPost($url,$post_data=array()){
		$url2 = parse_url($url);
		$url2["path"] = ($url2["path"] == "" ? "/" : $url2["path"]);
		$url2["port"] = ($url2["port"] == "" ? 80 : $url2["port"]);
		$host_ip = @gethostbyname($url2["host"]);
		$fsock_timeout = 2; //2 second
		if(($fsock = fsockopen($host_ip, $url2['port'], $errno, $errstr, $fsock_timeout)) < 0){
			return false;
		}
		$request =  $url2["path"].($url2["query"] ? "?" . $url2["query"] : "");
		$post_data2 = http_build_query($post_data);
		$in  = "POST " . $request . " HTTP/1.0\r\n";
		$in .= "Accept: */*\r\n";
		$in .= "Host: " . $url2["host"] . "\r\n";
		$in .= "User-Agent: Lowell-Agent\r\n";
		$in .= "Content-type: application/x-www-form-urlencoded\r\n";
		$in .= "Content-Length: " . strlen($post_data2) . "\r\n";
		$in .= "Connection: Close\r\n\r\n";
		$in .= $post_data2 . "\r\n\r\n";
		unset($post_data2);
		if(!@fwrite($fsock, $in, strlen($in))){
			fclose($fsock);
			return false;
		}
		return self::GetHttpContent($fsock);
	}
	static private function GetHttpContent($fsock=null) {
		$out = null;
		while($buff = @fgets($fsock, 2048)){
			$out .= $buff;
		}
		fclose($fsock);
		$pos = strpos($out, "\r\n\r\n");
		$head = substr($out, 0, $pos);    //http head
		$status = substr($head, 0, strpos($head, "\r\n"));    //http status line
		$body = substr($out, $pos + 4, strlen($out) - ($pos + 4));//page body
		if(preg_match("/^HTTP\/\d\.\d\s([\d]+)\s.*$/", $status, $matches)){
			if(intval($matches[1]) / 100 == 2){
				return $body;
			}else{
				return false;
			}
		}else{
			return false;
		}
	}

 

csshack

CSS hack:区分IE6,IE7,firefox
区别不同浏览器,CSS hack写法:
区别IE6与FF:
background:orange;*background:blue;
区别IE6与IE7:
background:green !important;background:blue;
区别IE7与FF:
background:orange; *background:green;
区别FF,IE7,IE6:
background:orange;*background:green;_background:blue;
background:orange;*background:green !important;*background:blue;
注:IE都能识别*;标准浏览器(如FF)不能识别*;
IE6能识别*;不能识别 !important;
IE7能识别*,能识别!important;
FF不能识别*,但能识别!important;
IE6 IE7 FF
* √ √ ×
!important √
√ √
浏览器优先级别:FF

postfix服务器创建

一、准备工作

1. 为邮件服务器添加DNS解析

虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实际经验,需要添加三条DNS解析记录:A记录、MX记录、TXT记录。比如域名coolaj.cn,对应的DNS记录如下:
A mail
MX mail.xxx.com
TXT v=spf1 mx -all

2. 准备存放邮件的硬盘空间

如果用的是阿里云入门级Linux服务器,有一块20G的数据盘未挂载,需要格式化并挂载(假设这里挂载的目录是/data),具体操作步骤见之前的博文阿里云云服务器硬盘分区及挂载。

二、配置postfix

postfix是CentOS默认安装的邮件服务器软件。以下配置示例假设要配置的域名是coolaj.cn,邮件服务器主机名是mail.coolaj.cn。

1. 打开postfix的配置文件 阅读全文 ……

自己设计修改一些常用的bat文件

清除所有盘垃圾(以前的只是系统盘,我改了多几个盘符,能清除到到G盘)【修改版】 ­

 

要轻松流畅上网你是否注意到你的电脑系统磁盘的可用空间正在一天天在减少呢?是不是像老去的猴王一样动作一天比一天迟缓呢? ­

没错!在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:*.tmp、*._mp)日志文件(*.log)、临时帮助文件(*.gid)、磁盘检查文件(*.chk)、临时备份文件(如:*.old、*.bak)以及其他临时文件。特别是如果一段时间不清理IE的临时文件夹 “Temporary Internet Files”,其中的缓存文件有时会占用上百MB的磁盘空间。这些LJ文件不仅仅浪费了宝贵的磁盘空间,严重时还会使系统运行慢如蜗牛。这点相信你肯定忍受不了吧!所以应及时清理系统的LJ文件的淤塞,保持系统的“苗条”身材,轻松流畅上网!朋友来吧,现在就让我们一起来快速清除系统垃圾吧!!下面是步骤很简单就两步! ­

在电脑屏幕的左下角按“开始→程序→附件→记事本”,把下面的文字复制进去(红色部分),点“另存为”,路径选“桌面”,保存类型为“所有文件”,文件名为“清理系统垃圾文件.bat”,就完成了。记住后缀名一定要是.bat,ok!你的垃圾清除器就这样制作成功了! ­

双击它就能很快地清理垃圾文件,大约一分钟不到。 阅读全文 ……

完美解决Nginx 504 Gateway time-out

最近用dedecms建的一个网站新增了大批内容,有三个栏目的内容量都超过了两千篇,超过两千三百篇的两个栏目在生成栏目列表的时候就出现了504 Gateway time-out 服务器用的是nginx,我不是很懂,服务器维护人员在网上随便找了一篇文章,修改了nginx的缓存设置,不管用,他就不管了,可是我不能不管啊,不能生成列表页面,那后面的内容不是都不能用了么?

把数据库下载到本地,在本地配置了nginx,试了很多遍,都不行,又改到Apache下面,更夸张,生成了83个页面就不能继续了,看来还是nginx更厉害一点,虽然出现504 Gateway time-out,但好歹能够全部生成。

只好又继续在网上找更多的解决办法,尝试了N多次以后,终于让我找到了一个有用的方法,想想以后可能还有碰到这样的问题,就把那篇文章复制过来放在这里,供以后参考吧,对有同样问题的朋友也是一个帮助。

下面部分是引用部分,我自己不懂技术的,在我的dedecms5.6里面有用,别人的自己尝试吧。
Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止。

Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI。

解决这两个问题其实是需要综合思考的,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关,而Nginx 504 Gateway Time-out则是与nginx.conf的设置有关。

而正确的设置需要考虑服务器自身的性能和访客的数量等多重因素。

以我目前的服务器为例子CPU是奔四1.5G的,内存1GB,CENTOS的系统,访客大概是50人左右同时在线。

但是在线的人大都需要请求PHP-CGI进行大量的信息处理,因此我将nginx.conf设置为: 阅读全文 ……

flashfxp备份

*.fqf 只读状态

 

选项\”当文件存在先项”的设置中设置成:
1.”文件较小时—覆盖” || “文件相同时–跳过” || “文件较大时—覆盖”

2.完成后关闭

 

autobak.bat:
代码如下:

CD X:\xxx\FlashFXP 
For /F %%f in (files.log) do (del %%f) 
dir *.fqf /b >files.log 
For /F %%f in (files.log) do (start flashfxp.exe %%f)

 

利用 lftp 为VPS/其他系统镜像备份

安装: yum install -y lftp

 

lftp mirror的参数如下:

 

-c, –continue 如果可能, 继续一个镜像任务

 

-e, –delete 删除在远程站点不存在的文件

 

-s, –allow-suid 根据远程站点设置相应的 suid/sgid 位

 

-n, –only-newer 只下载新的文件 (-c 没有作用)

 

-r, –no-recursion 不下载子目录

 

-p, –no-perms 不设置文件权限

 

–no-umask 不在文件上使用umask

 

-R, –reverse 反向镜像 (上传文件)

 

-L, –dereference 下载符号链接指向的文件

 

-N, –newer-than FILE 只下载比文件 FILE 更新的文件

 

-i RX, –include RX 包括匹配的文件 (只能使用一次)

 

-x RX, –exclude RX 不包括匹配的文件 (只能使用一次)

 

RX 是括展的正则表达式

 

-t Nx, –time-prec Nx 设置时间精度为 N 秒 (x=s) 分钟 (x=m) 小时 (x=h) 或者天 (x=d) 默认值 – 12 小时

 

-v, –verbose 显示详细的信息

 

–log=FILE 将执行过的命令写入日志文件<FILE>

 

–script=FILE 把命令写入脚本文件但不执行

 

–just-print, –dry-run 同 –script=<>FILE

 

当使用 -R 参数时,第一个目录为本地目录,第二个为远程目录

 

如果第二项没有填写,则采用第一个个目录的名称

 

如果两项都没填写,则采用当前的本地和远程目录

 

 

 

那么,具体是如何实现的呢?

 

1、新建一个脚步, test.txt

 

test.txt 内容如下:

 

open ftp://备份空间用户名:备份空间密码@备份空间地址

 

mirror -R -v -n -e 源文件目录 目标站目录  (把-e去掉,就不会删除目标目录废弃的文件)

 

例如:

open ftp://lftptest:123456@192.168.3.11

 

mirror -R -v -n -e /root/test/ /public_html

即是将/root/test/目录下的所有文件上传到ftp://192.168.3.11/mirror目录下。

2、新建sh脚本, upload.sh

upload.sh 内容如下:

#!/bin/bash

lftp -f /root/test.txt

记得给 upload.sh 赋可执行权限: chmod 755 /root/upload.sh

3、设置自动任务

crontab -e

加入:

每天,4时

0 4 * * * /root/upload.sh;

每周六,4时:

0 4 * * 6 /root/upload.sh;

如果两边都是独立的操作系统或VPS,可使用rsync来同步文件。

 

 

参考设置

set ftp:charset gbk

set file:charset utf-8

set ftp:passive-mode off

Linux下cp直接覆盖不提示的方法!

新做了服务器,cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,这在大量cp覆盖操作的时候是不能忍受的。。。

  把a目录下的文件复制到b目录
  cp –r a/* b
  执行上面的命令时,b存在的每个文件都会提示是否覆盖;
  cp –r –f a/* b
  执行上面的命令时,b存在的每个文件都不再会提示;
  这是我们希望的理想状态,但是有时加了-f了,怎么还会有提示呢?原来一些服务器会默认增加别名 alias cp=’cp -i’,当你执行cp时,其实执行的是cp –i。
  在终端执行alias就可以看出来了。
  [root@devdb ~]# alias
  alias cp=’cp -i’
  可以这样解决
  [root@devdb ~]# vi ~/.bashrc
  在alias cp=’cp -i’前加上”#”注释掉这行,:wq!保存推出,然后重新登陆就可以了。
=================================
alias cp=”cp -f”
直接输入以上命令,在当前shell生效。放入 ~/.bashrc 中,以后的新shell中都生效(当前shell不生效,退出再重新login以后生效)
此法新手慎用