本教程宗旨(請(qǐng)仔細(xì)閱讀)
本教程不是一個(gè)完備的Linux使用教程,而是側(cè)重于一般教程默認(rèn)讀者會(huì)了的信息,包括基本概念的解釋(方便初學(xué)者了解自己的操作)、命令的各種錯(cuò)誤及解決(通常寫教程的都是對(duì)這一領(lǐng)域比較熟悉的,一般不會(huì)提到這些初學(xué)者剛開始不好理解的簡(jiǎn)單錯(cuò)誤)、部分常用命令(會(huì)提到基本用法,具體的使用還請(qǐng)查看手冊(cè)或在線搜索)、常用快捷鍵(簡(jiǎn)化操作)和組合命令(快速的批處理等,初學(xué)者一般不會(huì)想到、高級(jí)學(xué)者又不屑于提起的部分)。
為什么要用Linux系統(tǒng)
個(gè)人認(rèn)為,Linux操作系統(tǒng)和類Linux操作系統(tǒng)的命令行界面是最適合進(jìn)行生物信息分析的操作系統(tǒng)。原因有三點(diǎn):
長(zhǎng)期運(yùn)行的穩(wěn)定性
多數(shù)軟件只有Linux版本
*強(qiáng)大的Bash命令簡(jiǎn)化繁瑣的操作,尤其是大大簡(jiǎn)化重復(fù)性工作
但對(duì)于初學(xué)者來說,接觸和理解Linux操作系統(tǒng)需要一些時(shí)間和摸索。陡然從可視化點(diǎn)選操作的Windows進(jìn)入到只有命令行界面的Linux,最大的陌生感是不知道做什么,不知道文件在哪?本文希望能通過幾個(gè)示例幫助大家適應(yīng)Linux系統(tǒng)。
如何獲取Linux系統(tǒng)
如果自己的單位有共有服務(wù)器,可以嘗試申請(qǐng)賬號(hào)。
自己的電腦安裝雙系統(tǒng)或虛擬機(jī)
購(gòu)買一塊云服務(wù)器
試驗(yàn)下在線學(xué)習(xí)平臺(tái)實(shí)驗(yàn)樓 (里面也有不少Linux教程,任意點(diǎn)一個(gè)進(jìn)去,雙擊桌面的Xfce圖標(biāo),都可以啟動(dòng)Linux終端)
初識(shí)Linux系統(tǒng)
登錄Linux系統(tǒng)后,呈現(xiàn)在眼前的是這樣一個(gè)界面:Last login: Mon Jun5 16:56:56 2017 from 219.241.208.209
Welcome to aliyun Elastic Compute Service!
ct@ehbio:~$
首先解釋下出現(xiàn)的這幾個(gè)字母和符號(hào):ct:用戶名ehbio:如果是登錄的遠(yuǎn)程服務(wù)器,則為宿主機(jī)的名字~:代表家目錄,在我們進(jìn)入新的目錄后,這個(gè)地方會(huì)跟著改變$:用來指示普通用戶輸入命令的地方;對(duì)根用戶來說一般是#
我的電腦在哪?
打開Windows,首先看到的是桌面;不愛整理文件的我,桌面的東西已經(jīng)多到需要2個(gè)屏幕才能顯示的完。另外一個(gè)常用的就是我的電腦,然后打開D盤,依次點(diǎn)開對(duì)應(yīng)的文件夾,然后點(diǎn)開文件。Linux的文件系統(tǒng)組織方式與Windows略有不同,登錄進(jìn)去就是家目錄,可視為Windows下的桌面。在這個(gè)目錄下,我們可以新建文件、新建文件夾,就像在桌面上的操作一樣。
注:
*這里我們假設(shè)所有用到的文件和文件夾都放置于家目錄下
C:\Users\ct如果想查看當(dāng)前目錄下都有什么內(nèi)容,輸入命令
ls,回車即可(ls可以理解為單詞list的縮寫)。當(dāng)前目錄下什么也沒有,所以沒有任何輸出。ct@ehbio:~$ ls
如果錯(cuò)把l看成了i,輸入了is,則會(huì)出現(xiàn)下面的提示未找到命令。如果輸入的是Linux基本命令,出現(xiàn)這個(gè)提示,基本可以判定是命令輸入錯(cuò)了,瞪大眼睛仔細(xì)看就是了。在敲完命令回車后,注意查看終端的輸出,以判斷是否有問題。ct@ehbio:~$ is
-bash: is:未找到命令
#大小寫敏感
ct@ehbio:~$ lS
-bash: lS:未找到命令
當(dāng)前目錄下只有一個(gè)文件,看不出效果,我們可以新建幾個(gè)文件和文件夾,來查看下。mkdir是新建一個(gè)目錄(make a directory);data是目錄的名字。如果目錄存在,則會(huì)出現(xiàn)提示,”無法創(chuàng)建已存在的目錄”。這時(shí)可以使用參數(shù)
-p忽略這個(gè)錯(cuò)誤。ct@ehbio:~$ mkdir data
ct@ehbio:~$ mkdir ls
data
ct@ehbio:~$ mkdir data
mkdir:無法創(chuàng)建目錄"data"
:文件已存在
ct@ehbio:~$ mkdir -p data
cat是一個(gè)命令,主要用來查看文件;在這與`<ct@ehbio:~$ mkdir data
ct@ehbio:~$ cat <
> a
> bc
> END
a
bc
`>`是一個(gè)重定向符號(hào),即把前面命令的輸出寫入到`>`后面的文件中。如下所示,新建了一個(gè)`Fasta`格式的文件。
`ls -l`列出文件的詳細(xì)信息;`-l`表示命令行參數(shù),是程序預(yù)留的一些選項(xiàng),保證在不更改程序的情況下獲得更靈活的操作??墒褂胉man ls`查看`ls`所有的命令行參數(shù),上下箭頭翻頁,按`q`退出查看。(man:
manual,手冊(cè))
```bash
ct@ehbio:~$ cat <data/test.fa
> >SOX2
> ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
> ACGATGAGGAGTAGGAGAGAGGAGG
> >OCT4
> ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
> AGAGTAGAGAGA
> >NANOG
> ACGATGCGATGCAGCGTTTTTTTTTGGTTGGATCT
> CAGGTAGGAGCGAGGAGGCAGCGGCGGATGCAGGCA
> ACGGTAGCGAGTC
> >mYC HAHA
> ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
> CAGGACAGGAGCTA
> end
> END
##注意命令和參數(shù)之間的空格
ct@ehbio:~/data$ ls-l
-bash: ls-l:未找到命令
ct@ehbio:~$ ls -l
總用量4
## d: dir;表示data是個(gè)目錄
## rwx:表示目錄的權(quán)限,暫時(shí)忽略,或自己在線搜索
drwxrwxr-x 2 ct ct 4096 6月8 14:52 data
ct@ehbio:~$ ls -l data
總用量4
##開頭的`-`表示test.fa是個(gè)文件
-rw-rw-r-- 1 ct ct 284 6月8 14:48 test.fa
查看寫入的文件的內(nèi)容,cat文件名;需要注意的是文件所在的目錄,默認(rèn)是當(dāng)前目錄;如下面第一個(gè)命令,會(huì)提示cat: test.fa:沒有那個(gè)文件或目錄,是因?yàn)楫?dāng)前目錄下不存在文件test.fa。(注意文件末尾的end)ct@ehbio:~$ cat test.fa
cat: test.fa:沒有那個(gè)文件或目錄
ct@ehbio:~$ cat data/test.fa
>SOX2
ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
ACGATGAGGAGTAGGAGAGAGGAGG
>OCT4
ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
AGAGTAGAGAGA
>NANOG
ACGATGCGATGCAGCGTTTTTTTTTGGTTGGATCT
CAGGTAGGAGCGAGGAGGCAGCGGCGGATGCAGGCA
ACGGTAGCGAGTC
>mYC HAHA
ACGGAGCGAGCTAGTGCAGCGAGGAGCTGAGTCGAGC
CAGGACAGGAGCTA
end
test.fa在目錄data下,可以先進(jìn)入data目錄,然后再查看文件。類比于Windows下先點(diǎn)開一個(gè)文件夾,再點(diǎn)開下面的文件。cd (change dir)切換目錄。head查看文件最開始的幾行,默認(rèn)為10行,可使用-n 6指定查看前6行。ct@ehbio:~$ cd data
ct@ehbio:~/data$ head -n 6 test.fa
>SOX2
ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
ACGATGAGGAGTAGGAGAGAGGAGG
>OCT4
ACGTAGGATGGAGGAGAGGGAGGGGGGAGGAGAGGAA
AGAGTAGAGAGA
另外less和more也可以用來查看文件,尤其是文件內(nèi)容特別多的時(shí)候。ct@ehbio:~/data$ less test.fa
# q:退出
#上下箭頭、空格翻頁