• 背景
  • 方案
    • 手敲
    • Girhub
    • U盘
    • FTP
  • 小结

背景

最近换了几个平台来做机器学习,从Windows到阿里云的CentOS,再到笔记本重安的Ubuntu,涉及到一些如何在Linux下管理代码的方法,因为我自己是小白,所以也没有什么太好的方案。就简单的说一下自己用过的办法好了。


方案

手敲代码大法

yes,没看错。这种方案是用来作对比的。如果你清楚的明白自己的代码版本之间有什么差异,或者需要轻微改动几行命令然后做一下Test,手敲代码无疑是最好的方法。方便快捷又体验了手指与键盘接触瞬间产生字符显示与屏幕上的快感,恩。
但是对于大量的代码转移与备份复制。这并不是我们追求的方案。

U盘

记得通信课上,老师讲过。在海洋上的一座荒岛,希望实现与互联网的数据交互,比如说希望获得100000部HD影片的数据,每部40G来算,大约需要4PB的数据,最快的办法不一定是通过卫星接入走无线信号传输的方案。最快的办法是准备2000块2TB的移动硬盘,然后通过运输的方式。
在这我想说的意思比如我从windows台式上把之前的python代码考到U盘上再转移到Linux的笔记本上,也是很欢快的。可能也算是笨办法了,而且自己没办法像windows那样在Ubuntu上右键复制粘贴(权限不够,权限机制还不太了解)。每次都是笨笨的在U盘路径上右键Open in Terminal,再

sudo cp targetfile targetpath
Github大法

上面的U盘方案还是挺直观的,不过当你的目标机器的usb接口很远的时候。。比如阿里云服务器上,总不能快递给服务器然后请人家帮你插上优盘吧。。。最初的时候我就使用的Github,不过是先把已有的代码上传到我的github再再目标机器上clone回来,感觉比较冗余。

git init                               #初始化仓库
git status                             #查看仓库状态
git add targetfile1 targetfile2        #添加需要转移的目标文件
git commit -m "addNewFile"             #执行添加并接给这次操作yagi命名
git push                               #执行上传  

上传完之后,就可以在目标机器上cd到一个你希望的目录,然后git了。

cd /usr/ml/code
git clone https://github.com/yanhn/DL  #一行命令加载仓库所有代码

git操作的说明有很多啦,可以参考一下廖老师的教程,写得非常不错。当然还是推荐大家啃原文教程

FTP

Git虽好,可是还是hin麻烦的不是吗。FTP这个东西就很顺利~以前做网优测试无线信号速度的时候就使用过FTP,操作简单,就跟打开正常的windows窗口一样,可以拖拽复制文件。
FTP在CentOS上的配置可以参考HYHOLINE转发的博文,由于是回头写Blog,所以具体步骤相似。我也会说一下我配置FTP时候遇到的坑。

  1. 首先通过vsftpd -v查看是否安装了vsftpd(very safe ftp demo)
    这里写图片描述
  2. 如果没安不要紧,通过yum install vsftpd来安装vsftpd。
  3. 设置开机启动vsftpd ftp服务chkconfig vsftpd on
  4. 启动vsftpd服务service vsftpd startftp的关闭和重启分别对应stop/restart
  5. 配置vsftpd服务器vi /etc/vsftpd/vsftpd.conf记得把anonymous_enable = NO关闭匿名模式,文件末尾添加以下4行:

    pam_service_name=vsftpd
    userlist_enable=YES
    userlist_deny=NO
    tcp_wrappers=YES
    其中第二三行涉及到可登陆到FTP的用户限制问题,下面会说到。

  6. 添加用户名并指定FTP默认路径:useradd -d /home/ftpfile -g ftp -s /sbin/nologin ftpuser其中ftpfile的路径换成你期望的ftp默认路径,这是每次登陆FTP时候的路径并且如果上传的话必须把文件上传到这个目录下。命令结尾的ftpuser就是用于登陆ftp的用户名,你可以自定义。
  7. 设置用户密码passwd ftpuser
  8. 管理用户list:vi /etc/vsftpd/user_list
    这里写图片描述
    可以看到我把vsftpd默认的用户全都注释掉了,只保留了我的用户名。
  9. ok重启一下vsftpd服务:service vsftpd restart

下面就在windows里下载一款FTP软件,我这里下的叫FlashFXP,就是某度那里搜的,安装就不说了。说说怎么配置FTP客户端。

  1. 打开FlashFXP,在菜单栏选站点→站点管理器或者直接按F4
    这里写图片描述

  2. 新建站点并给站点起个名砸。
    这里写图片描述

  3. 配置FTP信息,包括IP地址,用户名及密码。配置好后点选应用。
    这里写图片描述
    4.登陆FTP,在软件右侧找到类似远程连接的图标,并连接FTP
    这里写图片描述
    5.输入密码后按道理就会连接成功,应该会默认到你刚刚配置的ftp默认路径,这个时候就可以像windows窗口一样左右拖拽复制文件了。

遇到的错误:
这里写图片描述
这个软件好处就在于log比较清楚,可以清楚地看到出了什么问题,我第一次就是这个问题login incorrect。反复试了几次都不对,就在考虑难道是我设置用户密码时出了问题?就又回到centOS上重置密码。重置密码的方法和上面配置第七步是一样的,重置用户密码passwd ftpuser还是相同的密码却报了一个错误。
这里写图片描述
说我的密码太简单!所以猜测应该是第一次设置的密码过于简单,导致没有成功。可是第一次的时候为啥不给我报错呢?不过找到原因就换了个比较复杂的密码,后面的步骤就很顺利了。
哦对对,这里还有个事情,FTP不但可以上传文件也可以下载文件(由你对vsftpd.conf的配置决定)。下载的时候可以随便把当前目录的内容下下载,但是上传的时候必须上传到你的FTP默认路径,否则会报错并失效,也就是说,虽然可以方便的拖拽到FTP服务器,但是还需要自己去cp到目标的位置。


小结

好了,以上就是我目前在Linux上用过的招儿,还是略水,如果有问题的可以提出来我们交流一下,也欢迎大家讨论分享,帮忙提供一些更高效的方案。


Logo

更多推荐