学习日记-3月

3/24/2017

python

利用crossin的编程教室,学习了python的random模块,并用随机数编了一个弱智小游戏。。。

linux:

利用Sequence Data Analysis Training School这个莫名的网上教程,再次学习和巩固了基本的命令,

ls-lists files in a directory  当然还可以加参数,比如-l,-a等等,当然ll相当于ls-l了

man+command - provides help for a command.来看。(这个命令类似于软件+ -h)

man-k 当你想要进行某种任务,但却不知道命令时,可以用这个命令,例如man –k list 会列出所有跟list相关的命令。

 

3/25/2017

python:

学习了python的bool逻辑值,True False(注意这两个字母开头要大写,跟VB那种不区分大小写的完全不一样)。然后还要注意=是赋值,而==是相等。

linux:

学习了linux的文件命名

1)特定的字母不能用(额,还没遇到过)    2)linux不能处理在文件名中的空格,比如你mkdir my document,linux会创建my和document两个文件夹。这时候你只有用引号引起来“my document”或者加\反斜线,my\document才可以。  3)linux不区分大小写。

 

3/26/2017

python:

学习了python的for命令,for i in range(1,10),还做了一些题    然后要注意input和raw_input的区别。然后还发现如果你想在一行里面定义多个变量,应该用分号;,而不是像VB一样用:

linux:

重新学习了cd,pwd,mkdir等常见命令,再次感慨下linux的tab补齐功能(突然想到我的虚拟机上还没有装好vim的插件。。。所以敲python代码的时候还是很麻烦的,不过还是等我python到了一定程度再装吧。)

然后发现了又一个神器,history命令,可以看到之前的所有你敲过的命令,然后history命令还可以加参数,比如history 30,可以只显示过去的30条命令,然后你想要用哪条命令,直接!加数字即可,比如!12.(其实加数字提取感觉不是很实用唉,还不如在history中选中右键呢直接就可以复制并执行命令了)

然后还试了下gedit。。。发现打不开,还不如vim呢

文档里面讲了三种提取文本的方法(不止于txt),cat more less,笔者推荐了more or less,但cat其实后面加参数也是可以的。这些提取方法再灵活运用liunx的|管道功能,还是阔以的在有些方面。

然后还提到了more或者less的又一个功能,即你在读完文本后,比如加/ATCG,就可以在你所见的页面下面找ATCG,加?ATCG,就可以在你所见的页面上面找ATCG。然后按n键相当于向上的箭头,N键相当于向下的箭头。

以水稻基因组为例

 

3/27/2017

python:
了解了python的字符串,在python里面单引号和双引号意思是一样的,但当你如果你想表示一段带有英文单引号或者双引号的文字,那么表示这个字符串的引号就要与内容区别开。比如“I‘m Shangguandong”

但可以用\'来表示单引号,作为转译,同时也可以试试\n(作为换行),\还可以再代码中换行而不影响输出结果,具体的这些可见crossin的编程教室以及我的作业。

