Linux常用的命令及初窺正則表達(dá)式--The learning notes of the biostar handbook(2)

Linux常用的命令

目錄操作命令

  • ls 顯示目錄文件

ls -al
-a 顯示所有文件,包括.及..
-l 詳細(xì)信息
-d 顯示目錄本身的信息,而不看目錄下的內(nèi)容
-i 顯示文件i nodes

  • mkdir 目錄創(chuàng)建命令

mkdir -p ~/abc/def 同時(shí)創(chuàng)建目錄abc及子目錄def
-p 遞歸創(chuàng)建,可同時(shí)遞歸創(chuàng)建多個(gè)目錄

  • cd 變換進(jìn)入目標(biāo)目錄

cd ~ 代表進(jìn)入家目錄
cd ..返回上一級(jí)目錄

  • rmdir 刪除空目錄

rmdir [dir] 目標(biāo)目錄必須為空目錄才能刪除,否則報(bào)錯(cuò)
rm -r [dir] 刪除目錄(包括空與非空目錄)

  • pwd 輸出當(dāng)前目錄

pwd

文件操作命令

  • cp 文件或目錄復(fù)制命令;復(fù)制的同時(shí)支持修改文件名
    cp [源文件] [目標(biāo)文件]

-r 復(fù)制目錄
-p 保留文件屬性

  • mv 剪切文件、重命名
    mv [源文件] [目標(biāo)文件]
  • rm 刪除文件或目錄

-r 刪除目錄
-f 強(qiáng)制執(zhí)行

  • touch 創(chuàng)建空文件
    touch filename
  • cat 顯示文件內(nèi)容(不適合文件分屏查看)
    cat filename

-n顯示行號(hào)

  • more 分頁(yè)顯示文件內(nèi)容
    more filename
  • head 顯示文件內(nèi)容頭幾行

-n 制定行數(shù) (默認(rèn)顯示頭10行)

壓縮及解壓縮命令

  • .gz Linux下最常用的壓縮格式
    命令:gzip(壓縮),gunzip|gzip -d(解壓縮)

壓縮后不保留源文件

  • tar Linux下的壓縮命令不能壓縮目錄,只能壓縮單個(gè)文件,那么如果需要壓縮目錄需要對(duì)目錄先進(jìn)行打包
    tar [打包后的文件名] [需要打包的目錄]

通常我們下載的文件或安裝包文件名大部分以.tar.gz結(jié)尾,解壓縮的命令可用 tar -zxvf filename 壓縮生成.tar.gz的文件可用tar -cxvf filename.tar.gz filename
-c: 建立壓縮檔案
-x:解壓
-t:查看內(nèi)容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
這五個(gè)是獨(dú)立的命令,壓縮解壓都要用到其中一個(gè),可以和別的命令連用但只能用其中一個(gè)。
下面的參數(shù)是根據(jù)需要在壓縮或解壓檔案時(shí)可選的。
-z:有g(shù)zip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過(guò)程
-O:將文件解開到標(biāo)準(zhǔn)輸出
如果是tar.bz2結(jié)尾的文件則用一下命令解壓
tar -xjvf filename.tar.bz2
壓縮命令
tar -cjf filename.tar.bz2

"|"管道符

將上一個(gè)命令的標(biāo)準(zhǔn)輸出結(jié)果作為下一個(gè)命令的標(biāo)準(zhǔn)輸入

實(shí)例演示

創(chuàng)建目錄~/biostarhandbook/lec03
mldir -p ~/biostarhandbook/lec03
進(jìn)入目錄
cd biostarhandbook/lec03
下載文件:SGD_features.tab及SGD_features.README

wget https://downloads.yeastgenome.org/curation/chromosomal_feature/SGD_features.tab
wget https://downloads.yeastgenome.org/curation/chromosomal_feature/SGD_features.README

查看目錄下文件
ls -l

總用量 3192

-rw-rw-r-- 1 *** *** 1557 11月 19 2014 SGD_features.README
-rw-rw-r-- 1 *** *** 3264490 1月 14 2017 SGD_features.tab

顯示當(dāng)前所在目錄
pwd
將兩個(gè)文件打包并壓縮為gz格式

cd ..
tar -czvf lec03.tar.gz lec03
ls
# lec03  lec03.tar.gz

解壓縮
tar -xzvf lec03.tar.gz
查看SGD_features.tab
more SGD_features.tab
cat命令查看文件
cat SGD_features.tab
用wc命令查看SGD_features.tab文件的行數(shù)、字?jǐn)?shù)、字符數(shù)
cat SGD_features.tab | wc

將cat命令的標(biāo)準(zhǔn)輸出做為wc的標(biāo)準(zhǔn)輸入
16454 425719 3264490

如果僅需查看行數(shù)
cat SGD_features.tab | wc -l

16454

查看文件的頭10行
cat SGD_features.tab | head

grep與正則表達(dá)式

在初步學(xué)習(xí)了grep之后,覺得grep類似與我們常用的文本程序下的查找與替換工具,且支持了強(qiáng)大正則表達(dá)式,所以grep的功能變得非常強(qiáng)大。

