本教程宗旨(请仔细阅读)
本教程不是一个完备的Linux使用教程,而是侧重于一般教程默认读者会了的信息,包括基本概念的解释(方便初学者了解自己的操作)、命令的各种错误及解决(通常写教程的都是对这一领域比较熟悉的,一般不会提到这些初学者刚开始不好理解的简单错误)、部分常用命令(会提到基本用法,具体的使用还请查看手册或在线搜索)、常用快捷键(简化操作)和组合命令(快速的批处理等,初学者一般不会想到、高级学者又不屑于提起的部分)。
为什么要用Linux系统
个人认为,Linux操作系统和类Linux操作系统的命令行界面是最适合进行生物信息分析的操作系统。原因有三点:
长期运行的稳定性
多数软件只有Linux版本
*强大的Bash命令简化繁琐的操作,尤其是大大简化重复性工作
但对于初学者来说,接触和理解Linux操作系统需要一些时间和摸索。陡然从可视化点选操作的Windows进入到只有命令行界面的Linux,最大的陌生感是不知道做什么,不知道文件在哪?本文希望能通过几个示例帮助大家适应Linux系统。
如何获取Linux系统
如果自己的单位有共有服务器,可以尝试申请账号。
自己的电脑安装双系统或虚拟机
购买一块云服务器
试验下在线学习平台实验楼 (里面也有不少Linux教程,任意点一个进去,双击桌面的Xfce
图标,都可以启动Linux终端)
初识Linux系统
登录Linux系统后,呈现在眼前的是这样一个界面:Last login: Mon Jun5 16:56:56 2017 from 219.241.208.209
Welcome to aliyun Elastic Compute Service!
ct@ehbio:~$
首先解释下出现的这几个字母和符号:ct
:用户名ehbio
:如果是登录的远程服务器,则为宿主机的名字~
:代表家目录,在我们进入新的目录后,这个地方会跟着改变$
:用来指示普通用户输入命令的地方;对根用户来说一般是#
我的电脑在哪?
打开Windows,首先看到的是桌面;不爱整理文件的我,桌面的东西已经多到需要2个屏幕才能显示的完。另外一个常用的就是我的电脑,然后打开D盘,依次点开对应的文件夹,然后点开文件。Linux的文件系统组织方式与Windows略有不同,登录进去就是家目录,可视为Windows下的桌面。在这个目录下,我们可以新建文件、新建文件夹,就像在桌面上的操作一样。
注:
*这里我们假设所有用到的文件和文件夹都放置于家目录下
C:\Users\ct
如果想查看当前目录下都有什么内容,输入命令
ls
,回车即可(ls可以理解为单词list的缩写)。当前目录下什么也没有,所以没有任何输出。ct@ehbio:~$ ls
如果错把l
看成了i
,输入了is
,则会出现下面的提示未找到命令
。如果输入的是Linux基本命令,出现这个提示,基本可以判定是命令输入错了,瞪大眼睛仔细看就是了。在敲完命令回车后,注意查看终端的输出,以判断是否有问题。ct@ehbio:~$ is
-bash: is:未找到命令
#大小写敏感
ct@ehbio:~$ lS
-bash: lS:未找到命令
当前目录下只有一个文件,看不出效果,我们可以新建几个文件和文件夹,来查看下。mkdir
是新建一个目录(m
ak
e a dir
ectory);data
是目录的名字。如果目录存在,则会出现提示,”无法创建已存在的目录”。这时可以使用参数
-p
忽略这个错误。ct@ehbio:~$ mkdir data
ct@ehbio:~$ mkdir ls
data
ct@ehbio:~$ mkdir data
mkdir:无法创建目录"data"
:文件已存在
ct@ehbio:~$ mkdir -p data
cat
是一个命令,主要用来查看文件;在这与`<ct@ehbio:~$ mkdir data
ct@ehbio:~$ cat <
> a
> bc
> END
a
bc
`>`是一个重定向符号,即把前面命令的输出写入到`>`后面的文件中。如下所示,新建了一个`Fasta`格式的文件。
`ls -l`列出文件的详细信息;`-l`表示命令行参数,是程序预留的一些选项,保证在不更改程序的情况下获得更灵活的操作。可使用`man ls`查看`ls`所有的命令行参数,上下箭头翻页,按`q`退出查看。(man:
manual,手册)
```bash
ct@ehbio:~$ cat <data/test.fa
> >SOX2
> ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
> ACGATGAGGAGTAGGAGAGAGGAGG
> >OCT4
> ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
> AGAGTAGAGAGA
> >NANOG
> ACGATGCGATGCAGCGTTTTTTTTTGGTTGGATCT
> CAGGTAGGAGCGAGGAGGCAGCGGCGGATGCAGGCA
> ACGGTAGCGAGTC
> >mYC HAHA
> ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
> CAGGACAGGAGCTA
> end
> END
##注意命令和参数之间的空格
ct@ehbio:~/data$ ls-l
-bash: ls-l:未找到命令
ct@ehbio:~$ ls -l
总用量4
## d: dir;表示data是个目录
## rwx:表示目录的权限,暂时忽略,或自己在线搜索
drwxrwxr-x 2 ct ct 4096 6月8 14:52 data
ct@ehbio:~$ ls -l data
总用量4
##开头的`-`表示test.fa是个文件
-rw-rw-r-- 1 ct ct 284 6月8 14:48 test.fa
查看写入的文件的内容,cat文件名
;需要注意的是文件所在的目录,默认是当前目录;如下面第一个命令,会提示cat: test.fa:没有那个文件或目录
,是因为当前目录下不存在文件test.fa
。(注意文件末尾的end)ct@ehbio:~$ cat test.fa
cat: test.fa:没有那个文件或目录
ct@ehbio:~$ cat data/test.fa
>SOX2
ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
ACGATGAGGAGTAGGAGAGAGGAGG
>OCT4
ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
AGAGTAGAGAGA
>NANOG
ACGATGCGATGCAGCGTTTTTTTTTGGTTGGATCT
CAGGTAGGAGCGAGGAGGCAGCGGCGGATGCAGGCA
ACGGTAGCGAGTC
>mYC HAHA
ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
CAGGACAGGAGCTA
end
test.fa
在目录data
下,可以先进入data
目录,然后再查看文件。类比于Windows下先点开一个文件夹,再点开下面的文件。cd
(change dir)切换目录。head
查看文件最开始的几行,默认为10行,可使用-n 6
指定查看前6行。ct@ehbio:~$ cd data
ct@ehbio:~/data$ head -n 6 test.fa
>SOX2
ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
ACGATGAGGAGTAGGAGAGAGGAGG
>OCT4
ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
AGAGTAGAGAGA
另外less
和more
也可以用来查看文件,尤其是文件内容特别多的时候。ct@ehbio:~/data$ less test.fa
# q:退出
#上下箭头、空格翻页