做爰全過程網(wǎng)站seo實戰(zhàn)技術培訓
wget+網(wǎng)址用于直接從網(wǎng)上下載某個文件到服務器,當然也可以直接從網(wǎng)上先把東西下到本地然后用filezilla這個軟件來傳輸?shù)椒掌魃稀?/p>
當遇到不會的命令時候,可以使用man “不會的命令”來查看這個命令的詳細信息。比如我想要看看ls這個命令的詳細用法,可以寫man ls,結(jié)果如下,按q退出
ls用于查看當前目錄下有什么
其中l(wèi)s是命令,-l也好,-h也好,都是命令的修飾,如果只寫一個ls就只顯示當前目錄下的文件名,加上-l表示以列表的形式查看當前文件的詳細信息,再加上-h表示簡潔的顯示出文件的大小,可以看到這里的文件是945M。
在Linux系統(tǒng)中,ls命令用于列出目錄的內(nèi)容。ls -alF命令是ls命令的一個變體,其中包含了幾個選項:
- -a:表示顯示所有文件,包括以點(.)開頭的隱藏文件。
- -l:表示以長列表格式顯示文件信息,包括文件權(quán)限、所有者、大小、最后修改時間等。
- F:這個選項會在文件名后添加一個字符以指示文件類型。例如,/ 表示目錄,* 表示可執(zhí)行文件。
綜合來看,ls -alF命令會以長列表格式顯示當前目錄下的所有文件(包括隱藏文件),并為每個文件名添加一個指示文件類型的字符。這個命令還被Linux系統(tǒng)起了一個別名,叫做ll,我們可以使用alias命令來查看系統(tǒng)都給哪些命令起了別名,如圖
如何找到一個文件的地址?實際上文件的地址=文件所在的文件夾地址+本文件的文件名,而使用pwd我們可以得到當前文件所在的路徑,比如我現(xiàn)在有一個文件叫l(wèi)inux.tar.gz,我運行pwd將得到這個文件所在的文件夾,
則顯然該文件的絕對路徑就是/trainee/May4104/linux.tar.gz
有了文件的路徑,就可以配合ls命令來顯示一個指定文件的信息了。
實際上我們可以寫ls -lh,與上面的ls -l -h是等效的。
rm用于刪除文件,但不能刪除文件夾,刪除文件夾使用的命令是rm -r +要刪除的文件名,那么如何來看要刪除的是文件還是文件夾呢?答案是使用ls -l以列表形式展示當前目錄的所有內(nèi)容(實際上直接ll就行),第一列以'-'開頭的就是文件,以d開頭的就是文件夾。
有時候我們使用rm -r來刪除文件夾的時候,系統(tǒng)會一直問說是否要刪除這個文件,我們要回答yes或者no,如果要刪的文件夾里面有100個文件,我們就要打100次yes或者no,此時可以使用rm -r -f 來強制刪除。
小鍵盤的上下鍵用于翻閱上下命令,這個技巧非常有用,可以避免我們重復的輸入代碼。
先選中某個命令,然后ctrl+shift+c/v表示復制或者粘貼
ctrl+c表示終止當前正在執(zhí)行的命令
清空屏幕可以使用命令clear或者直接ctrl+l
cd /工作路徑 用于切換工作目錄,如果不指定具體工作路徑只是有一個/,就是切換工作路徑到根目錄,也就是最大的目錄,如果連/都沒有,那就是切換到家目錄。在Linux中有很多特殊路徑有特殊的符號來表示,比如/表示跟目錄,~表示家目錄,一個點表示當前目錄,兩個點表示上一級目錄。當然如果是上上級目錄就是兩組上級目錄,也就是../..
建文件夾的命令是mkdir
拷貝的命令是cp,比如我想要把linux.tar.gz這個文件拷貝到文件夾workspace中去,就可以寫cp ,ll workspace就可以看見workspace下就變成了這樣子。
cp命令還有一種用法,比如cp linux.tar.gz 123 其中123其實是不存在的一個文件夾,但是仍然能拷貝,此時這個命令的意思就是把 linux.tar.gz拷貝一份并命名為123
移動文件的命令是mv,比如要把linux.tar.gz移動到morkspace中去就寫mv linux.tar.gz morkspace 注意是先寫要移動的文件,再寫把這個文件移動到哪里去。
mv也有另一種用法,比如cp linux.tar.gz 123 其中123其實是不存在的一個文件夾,那么其實這句命令的意思就是對 linux.tar.gz這個文件進行重命名
總結(jié)一下:cp就是windows系統(tǒng)中的復制+粘貼,而mv就是剪切+粘貼。
解壓文件使用的命令是tar -zxvf 文件名,運行結(jié)果如圖
查看某個文件夾中有哪些文件有兩種方法,第一種是使用cd跳轉(zhuǎn)到那個文件去,然后使用ls,ll等等命令來查看,第二種是使用ll 加文件夾名 直接查看,第一種方式就好像是我想要看看月球上有什么,我直接跑到月球上去看看,第二種方法是我在地球上拿一個望遠鏡來看看,是遠程查看。
在Linux中查看文件內(nèi)容僅限于文本文件,因為linux沒有圖形界面。什么是文本文件呢?是不是后綴是txt的?其實不一定,我們需要明確一點,Linux系統(tǒng)下的文件名中后綴不重要,不像windows系統(tǒng)中的文件名后綴那樣重要。查看文件使用的命令是cat 加文件名,可以使用tab鍵來自動補齊。
cat 加文件名這種方法來查看文件僅限于查看小文件,如果一個文件的字節(jié)數(shù)很多,使用cat查看就會導致不停滾屏,不方便閱讀,此時應該使用less命令來查看大文件,用法為less 加文件名,這時候會在一個新的窗口中打開。有時候會出現(xiàn)顯示的“很亂”的情況,比如這樣,這是我用less命令查看一個大文件的結(jié)果,這樣露娜的原因是因為字體太大了,屏幕放不下,所以這一行的內(nèi)容就跑到下一行去顯示了,就顯得很亂,要解決這個問題,只需要使用less -S即可
使用less -S atha.gff查看atha.gff這個文件的內(nèi)容結(jié)果如圖
可以看到這個gff的文件里面有很多信息,比如第一列是位于哪個染色體上,第二列不重要,第三列是對應的基因,或者mRNA,蛋白質(zhì)等等,第四列第五列是從哪個堿基開始,到哪個堿基結(jié)束。
如果我們想要查看這張表中某一個基因的信息,在打開這張表的基礎上,按一下/,然后輸入基因的名字(不一定是基因名,也可以是序列等別的信息)比如AT2G22890.1,結(jié)果就是這樣
確實是只有AT2G22890.1這個基因的信息了
如果我們想要看到行號,可以用命令less -S -N,結(jié)果如圖
如果我們想看文件的前幾行或者后幾行,用到的命令分別是head和tail,默認是看前10行或者后10行,如果想要指定看多少行,可以寫head -n 12 加文件名,表示要查看當前文件的前12行。
新建文件使用的命令是vi 加文件名,比如我輸入vi lubenwei.txt就有了這樣的一個界面
但是此時我們并不能對文件內(nèi)容進行編輯,只是創(chuàng)建了一個文件,我們使用vi命令表示使用vim的編輯器來創(chuàng)建文件
當創(chuàng)建好了文件之后我們?nèi)绻胍庉嬑募?nèi)容應該先按一下i來進入編輯模式,可以發(fā)現(xiàn)此時的左下角已經(jīng)變成了這樣
我們就可以輸入內(nèi)容了。
要想退回到一般模式只需要按一下esc即可。一般模式的標志就是左下角什么也沒有。
還可以輸入相應的按鍵來進入命令行模式,比如先輸入冒號,在輸入wq就是保存并退出,可以發(fā)現(xiàn)此時已經(jīng)有了我們剛才創(chuàng)建的文件,如果是不保存并退出就按了冒號之后用q!。有時候不加感嘆號也表示不保存并退出,取決于服務器,所以我們使用vi命令創(chuàng)建文件之后如果想要退出,要么就按了冒號之后再按wq,要么就按了冒號之后再按q!
剛才我們已經(jīng)創(chuàng)建了lubenwei.txt這個文件,那么此時離我們再次運行命令vi lubenwei.txt這個命令就會打開我們剛才創(chuàng)建并編輯過的文件。如圖,這是我剛才輸入的內(nèi)容
一般模式下可以復制和粘貼,首先使用鼠標點擊到某一行去,再輸入yy就可以復制這一整行,然后再按i進入編輯模式,按p就可粘貼了。yy這個方式就是一次復制一行,但是如果我們想要一次復制好幾行,比如三行,就按3y,如果要選擇性的復制某些內(nèi)容,就要按v先進入可視化模式,如圖
然后按小鍵盤的上下鍵來選中要賦值的內(nèi)容,之后按一個y就可以復制了,粘貼還是p
刪除的命令邏輯和選中復制的命令類似,如果要刪除光標所在的當前行,使用命令dd即可,如果要刪除從光標開始的三行,就寫3d,如果要選擇性的刪除某些內(nèi)容,就先按v,然后小鍵盤上下左右鍵選中內(nèi)容,然后按d即可。
搜索vi創(chuàng)建的某些內(nèi)容先按/,然后輸入要搜索的內(nèi)容,如果要撤銷上一步的操作,按u即可。
文本操作:
重定向命令是>,比如head -500 atha.gff > tmp表示把atha.gf這個文件的前500行拿出來放到臨時文件tmp中去,atha.gf的內(nèi)容長這樣子,之后我們可以查看tmp的內(nèi)容
運行l(wèi)ess -S tmp結(jié)果如圖
利用重定向">",我們可以完成下面的任務:
提取 atha.gff 的 400 到 500 ?,打印輸出到 subset.gff
首先head -500 atha.gff > tmp提取出前500行放到tmp里面,然后再tail -100 tmp > subset.gff 取出tmp的后100行放到subset.gff 里面,看起來很合理,但是對嗎?其實這樣做就少了一行,因為我們這樣操作最后subset.gff 里面的內(nèi)容是第401行到500行的內(nèi)容,但是題目要求是取出400到500行一共101行的內(nèi)容,所以我們要寫成tail -101 tmp > subset.gff,其實還有另一種更簡潔的寫法就是head -500 | tail -101 >subset.gff,其中用豎杠來代表臨時前面的命令的結(jié)果(等價于上一種寫法的tmp),后續(xù)的tail -101 tmp中的tmp也不用寫了,會自動用|的內(nèi)容也就是head -500 的結(jié)果來替換。結(jié)果如圖,subset.gff也被成功創(chuàng)建了出來。
注:1.在linux中,|被稱為管道。
2.重定向 > 的效果為覆蓋,如果已經(jīng)有名為tmp的文件,就會覆蓋掉原本文件中的內(nèi)容。如果要追加內(nèi)容,請使用>>。
這種方法不僅簡潔,而且不會生成中間文件tmp,缺點是可讀性不好。
查看 atha.fasta ?件中有多少條序列
首先來看一下atha.fasta內(nèi)容是什么。
其中每一段是一個基因與他的序列,我們想要看看這個文件中有多少條序列其實只需要看看有多少個這樣的“片段”就行了,每一個片段都有一個特征就是他們都由>開頭,所以我們只需要統(tǒng)計有多少個>就行了。
首先使用命令grep ">" atha.fasta>tmp生成一個臨時文件tmp,這個文件中包含所有含有">"的行,如圖
我們只需要統(tǒng)計這個文件有多少行就可以知道atha.fasta這個文件中有多少個基因了,統(tǒng)計某個文件的行數(shù)用的命令是wc,表示word count,輸入wc tmp
結(jié)果顯示有27416個基因。
練習:查看下表中有多少轉(zhuǎn)錄本的信息
其實就是把含有mRNA的行都提取出來放到一個文件里面然后統(tǒng)計行數(shù)就行了。用的命令就是grep "mRNA" atha.gff | wc。結(jié)果如圖
再來看看有多少個基因:運行grep "gene" atha.gff | wc
發(fā)現(xiàn)基因的數(shù)量要比轉(zhuǎn)錄本的數(shù)量少。一個基因是可以轉(zhuǎn)錄出多個mRNA的,生物學上稱為可變剪切。如果發(fā)現(xiàn)基因的數(shù)量和mRNA數(shù)量相等,那說明這個基因我們還沒有研究明白,不知道他能轉(zhuǎn)錄多少種mRNA,所以我們稱之為注釋到了基因水平,如果像剛才那樣我們發(fā)現(xiàn)基因的數(shù)量少于轉(zhuǎn)錄本的數(shù)量,說明我們已經(jīng)研究明白了基因與mRNA的關系,稱之為注釋到了轉(zhuǎn)錄本水平。
實際上使用grep來跳出含有gene這個單詞的行從而判斷有多少個基因的方法不嚴謹,因為我們希望的只是第3列有gene這個單詞,但是使用grep篩選的話即使別的列種有gene這個單詞也會被算進去,正確的方法是使用命令awk來指定某一列篩選,比如我運行命令awk '$3=="gene"' atha.gff |less -S,語法為先寫上awk,然后是單引號,單引號內(nèi)是篩選的條件,其中$3表示第三列,之后跟上要篩選的文件。結(jié)果如圖
此時再用wc命令來統(tǒng)計awk '$3=="gene"' atha.gff |wc,結(jié)果如圖
變成了兩萬多個基因。這種方法才是嚴謹?shù)姆椒?#xff0c;說明剛才我們直接使用grep進行篩選的時候多算了很多行進去。
awk命令還可以把某一列內(nèi)容打印出來,使用命令:
awk '{print$3}' 加文件名
接下來再看一個文件,名為BLO_S1_vs_KID_S1.DESeq2.DE_results
里面包含了差異分析的結(jié)果,比如logFC和P值等等,其中l(wèi)ogF在第七列,P值在第11列,我想要挑選出同時滿足logFC大于1和p值小于0.05的行,使用Linux中的awk命令也可以做到,寫作:
wak '$7>1&&$11
如果我想要刪除BLO_S1_vs_KID_S1.DESeq2.DE_results的第一行,因為第一行是表頭,不能參與運算,我可以直接vi BLO_S1_vs_KID_S1.DESeq2.DE_results打開這個文件,然后光標弄到第一行按dd就能刪掉了?;蛘呤褂妹顂ed '1d' BLO_S1_vs_KID_S1.DESeq2.DE_results 也可以。兩種方法等效。其中sed后面的單引號里面放1d表示刪除第一行。
如果要篩選出絕對值大于1的行呢?在R語言中我們可以使用abs這個函數(shù)來求絕對值,但是在Linux中沒有這個函數(shù),但是卻有sqrt表示開平方的操作,我們又知道x*x然后再開平方就是絕對值x,所以篩選出絕對值大于1的行就寫作awk 'sqrt($7*$7)>1' 文件名
壓縮和解壓
壓縮文件的常用命令為gzip,運行gzip 加文件名 這句命令之后會在當前工作目錄下生成一個gz文件。
打包文件用的命令是tar
比如我想要把當前工作目錄下圈起來的這幾個文件打包成一個文件
就運行這句命令:tar -c -f TAIR10.tar TAIR10_chr*.fas
其中tar是用于打包的命令,-c表示創(chuàng)建一個新文件,-f后面跟的是創(chuàng)建的文件的文件名,最后是要把哪些文件打包,當然可以把這幾個文件名全復制下來寫在這里,但是比較麻煩,我們發(fā)現(xiàn)這幾個文件的文件名唯一不同的地方就是1 2 3 4這里的數(shù)字,我們使用*替代這個位置,*在這里是通配符的作用,表示只要含有TAIR10_chr什么什么.fas的文件名都要打包起來。運行之后再次查看當前工作目錄結(jié)果如圖
打包的文件已經(jīng)被創(chuàng)建了出來。通常我們會把打包與壓縮的操作同時進行,只要再tar命令中再加一個參數(shù)就-z就行了,壓縮的過程會比較慢的,我們可以再加一個參數(shù)-v,這樣每壓縮完一個文件就會把這個文件顯示在屏幕上,如圖
當然命令中的-可以省略,寫成tar -czvf -文件名
解壓縮還可以使用命令tar -cxcf -文件名
下載到服務器的軟件要運行的話需要指定路徑+軟件名,比如我要運行fastp這個軟件,就寫成./fastp表示運行當前目錄下的fastp軟件,有時候會遇到這樣的情況
這是因為我們沒有運行這個軟件的權(quán)限,需要先使用命令chmod來設置權(quán)限,寫a+x表示所有人都有這個權(quán)限,寫u+x就是只有自己有權(quán)限,然后跟上軟件的名字
這樣我們再次運行這個軟件就可以了,出現(xiàn)了這個軟件的幫助文檔
添加環(huán)境變量
環(huán)境變量是Linux系統(tǒng)中自帶的一個變量,名為$PATH,可以使用下面的命令來查看環(huán)境變量的內(nèi)容
發(fā)現(xiàn)是好幾個路徑,注意這幾個路徑以冒號分割,分別是不同的路徑,前面我們說了運行下載的軟件需要指定路徑,但是再運行一個名為htop的軟件時,沒有指定路徑卻能夠正常運行,這是因為再運行指令'htop'的時候,系統(tǒng)自動把我們輸入的htop這個命令替換成這樣
發(fā)現(xiàn)沒有,接著又替換成$PATH的第二個路徑
發(fā)現(xiàn)還是沒有,再替換成第三個路徑
一直遍歷$PATH中的內(nèi)容直到成功運行htop
也就是說如果環(huán)境變量中有我們安裝的軟件所在目錄的路徑,我們就可以直接輸入軟件名來運行這個軟件,在環(huán)境變量中添加內(nèi)容用的命令是export PATH='路徑':$PATH ,注意等號的前后不要加空格,前面的PATH沒有$,后面的PATH有$。如圖
這樣環(huán)境變量就填加了這個路徑,這個路徑就是我們剛才安裝fastp這個軟件的路徑,所以現(xiàn)在我們可以直接使用fastp這個命令來運行該軟件。使用export命令在環(huán)境變量$PATH中添加內(nèi)容的時候?qū)⑻砑釉谧钋懊?。千萬不要忘記加后面的:$PATH,否則意思就成了環(huán)境變量中只有本次添加的第一個路徑了,這會導致很多命令比如ls都用不了了。
使用這種方式在$PATH變量中添加內(nèi)容只對當前會話生效,如果我們退出之后再次登陸就會發(fā)現(xiàn)$PATH中還是那些內(nèi)容,想要讓我們添加的內(nèi)容永久生效,需要把這個命令添加到.bashrc這個文件中,這個文件在家目錄下,找到之后運行命令vi .bashrc,在文件最下面輸入
export PATH=/trainee/May4104/software:$PATH之后按冒號再按wq保存并退出,這樣即使結(jié)束本次會話,下次登錄該服務器也能直接使用軟件名(比如我們剛才的fastp)來運行軟件了。如果用這種方式來修改環(huán)境變量的時候忘記了后面的:$PATH,后果就比較嚴重了,我們可能會想,只要再次vi .bashrc把剛才那句命令刪掉不就行了?但是實際操作的時候我們發(fā)現(xiàn)vi這個命令不能用了,此時我們只能記住vi這個命令的絕對路徑,從而使用絕對路徑來使用vi這個命令,vim的絕對路徑是user/bin,使用user/bin vim就能運行vim了。
使用which '軟件名' 將返回軟件裝在了哪里,這可以輔助我們添加環(huán)境變量的內(nèi)容。
.bashrc這個文件是一個系統(tǒng)的配置文件,啟動系統(tǒng)的時候自動加載,前面我們提到過一個起別名的命令alias,比如我寫
alias le=less- a,那么le這個命令就相當于less-a了,但是這樣改也是只在本次會話中生效,當我們退出之后再次連接服務器就沒用了,如果想要讓別名永久生效,只需要像剛才修改環(huán)境變量那樣把起別名的命令行寫到.bashrc這個文件中保存退出即可。