Linux 基本操作
1,Linux常識
(1)查看文件:
到目標(biāo)目錄下:
cat <<END >text.fa #用cat 創(chuàng)建文件 <<之后的字符串停止編輯文件, > 之后是給文件命名
cat text.fa # 適用于文件比較小的時候閱讀,否則就會刷屏
less text.fa #比較推薦,查看后按q退出,不在命令界面留痕跡。
more text.fa #打印在命令行上。
head / tail text.fa #查看text.fa的首/尾
head / tail -n +k text.fa #較為常用,從頭/尾查看到指定的K行,比如:矩陣,tail -n +2 text.fa , 就是我的矩陣有標(biāo)題行,但是我想略過標(biāo)題行。
faste文件格式:大于號 + 序列名稱 后面才是序列

(2)常用操作
man + 命令 # 查看命令的介紹及其參數(shù)
ls -a #顯示隱藏文件(這都可以用man ls 查看)
ls -lt #按時間進(jìn)行排序 從新到舊
ls -ltr #從舊到新
pwd #獲得當(dāng)前路徑
cd + 路徑 #查找目標(biāo)目錄,后什么也不跟,就是回到家目錄 . 代表當(dāng)前目錄 ..代表上一級
du -h README.txt #查看文件大小
ls -lsh README #也是查看文件大小
mkdir + 文件名稱 #可以多加幾個文件名,同時創(chuàng)建多個文件。
mkdir -p a/b #同時創(chuàng)建a文件夾及其子目錄b
小技巧:在命令行界面,可以按ctrl + A 到命令行的開頭, CTRL + E 則是到命令行結(jié)尾
文件上下翻轉(zhuǎn)和左右翻轉(zhuǎn) : tac: 文件翻轉(zhuǎn),第一行變?yōu)樽詈笠恍?,第二行變?yōu)榈箶?shù)第二行; rev 每列反轉(zhuǎn),第一個字符變?yōu)樽詈笠粋€字符,第二個字符變?yōu)榈箶?shù)第二個字符。
(3)linux下文件操作
1) 復(fù)制文件
cp filder1 filder2 ... target_dir # 將一個或多個源文件或者目錄復(fù)制到已經(jīng)存在的目標(biāo)目錄。
#常用的參數(shù)
-i #覆蓋前先詢問
-f #強(qiáng)制覆蓋
-r #遞歸拷貝
-p #保留文件或目錄的屬性,主要是文件時間,因為有時候處理文件時還需要時間的先后
-b #備份復(fù)制,若目標(biāo)文件存在,先備份之前的,再把新的覆蓋過去
-u #更新復(fù)制,若源文件和目標(biāo)文件都存在,只在源文件的修改時間比較新時才復(fù)制
2) 移動文件
mv filder target # 移動文件到目標(biāo)文件夾
# 常用的參數(shù)
-f #強(qiáng)制覆蓋
-i #覆蓋前詢問
mv 小技巧 :想給單個文件重命名的時候 ,可以使用 mv old_name new_name 。但是想給多個文件批量命名 可以使用 rename
- 創(chuàng)建軟鏈接
rename 被替換的字符串 替換的字符串 文件 #可以用*批量替換文件 eg: rename text data *fa
4)ln(link):給文件建立快捷方式(ln -s filder target )
注意:在建立軟連接時,原文件要使用絕對路徑。如果希望軟鏈可以讓不同的用戶訪問,不要使用 ~。 建立軟連接,是簡化文件訪問方式的一個辦法。把其它文件夾下的文件鏈接到當(dāng)前目錄,使用時只需要寫文件的名字就可以了,不需要再寫長串的目錄了
ln -s /home/lhg/data/text1 target dir #將text1在目標(biāo)文件夾建立軟鏈接
# 常用參數(shù)
-s #軟鏈接
-f #強(qiáng)制鏈接(一般用于覆蓋原有的軟鏈接)
小技巧:每次輸入絕對路徑都很麻煩,怎么能簡便呢?
pwd : 輸出當(dāng)前所在的目錄 ,這地方要注意,要在文件所在目錄下
``為鍵盤 Esc 下第一個按鍵 (與家目錄 ~‘符號同一個鍵),寫在反引號內(nèi)的命令會被運(yùn)行,運(yùn)行結(jié)果會放置在反引號所在的位置
ln -s `pwd`/text1 target dir #將text1在目標(biāo)文件夾建立軟鏈接的快捷方式
5) 刪除命令
rm : 刪除一個或多個文件和目錄,也可以遞歸刪除所有子目錄,使用時一定要慎重。 rm 命令刪除的文件很難恢復(fù)。 rm -rf /* ,千萬不要執(zhí)行這個命令?。。。?!
rm -rf * #刪除當(dāng)前目錄下的所有文件
# 常見參數(shù)
-f #強(qiáng)制刪除
-i #刪除前詢問是否刪除
-r #遞歸刪除
5)文件壓縮和文件解壓(gzip , gunzip)
gzip filder #壓縮filder文件,默認(rèn)是將filder刪除,然后生成filder.gz
gunzip filder #解壓文件,同樣也是刪除filder.gz , 生成filder
gzip -c filder > filder.gz # 壓縮文件,但是保留filder源文件
gunzip -c filder.gz > filder #解壓文件,同樣保留filder 文件
小訣竅 :gunzip 可以記為滾zip包,即讓zip包混蛋(解壓)
6)對fasta格式文件的常用處理
wc(what count ) : 一般使用 wc -l 獲取文件行數(shù)
wc -l data.fa #獲取data.fa的行數(shù)
grep (對每一行進(jìn)行模式匹配) : 后跟字符串或正則表達(dá)式
grep '>' data.fa #匹配data.fa文件中'>',返回序列的名稱
#想統(tǒng)計序列數(shù)
grep '>' data.fa | wc -l # | 是管道符號,可以將上一步命令得到的結(jié)果傳至下一命令
grep -c '>' data.fa #-c 參數(shù) ,返回序列數(shù)而不返回序列名稱
但是面對fasta文件末尾,有我們不想要的雜字符怎么辦?
grep -v '不想要的內(nèi)容' data.fa >data1.fa #-v 不輸出匹配上的行,即data1.fa是清潔數(shù)據(jù)啦
6)對序列名的修改
有兩種方式:
其一:sed ,是文件內(nèi)容編輯工具,常用于替換、取得行號等操作。
sed 's/被替換的內(nèi)容/替換內(nèi)容/' data.fa #替換掉不想用的內(nèi)容,打印在屏幕上
sed 's/被替換的內(nèi)容/替換內(nèi)容/' data.fa > data1.fa #不打印在屏幕上,輸入在data1.fa里
sed -i 's/被替換的內(nèi)容/替換內(nèi)容/' data.fa #屏幕上沒有輸出,直接在源文件改
其二:cut , 更適合于矩陣操作,去除其中的一列或者多列。 由于FASTA 文件中序列里面是沒有任何符號的,而如果名字比較長,則可以指定相應(yīng)分隔符就行cut,這樣既處理了名字,又保留了序列。
cut -f 1 -d ' ' data.fa #以空格為分隔符,保留第一列。
-f #指定取出哪一列,使用方法為-f 3 (取出第 2 列), -f 3-5 (取出第 3-5 列), -f 2,5 (取出第 2 和第 5 列)。注意不同符號之間的區(qū)別。
-d # 設(shè)定分隔符, 默認(rèn)為 TAB 鍵。如果某一行沒有指定的分隔符,整行都為第一列。