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ǔ)言。等待日后完善吧。