git 出现warning crlf will be replaced by...

我想这应该是下载一个从windows里到处的项目时遇上的。前些天发现了这个问题。在git commit时无法提交,提示warning: LF will be replaced by CRLF…..

相关的问题在 stackoverflow上也有提及。

产生这个问题的原因是,windows、Linux和Mac在处理文件换行时的标示符是不一致的。windows使用CRLF作为结束符,而Linux和Mac使用LF作为结束符。

同时呢,Git 有两种模式来对待换行符,你可以通过下面这行代码查看你的git配置。

$ git config core.autocrlf

如果显示为true,则每一次当你git commit时,如果存在文本文件,那么git会自动帮你将末尾的换行符改为CRLF,省去了烦心的转换工作。

如果显示为false,则git不会对换行符进行修改,保持原本的内容。

所以呢,作为Linux和Mac开发者,这个配置应当为false,而windows开发者,则应当设置为true。

$ git config --global core.autocrlf  false

引用资料:

http://stackoverflow.com/questions/1967370/git-replacing-lf-with-crlf


linux date时间戳的互相转换

因为需要将时间存入数据库中,为了让数据库的数据比较友好,之前采用了1990-01-01 01:01:01这种格式。计算相隔时间时,应当如下计算:

首先取当前时间:

NOWTIME=`date "+%Y-%m-%d %H:%M:%S"`

将指定时间转为时间戳

time1=$(date +%s -d '$NOWTIME');

将时间戳转成特定时间

time1=$(date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds");

root用户删除文件提示:Operation not permitted

一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错,就象下边一样:

rm: cannot unlink `.user.ini': Operation not permitted

身为root用户,我被吓了一大跳,这是被黑了么?各种查询资料,原因终于解开了——lsattr命令。

在lsattr命令下,这个.user.ini文件带有一个”i”的属性,所以才不可以删除。

这个属性专门用来保护重要的文件不被删除,通常的情况下,懂得用这几个命令的通常系统管理员有能力判断这个文件是否可以被删除。如果您想给一个文件多加点保护,可以使用下边的命令:

chattr +i filename

命令,这样一来,想要删除这个文件就要多一个步骤。同时,这样的文件也是不可以编辑和修改的。只有root用户才能使用chattr命令。

类似于和Windows文件系统,不能随意删除的文件多半都有其道理,即使您知道如何删除,都应该三思而后行。

我们现在可以用下边的一系列命令将文件删除掉:

lsattr .user.ini
chattr -i .user.ini
rm -rf .user.ini

使用shell操作数据库

我一般都是用phpmyadmin连接MySQL。偶尔使用shell登陆MySQL时,一些命令常常忘记,于是记录一些MySQL基础的连接操作命令。

交互式

mysql --version		// MySQL版本
mysql -uroot -p		// 登陆,随后输入密码。

mysql> show database;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

mysql> use kelu
Database changed
mysql> show tables;
+----------------+
| Tables_in_kelu  |
+----------------+
| vpn_chargeRec  |
| vpn_online     |
| vpn_record     |
| vpn_subAccount |
| vpn_user       |
+----------------+
5 rows in set (0.00 sec)

mysql> source xxx.sql

脚本

首先,定义一些基本的配置。

#!/bin/bash  
HOSTNAME="127.0.0.1"  
PORT="3306"  
USERNAME="root"  
PASSWORD="root"  
DBNAME="mydb"  
TABLENAME="test"  

接着就是基本的CURD操作.

创建数据库

create_db_sql="create database IF NOT EXISTS ${DBNAME}"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}" 

创建表

create_table_sql="create table IF NOT EXISTS ${TABLENAME} (  name varchar(20), id int(11) default 0 )"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${create_table_sql}"

插入数据

 insert_sql="insert into ${TABLENAME} (username,starttime) values('$PEERNAME','$STARTTIME')"
 mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"

查询数据

select_sql="select id,starttime from ${TABLENAMEPRE} where username='$PEERNAME' AND IFACE='$PPP_IFACE' AND TTY='$PPP_TTY'"
result=`mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"`

更新数据

update_sql="update ${TABLENAME} set id=3"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${update_sql}"

删除数据

delete_sql="delete from ${TABLENAMEPRE} where id='$idPre'"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${delete_sql}"

网络代理下Dropbox的同步问题

虽然装了代理,原理还是不太明白。Dropbox也没法同步。原本是要查如何在服务器上开socks同步的,发现不用了😄。直接在Dropbox的网络设置里设置代理服务器。代理首选项中选择 SOCKS5,服务器填 127.0.0.1:1080 即可,如下:

image


通过PhpMyAdmin修改MySQL的root密码

今天在本地装了xampp,发现默认root的密码竟然为空。进入PhpMyAdmin时也提示了尽快修改。

image

以前也遇到了好几次这样的问题,都是测试环境其实没什么要紧的。不过上了生产环境之后迟早要修改的,于是现在就来尝试一下了。

修改MySQL root密码

首先用root账号登陆phpmyadmin,然后点击左侧进入mysql数据库,在顶部点击“mysql”进入sql输入界面。输入以下命令:

update user set password=password('123456') where User='root'

其中123456为你希望修改的密码,切记不要在数据库中直接手工修改密码。

image

然后点击右下角的“执行”,看到“影响了x行”,就表示修改成功。

修改配置文件

接着修改config.default.phpconfig.inc.php文件。通过如下命令寻找到这两个文件:

sudo find / -name 'config.default.php'
sudo find / -name 'config.inc.php'

Mac下的安装路径为/Applications/XAMPP/xamppfiles/phpmyadmin/libraries/config.default.php
/Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php

找到$cfg[‘Servers’][$i][‘password’] = ‘ ‘, 修改为

$cfg['Servers'][$i]['password'] = '123456'; 

重启mysql后新密码生效。

同时还要修改www目录下你的工程的配置文件config.php,修改以下两项

'DB_USER'=>'root', 
'DB_PWD'=>'123456', 

至此,修改完成。


pureftp的卸载,以及ANPQY的意思

卸载

lnmp 1.2下的pureftp有问题,php超时导致nginx出现502错误。于是按照如下方法卸载。

/etc/init.d/pureftpd stop
rm -rf /home/wwwroot/ftp/
rm -rf /usr/local/pureftpd/

debian:  update-rc.d pureftpd remove 或centos: chkconfig pureftpd off

rm -f /etc/init.d/pureftpd

然后删除ftpuser数据库。

引用页:http://bbs.vpser.net/thread-2735-1-1.html

ANPQY

ANPQY 是 All, No, Prompt Off, Quit, Yes 的意思。 (一些ftp服务器返回的信息)

关于 Prompt Off 的意思,可以man ftp得到