同时更方便的是"""用三个引号上下框起来,这样随便你单引号双引号了。

然后还学习了字符串的格式化,了解到了%的用法,发现不仅可以用来做不同变量类型之间的替换,还可以在任意地方添加东西。然后强化了我的弱智小游戏

ps:不得不说,python真的真的代码比VB优美多了。。。

 

linux:

复习了cp,基本的规则是:cp + 文件+路径

1)如果你在路径没有加,就会cp在当前的路径下

2)如果你的选择的路径在当前是不存在的,则创建

可以用通配符*,如sgd-RNA/*,这样可以把sgd-RNA文件下的所有文件都拷贝到另一文件夹。

而cp —R则可以利用递归(recursive)把sgd-RNA文件下包括子文件等等都拷贝

 

复习了rm,rm + 文件名(可多个)

1)当rm空文件夹时,可直接rmdir+文件夹名。但如果文件夹内有内容,则需把所有的内容都清空,再rmdir,或者直接使用递归,rmdir -r

 

进一步了解linux中我最喜欢的一个命令,管道(piping)  "|"

1)当你想看某个目录下的文件(目录,路径貌似有点搞混了),一般会使用ls命令,但有时候ls出来有太多文件,一页放不小,这时候就可以用管道了。这样就可以逐步地把文件list出来。

2)管道其实可以用来提取序列,比如你只想要水稻第3条染色体的序列,就只需要用grep加一些正则表达再| > newfile,就可以把第3号染色体提取出来了。

wc命令,即为(word counting),可以计数用,加个-l啥的就可以干好多事,就比如数ATCGGGG这个再染色体里出现里几次啥啥的。

grep命令,用来搜索,配合正则表达式简直高效的不要不要的。。。。(然后grep还可以加参数,比如 -v ,就等于把ATTCGG全部剔除掉

但grep在搜索一个文本中的特定内容时貌似可以直接搜索,比如 grep ATTCGG rice7.fa --color ,就可以把所有包含ATTCGG的显示出来。

但当搜索目录下的文件名时,grep "R" .就 不可以,还是得依靠ls . | grep "R" ,ls先列出来,通过管道再给grep搜索

然后突然机智地想到,如果想要提取第1条染色体和第2条染色体之间的序列(之间赵汀学长用perl试过,但我觉得python应该也有,但我还没学到),就可以用如下命令,找到第2条的行数,再用sed命令即可

 

 

3/28/2017

linux:

学习了linux的权限:linux的用户被分为了user,group,others这三组,然后你对于文件又有三种权限,r(read),w(write),x(execute)。

我们以服务器为例,当你进入服务器后,就会带有一个用户身份(user  ID,UID)和一组身份(group ID,GID)。一般来说用户信息保存在/etc/passwd中,组信息保存在/etc/group中(虽然我在服务器里没看见。。。)

言归正传,可以看到下面的9位权限说明,以123.py为例我们依次来解读。

第一个符号代表的是类型,“-”代表这是个文件,“d”代表这是个directory,“l”代表这是个连接(link)或者快捷方式(shortcut)

第一组(后3位)表示,如果我的名片上的用户身份证明我是该文件的拥有者,那么我就可以对该文件有读取(r),写入(w)该文件的权限,但不拥有执行(-,如果拥有执行权限,则为x)该文件的权限。第二组表示,如果我的名片上的组身份证明我所在的组是该文件的拥有组的一员,那么我有从该文件读入和写的权限。第三组表示,如果我的名片显示我既不是拥有者,也不是拥有组的一员,那么我只有读入的权限。当我想要进行一个读取操作时,Linux会先看我是否是拥有者。

为了改变我们对文件的权限,我们可以使用chmod命令。

chmod用u,g,o分别带代表user,group,other,用r,w,x代表读写执行

使用规则如 chmod u=rw filename

关于具体的权限,以及linux的一些基本知识,推荐大家可以去

http://www.cnblogs.com/vamei/archive/2012/10/10/2718229.html这个博客,非常的详细。

 

3/30/2017

python:

学习了python的循环嵌套,跟VB应该是一样的(就是缩进要注意点)。

for i in range(0, 5):

 

   print '*',

这样有“,”逗号的话,就会输出一直在一行,如果不加“,”,每次会逐行打印。然后发现vim编辑器我还没有添加degug功能,决定跟tab补全这种插件一起,等以后要用到了再添加吧

 

 

linux:

学习了head和tail,可以输出你要读取的文件的前n行或者最后n行,具体使用为

head -n 数字 filename

学习了重定向(Redirection

首先我们必须了解什么是重定向。每个命令有输入源和输出目的地,默认行为,是标准输入和标准输出。大多数情况,标准输入是键盘,标准输出是屏幕。可以为单独的操作修改输入和输出,这就是重定向。重定向可以使某个命令从源文件输入而不是键盘,或输出到显示器以外的地方(比如存储到文件)

使用<和>来定义输入和输出源。使用>>追加到文件的末尾(即不会覆盖原来的内容,只会在文件的末尾加上内容)。

比如:sort<terms>terms-alpha,就意味着这个命令将terms文件中的条目排序,然后输出到terms-alpha文件。

而前面说过的管道,就是把把输入和输出重定向结合到一起,将一个命令的输出立即作为另一个命令的输入。

sort<terms>terms-alpha | mail fred

执行前面的操作后,将terms-alpha文件邮寄给fred。

前面来自于linux公社,这里我们再次以服务器上的内容为例

我们把head的内容输出到了123.txt这个文件中而非屏幕上

我们把head的内容输入到了管道中,再由管道输出,然后grep“A”,然后再把grep的内容输出到了1234.txt上。

注意:>这个符号经常被用作序列中,比如>Chr01,所有当你搜索>时,必须加上“”,不然会出错。

 学习了linux的压缩包,一般测序数据的压缩包为两种。

一种是.tar.gz files (sometimes names .tgz) ,对其的命令一般为

gunzip < filename.tar.gz | tar xvf -
gunzip < filename.tgz | tar xvf -

也有说直接tar zxvf filename.tar.gz的,下次遇到了再试试吧

一种是.gz 对与这个,只需要gunzip filename.gz,或者你想看内容 用zcat filename.gz

对于linux下的解压,具体可以看这篇文章http://blog.csdn.net/stark_summer/article/details/43233605

其他的一些小tips:

1.proces不想跑了,用ctrl+c

2.结束终端,用exit

3.屏幕太烦,用clear

4.用putty的时候,如果你想要复制什么,高亮(就是用鼠标选择)+右键。从windows到liunx,ctrl+c,右键

啊啊啊啊啊,终于在3月的尾巴结束了基本的linux的了解,转入4月份的学习计划

posted @ 2017-03-24 10:57  熵负  阅读(232)  评论(0编辑  收藏  举报