Ubuntu下Python开发环境搭建
1.安装MySQL
$ sudo apt-get install mysql-server mysql-client
安装完成后,MySQL会默认启动,可以在终端运行以下命令查看MySQL是否正在运行
$ sudo netstat -tag|grep mysql
可以看到类似以下的结果
tcp 0 0 localhost.localdomain:mysql *:* LISTEN -
日常启动、重启等命令:
$ sudo /etc/init.d/mysql start|stop|restart|status
附:删除MySQL
$ sudo apt-get autoremove --purge mysql-server-5.1 $ sudo apt-get remove mysql-server $ sudo apt-get autoremove mysql-server $ sudo apt-get remove mysql-common
清理残留数据
$ dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
配置MySQL远程访问:
1).sudo vi /etc/mysql/my.cnf
注释掉此行bind-address=127.0.0.1
2).在终端进入MySQL
$mysql -u root -p
>use mysql;
>grant all privileges on *.* to [email protected] identified by 'password';
注:192.168.18.100为客户端IP;password为root用户的密码
3).重启MySQL,尝试客户端连接,Congratulations!!
2.安装Python运行环境
1).Python
$sudo apt-get install python-dev python-setuptools
2).Django
$sudo easy_install django
3).安装MySQL驱动
$ sudo apt-get install python-mysqldb
4).验证开装是否成功:
$ python
>>> import django >>> django.VERSION (1, 3, 1, 'final', 0)
>>> import MySQLdb
同样的方法安装MongoDb,pymongo
3.安装SVN客户端
$ sudo apt-get install subversion subversion-tools(引用致http://hi.baidu.com/videoforlinux/blog/item/b81161c04fff202fe5dd3b9f.html)
详细请看http://www.subversion.org.cn/svnbook/1.1/index.htmlsvn子命令
1、检出
svncohttp://路径(目录或文件的全路径) [本地目录全路径]
--username用户名--password密码svncosvn://路径(目录或文件的全路径) [本地目录全路径]--username用户名--password密码
svncheckouthttp://路径(目录或文件的全路径) [本地目录全路径]--username 用户名
svncheckoutsvn://路径(目录或文件的全路径) [本地目录全路径]--username 用户名
注:如果不带--password参数传输密码的话,会提示输入密码,建议不要用明文的--password选项。
其中username与password前是两个短线,不是一个。
不指定本地目录全路径,则检出到当前目录下。
例子:
svncosvn://192.168.0.3/测试工具/home/testtools--usernamewzhnsc
svncohttp://192.168.0.3/test/testapp--usernamewzhnsc
svncheckoutsvn://192.168.0.3/测试工具/home/testtools--usernamewzhnsc
svncheckouthttp://192.168.0.3/test/testapp--usernamewzhnsc
2、导出(导出一个干净的不带.svn文件夹的目录树)
svnexport[-r版本号]http://路径(目录或文件的全路径)[本地目录全路径] --username 用户名
svnexport[-r版本号]svn://路径(目录或文件的全路径)[本地目录全路径] --username 用户名
svnexport本地检出的(即带有.svn文件夹的)目录全路径要导出的本地目录全路径
注:第一种从版本库导出干净工作目录树的形式是指定URL,
如果指定了修订版本号,会导出相应的版本,
如果没有指定修订版本,则会导出最新的,导出到指定位置。
如果省略本地目录全路径,URL的最后一部分会作为本地目录的名字。
第二种形式是指定本地检出的目录全路径到要导出的本地目录全路径,所有的本地修改将会保留,
但是不在版本控制下(即没提交的新文件,因为.svn文件夹里没有与之相关的信息记录)的文件不会拷贝。
例子:
svnexportsvn://192.168.0.3/测试工具/home/testtools--usernamewzhnsc
svnexporthttp://192.168.0.3/test/testapp--usernamewzhnsc
svnexport/home/testapp/home/testtools
3、添加新文件
svn add 文件名
注:告诉SVN服务器要添加文件了,还要用svncommint-m真实的上传上去!
例子:
svnaddtest.php<-添加test.php
svncommit-m“添加我的测试用test.php“test.php
svnadd*.php<-添加当前目录下所有的php文件
svncommit-m“添加我的测试用全部php文件“*.php
4、提交
svn commit -m “提交备注信息文本“ [-N] [--no-unlock] 文件名
svn ci -m “提交备注信息文本“ [-N] [--no-unlock] 文件名
必须带上-m参数,参数可以为空,但是必须写上-m
例子:
svncommit-m“提交当前目录下的全部在版本控制下的文件“*<-注意这个*表示全部文件
svncommit-m“提交我的测试用test.php“test.php
svncommit-m“提交我的测试用test.php“-N--no-unlocktest.php<-保持锁就用–no-unlock开关
svnci-m“提交当前目录下的全部在版本控制下的文件“*<-注意这个*表示全部文件
svnci-m“提交我的测试用test.php“test.php
svnci-m“提交我的测试用test.php“-N--no-unlocktest.php<-保持锁就用–no-unlock开关
5、更新文件
svn update
svn update -r 修正版本 文件名
svn update 文件名
例子:
svnupdate<-后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本
svnupdate-r200test.cpp<-将版本库中的文件test.cpp还原到修正版本(revision)200
svnupdatetest.php<-更新与版本库同步。
提交的时候提示过期冲突,需要先update修改文件,
然后清除svnresolved,最后再提交commit。
6、删除文件
svn delete svn://路径(目录或文件的全路径)-m“删除备注信息文本”
推荐如下操作:
svn delete 文件名
svn ci -m “删除备注信息文本”
例子:
svndeletesvn://192.168.1.1/testapp/test.php-m“删除测试文件test.php”
推荐如下操作:
svndeletetest.php
svnci-m“删除测试文件test.php”
7、加锁/解锁
svn lock -m “加锁备注信息文本“ [--force] 文件名
svn unlock 文件名
例子:
svnlock-m“锁信测试用test.php文件“test.php
svnunlocktest.php
8、比较差异
svn diff 文件名
svn diff -r 修正版本号m:修正版本号n 文件名
例子:
svndifftest.php<-将修改的文件与基础版本比较
svndiff-r200:201test.php<-对修正版本号200和修正版本号201比较差异
9、查看文件或者目录状态
svnst目录路径/名
svnstatus目录路径/名<-目录下的文件和子目录的状态,正常状态不显示
【?:不在svn的控制中;M:内容被修改;C:发生冲突;
A:预定加入到版本库;K:被锁定】
svn-v目录路径/名
svnstatus-v目录路径/名<-显示文件和子目录状态
【第一列保持相同,第二列显示工作版本号,
第三和第四列显示最后一次修改的版本号和修改人】
注:svnstatus、svndiff和svnrevert这三条命令在没有网络的情况下也可以执行的,
原因是svn在本地的.svn中保留了本地版本的原始拷贝。
10、查看日志
svn log 文件名
例子:
svnlogtest.php<-显示这个文件的所有修改记录,及其版本号的变化
11、查看文件详细信息
svn info 文件名
例子:
svninfotest.php
12、SVN帮助
svn help<-全部功能选项
svn help ci<-具体功能的说明
13、查看版本库下的文件和目录列表
svn list svn://路径(目录或文件的全路径)
svn ls svn://路径(目录或文件的全路径)
例子:
svnlistsvn://192.168.0.3/test
svnlssvn://192.168.0.3/test<-显示svn://192.168.0.3/test目录下的所有属于版本库的文件和目录
14、创建纳入版本控制下的新目录
svn mkdir 目录名
svn mkdir -m "新增目录备注文本" http://目录全路径
例子:
svnmkdirnewdir
svnmkdir-m"Makinganewdir."http://192.168.0.3/test/newdir
注:添加完子目录后,一定要回到根目录更新一下,不然在该目录下提交文件会提示“提交失败”
svnupdate
注:如果手工在checkout出来的目录里创建了一个新文件夹newsubdir,
再用svnmkdirnewsubdir命令后,SVN会提示:
svn:尝试用“svnadd”或“svnadd--non-recursive”代替?
svn:无法创建目录“hello”:文件已经存在
此时,用如下命令解决:
svnadd--non-recursivenewsubdir
在进入这个newsubdir文件夹,用ls-a查看它下面的全部目录与文件,会发现多了:.svn目录
再用svnmkdir-m"添hello功能模块文件"svn://192.168.0.3/test/newdir/newsubdir命令,
SVN提示:
svn:Filealreadyexists:filesystem'/data/svnroot/test/db',transaction'4541-1',
path'/newdir/newsubdir'
15、恢复本地修改
svn revert [--recursive] 文件名
注意:本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录。
例子:
svnrevertfoo.c<-丢弃对一个文件的修改
svnrevert--recursive.<-恢复一整个目录的文件,.为当前目录
16、把工作拷贝更新到别的URL
svn switch http://目录全路径 本地目录全路径
例子:
svnswitchhttp://192.163.0.3/test/456.<-(原为123的分支)当前所在目录分支到192.163.0.3/test/456
17、解决冲突
svn resolved [本地目录全路径]
例子:
$svnupdate
Cfoo.c
Updatedtorevision31.
如果你在更新时得到冲突,你的工作拷贝会产生三个新的文件:
$ls
foo.c
foo.c.mine
foo.c.r30
foo.c.r31
当你解决了foo.c的冲突,并且准备提交,运行svnresolved让你的工作拷贝知道你已经完成了所有事情。
你可以仅仅删除冲突的文件并且提交,但是svnresolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐你使用这个命令。
18、不checkout而查看输出特定文件或URL的内容
svn cat http://文件全路径
例子:
svncathttp://192.168.0.3/test/readme.txt
4.安装FTP(引用致http://quicker.iteye.com/blog/583117)
Java代码
安装vsftpd,用来实现ftp服务。
sudoapt-getupdate
sudoapt-getdist-upgrade
上面用来更新。下面进行安装。
sudoapt-getinstallvsftpd
安装完毕后,编辑链接文件vsftpd.conf,方法如下:
sudovi/etc/vsftpd.conf
打开后,如果提示只读,不可更改,则需要用如下命令更改权限。
chmod777/etc/vsftpd.conf
改好后,按照下面进行设置。
Java代码
#服务器以standalong模式运行,如果以root用户直接启动vsftpd进程,则必须。
#注销语句以xinetd方式运行
listen=YES
#上传总开关(全局控制)
write_enable=YES
#接受匿名用户,默认无密码请求
anonymous_enable=YES
#接受本地用户
local_enable=YES
#本地用户上传文件(包括目录)的umask
#注意vsftp版本,某些旧版的该选项会被chown_uploads/chown_username二选项覆盖
local_umask=022
#允许匿名用户上传文件,配合anon_umask,否则文件权限皆为默认的600,用户上传的文件不提供给任何匿名用户下载
anon_upload_enable=YES
#匿名用户上传文件(包括目录)的umask
#注意点同local_umask
anon_umask=022
#允许匿名用户创建目录,配合anon_umask实现目录可写,否则依我(aBiNg)看,实际用处很小
anon_mkdir_write_enable=YES
#允许匿名用户删除/重命名文件等操作
#anon_other_write_enable=YES
#为YES则进入目录时显示此目录下由message_file选项指定的文本文件(默认为.message)的内容
dirmessage_enable=YES
#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file选项修改
xferlog_enable=YES
#使用port模式连接,并启用20端口
connect_from_port_20=YES
#改变用户上传文件的所有者
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log
#日志使用标准xferlog格式
#xferlog_std_format=YES
#用户登陆后idle时间,超过设置超则被踢出服务器
#idle_session_timeout=600
#login时的欢迎信息
ftpd_banner=WelcometoblahFTPservice.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails
#若为NO,则记录在chroot_list_file选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被
#chroot在登录后所在目录中,无法离开。如果为YES,则所记录的用户将不被chroot。
chroot_local_user=YES
#设置为YES则下面的控制有效
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
#ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Java代码
我将anonymous_enable=NO,即不允许匿名登录ftp;write_enable=YES可写
更改完配置文件后,重启ftp服务
sudo/etc/init.d/vsftpdrestart
直接用ftp工具连接过去,输入ubuntu用户名和密码即可直接到/home/user目录。
可以自己创建系统用户,并用相应的用户名进去
Java代码
比如我用命令创建用户,并设置目录为/home/ftpLogin,将它加入到root组:
useradd-m-d/home/ftpLogin-GrootftpLogin
passwdftpLogin
输入密码
再重启ftp服务
sudo/etc/init.d/vsftpdrestart
再用ftp工具连过去,输入用户ftpLogin及密码即可。
相关链接:
http://www.w3pop.com/learn/view/p/2/o/1/doc/ubuntu_vsftpd/
http://www.wangyutang.com/2009/04/install-and-config-ubuntu-server810-with-apache-ssh-ftp/