grep

grep過(guò)濾來(lái)自一個(gè)文件成標(biāo)準(zhǔn)輸入匹配模式的內(nèi)容,是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來(lái)。
具體的參數(shù)可用man grep查看

實(shí)例演示

查找SGD_features.tab文件匹配“YAL060W”的行
cat SGD_features.tab | grep YAL060W

grep -i pattern files :不區(qū)分大小寫地搜索。默認(rèn)情況區(qū)分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個(gè)單詞,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
grep -n pattern files 即可顯示行號(hào)信息
grep -c pattern files 即可查找總行數(shù)
grep -v pattern files 查找不包含匹配項(xiàng)的行

查看不包含Dubious的總行數(shù)
cat SGD_features.tab | grep -v Dubious | wc -l

15737

輸入與輸出的重定向

Linux的標(biāo)準(zhǔn)輸入輸出

設(shè)備 設(shè)備文件名 文件描述符 類型
鍵盤 /dev/stdin 0 標(biāo)準(zhǔn)輸入
顯示器 /dev/stdout 1 標(biāo)準(zhǔn)輸出
顯示器 /dev/stderr 2 標(biāo)準(zhǔn)錯(cuò)誤輸出

輸出重定向

類型 符號(hào) 作用
標(biāo)準(zhǔn)輸出重定向 命令>文件 以覆蓋的方式
命令>>文件 以追加的方式
標(biāo)準(zhǔn)錯(cuò)誤輸出重定向 錯(cuò)誤命令 2>文件 以覆蓋的方式
錯(cuò)誤命令 2>>文件 以覆蓋的方式

實(shí)例演示

如何將匹配得到的行輸出為文件。grep命令默認(rèn)的標(biāo)準(zhǔn)輸出的顯示器,即為/dev/stdout,要保存為文件,需要將輸出重定向>
cat SGD_features.tab | grep YAL060W > match.tab
ls

match.tab SGD_features.README SGD_features.tab

查看match.tab
more match.tab

查看匹配gene的行數(shù)
cat SGD_features.tab | grep gene | wc -l

2093

利用cut命令截取第二列中匹配ORF的行
先查看第二列的頭10行
cat SGD_features.tab | cut -f 2 | head

-d : 指定字段分隔符,默認(rèn)是制表符
 -f :指定要顯示的字段
 -f1 :顯示第一個(gè)字段
 -f 1,3 顯示第一個(gè)和第三個(gè)
 -f 1-3 顯示第一個(gè)到第三個(gè)
 -b : 截取字節(jié)數(shù)
 -c : 截取字符

cat SGD_features.tab | cut -f 2 | grep ORF | head
查看匹配的總行數(shù)
cat SGD_features.tab | cut -f 2 | grep ORF | wc -l
同時(shí)截取多列
cat SGD_features.tab | cut -f 2,3,4 | grep ORF | head
去除含有Dubious的行
cat SGD_features.tab | cut -f 2,3,4 | grep ORF | grep -v Dubious | wc -l
上述命令如用awk實(shí)現(xiàn)

cat SGD_features.tab | awk '{print $2}' | grep ORF | head
cat SGD_features.tab | awk '{print $2,$3,$4}' | grep ORF | head

截取第二列保存為type.txt文件
cat SGD_features.tab | cut -f 2 > type.txt
對(duì)type.txt條目進(jìn)行連續(xù)排序并查看頭10條
cat type.txt | sort | head
將相同的條目顯示為1個(gè)
cat type.txt | sort |uniq | head
顯示重復(fù)條目的個(gè)數(shù)
cat type.txt | sort | uniq -c | head
顯示條目的種類
cat type.txt | sort | uniq -c | wc -l

正則表達(dá)式

bash的正則表達(dá)式包括基礎(chǔ)正則表達(dá)式擴(kuò)展正則表達(dá)式,它用來(lái)匹配預(yù)期要求的字符串。
基礎(chǔ)正則表達(dá)式:

符號(hào) 描述
. 匹配除換行符以外的單個(gè)字符
^ 匹配前面字符串的開頭
$ 匹配前面字符的結(jié)尾
* 匹配前一個(gè)字符的0或多個(gè)
[] 匹配中括號(hào)中的任意一個(gè)字符
[a-z][0-9][A-Z] 匹配范圍內(nèi)的任意一個(gè)字符
[^] 匹配除中括號(hào)內(nèi)的字符以外的字符
{n}{n,} 匹配大括號(hào)前面字符至少n個(gè)字符
{n,m} 匹配大括號(hào)前面字符至少n個(gè)字符,最多m個(gè)字符
< 邊界符,匹配字符串開始
> 邊界符,匹配字符串解釋

擴(kuò)展正則表達(dá)式:

符號(hào) 描述
+ 匹配前一個(gè)字符的1個(gè)或多個(gè)
? 匹配前一個(gè)字符的0個(gè)或多個(gè)
|
() 單元或組合

sed及awk

目前還學(xué)習(xí),感覺好難理解,尤其是awk,真的是一門編程語(yǔ)言。等待日后完善吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容