學習生物資訊,linux是必須掌握的內容,其實常用的linux命令也就30個左右,而且這些命令都是單詞的簡寫,記憶起來並不困難。從這次內容開始,我們將詳細介紹這30個左右的命令。
11、cat
cat: concatenate 連線
cat的乙個作用是檢視檔案,一般是比較小的檔案,行數小於乙個螢幕,最多不要超過兩個螢幕,否則會刷屏;
cat另乙個作用是合併多個檔案,一般配合重定向合併為乙個新檔案或者將乙個檔案內容追加到另乙個檔案結尾。
$ cat a1.index.sh
bwa index -p homo_sapiens_assembly38 -a bwtsw homo_sapiens_assembly38.fasta
合併檔案
cat a1.txt a2.txt >all.txt
12、less / more
less和more都是檔案檢視工具,但是less功能更多一些,在windows系統下開啟乙個10g的檔案比較困難,但是在linux下非常方便,less可以開啟非常大的檔案,壓縮格式也可以直接開啟。
-m 顯示類似於more命令的百分比
-n 顯示行號
-s 格式化顯示
$ less -s nt.tar.gz
13、head / tail
這兩個命令比較簡單,只是取乙個檔案的頭部和尾部多少行,預設10行,可以加-n進行設定,利用管道可以取檔案中間行。
#取檔案第21~40行
$ head -40 a.txt | tail -n 20
14、g(un)zip/ b(un)zip2
gzip和bzip2是檔案壓縮工具,預設直接對原始檔進行處理,壓縮比率在2/3左右,都可以進行設定。
加上un,為unpack的意思,表示解壓縮。
$ gzip a.txt
$ gunzip a.txt.gz
15、tar
tar:tape archive (磁帶檔案)
tar是乙個比較複雜的命令,tar主要用於打包,由於tar能呼叫gzip或者bzip2進行壓縮,而打包和壓縮經常如windows系統一樣合併為乙個過程,新手經常將二者混淆,
-c 建立打包檔案,可搭配 -v 來察看過程中被打包的檔名(filename)
-t 察看打包檔案的內容含有哪些檔名,重點在察看『檔名』就是了;
-x 解打包或解壓縮的功能,可以搭配 -c (大寫) 在特定目錄解開
輔選項:
-j 透過 bzip2 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.bz2
-z 透過 gzip 的支援進行壓縮/解壓縮:此時檔名最好為 *.tar.gz
-v 在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來!
-f filename -f 後面要立刻接要被處理的檔名!
對於初學者,記住c是creat,建立,x是解包,z對應gzip,j對應bzip2即可,所以常用的命令如下:
$ tar -jcvf filename.tar.bz2 a b c #打包壓縮為bz2結尾檔案
$ tar -jxvf filename.tar.bz2 # 解壓縮.tar.bz2結尾檔案
$ tar -zcvf filename.tar.gz a b c #打包壓縮為gz結尾檔案
$ tar -zxvf filename.tar.gz # 解壓縮.tar.gz 結尾檔案
16、wc
wc = word count
統計乙個檔案中,行數,單詞數,字元數
-l filename 報告行數
-c filename 報告位元組數
-m filename 報告字元數
-w filename 報告單詞數
17、sort
排序,預設按第一列排序,可以通過-k進行設定;預設排序規則為按ascii碼排序,可以通過-n進行修改;-r取相反方向;
-n 依照數值的大小排序。
-o 將排序後的結果存入指定的檔案。
-r 以相反的順序來排序。
-t 指定排序時所用的字段分隔字元。
-k 選擇以哪個區間進行排序。
18、grep
文字搜尋工具,類似於正規表示式搜尋,可以在乙個大的檔案中快速搜尋到滿足一定規則的內容。
#案例一:統計fasta檔案中序列的條數;
grep -c 「>」 gene.ffn
#案例二:輸出滿足條件的序列;
grep -a 2 「3 gi 29732 34486」 lastz.axt
#案例三:篩選出不滿足條件的內容;
ps -fx | grep -v 「s」
19、sed
sed = stream editor
流處理器,sed有非常強大的功能.
#案例一:輸出固定的行
sed -n 『1307p』 seq.fna #輸出檔案第1307行;
sed -n 『100,200』 seq.fna #輸出檔案第100到200行;
#案例二:替換操作
sed -e 『s/gi/gi/』 seq.fna #將檔案中gi全部替換為大寫gi;
sed -i 『s/gi/gi/g』 seq.fna #在原檔案上進行替換,並且進行全部替換;
sed -i.bak 『s#gi#gi#』 seq.fna #在原檔案上進行替換,並進行備份;
sed -e 『s/gi/gi/2;s/ref/ref/2』 seq.fna #只將第二次出現的gi和ref進行替換;
sed -f sed.list cds.list #根據檔案中的模式進行替換,可同時進行多條件替換;
sed -n 『s/gi/gi/p』 seq.fna #列印發生替換的行;
#案例三:刪除空白行;
sed -e 『/^\s*$/d』 seq.fna #刪除檔案中的空白行;
#案例四:行定址
sed -n 『/ref/p』 seq.fna #輸出檔案中包含ref關鍵字的行;
sed 『100,2000s/gi/gi/g』 seq.fa #則只替換100行到2000行的內容;
sed 『100,2000!s/gi/gi/g』 seq.fa #加感嘆號取反,在這個範圍之外的執行操作;
#案例五:刪除操作
sed -e 『/>/d』 seq.fna #刪除包含ref的行;
sed -e 『s/:.*//g』 seq.fna #刪除冒號之後的所有內容;
#案例六:對應替換,類似於tr的功能
sed -e 『y/atcg/atcg/』 seq.fna #修改大小寫
sed -e 『/>/!y/atcg/atcg/』 seq.fna #dna序列反向互補配對,並修改大小寫
20、awk
awk也是非常強大的文字處理工具,awk本身也是一門程式語言;
#案例1:輸出乙個列表任意行;
awk 『』 blast_m8.out #輸出blast m8 格式結果的第一行;
awk -f 「:」 『』 passwd.list #通過-f修改預設分隔符為冒號,輸出第一行與最後一行;
#案例2:格式轉換
awk 『』 all.sam #將短序列比對上的reads輸出出來,生成fastq檔案;
#案例3:過濾blast結果
awk 』』 blast_m8.out #過濾blast比對結果,將identity 大於80,並且比對長度大於100bp的結果輸出;
#案例4:比較
awk 『$8>$10』 input.txt #輸出第8列大於第10列的行。
#案例5:匹配輸出
awk 『$0~ /wang/』 passwd.list #利用正規表示式,將秘密表中姓wang的賬戶都輸出出來;
#案例6:格式化輸出
awk 『beginend』 input.txt #利用begin和end關鍵字生成報告;
#案例7:修改欄位和記錄分隔符
awk 『begin』 input.txt #在begin中設定字段分隔符和記錄分隔符;
#案例8:awk程式設計計算
awk 『end』 input.txt #計算第三列的平均值,最後在end將其輸出出來。
#案例9:awk程式設計比較大小
awk 『begin 』 input.txt #取得檔案最後乙個域的最大值。
#案例10:awk程式設計求和
awk 『』 input.txt #計算第3列和第4列的和。
#案例11:輸出固定行內容
awk 『nr>=20&&nr<=80』 input.txt #輸出第20到第80行內容。
#案例12:合併檔案
awk 『begin$1 in l』 file2 #將兩個檔案按列合併起來,類似jion命令的功能。
#案例13:去重複
awk 『!($0 in a) 』 input.txt # 列印不重複的行,類似uniq的功能;
awk 『!($2 in l)』 input.txt #計算第二列內容非冗餘的次數,類似於uniq的功能;
#案例14:統計字元
awk 『end』 input.txt 計算每個字元出現的次數,類似wc的功能。
#案例15:替換
awk 『』 input.txt 進行替換,類似sed的功能,
#案例16:fastq轉換為fasta
awk 『』 test.fastq;
生物資訊常用30個Linux命令(一)
學習生物資訊,linux是必須掌握的內容,其實常用的linux命令也就30個左右,而且這些命令都是單詞的簡寫,記憶起來並不困難。從這次內容開始,我們將詳細介紹這30個左右的命令。1 cd cd change directory 修改工作目錄,cd和ls應該是使用最多的兩個命令,尤其是對於linux目...
生物資訊及開發常用的Linux命令
1.ls 檢視當前目錄下有哪些檔案或目錄 lh 顯示當前目錄下的所有檔案和目錄及其大小 l 詳細顯示當前目錄下的所有檔案和目錄,還有三種許可權關係 如圖所示,d 表示目錄 表示檔案 後面每三個字母為一組,分別表示檔案或目錄所有者擁有的許可權,檔案或目錄所有者同組成員所擁有的許可權,其他人的許可權。r...
生物資訊中linux常用命令(一)
首先你先有乙個linux的環境 ssh username hostip 例如 ssh zhang 172.16.138.89pwdcd test cd ls llls s ls wc wmkdir test mkdir p newdir childdir rm test rm rf test rmd...