主要學(xué)習(xí)自Linux操作與生物信息_嗶哩嗶哩_bilibili
生信入門 linux實(shí)用基礎(chǔ)1 2 3
生信入門 R實(shí)用基礎(chǔ)1 2
1 命令協(xié)作管道 |
| 可將上條指令的結(jié)果輸入到下條指令進(jìn)行操作
echo -n "123456789" | wc -m 去除換行符后統(tǒng)計123456789字符數(shù)
ps -aux | less 將ps結(jié)果放在less中查看
head -5 a | tail -2 顯示a文件4、5行
2 進(jìn)階文件操作
wc spilt cut sort uniq diff cmp md5sum
① 文件統(tǒng)計和切分
wc a.txt 字符統(tǒng)計, 依次列出文件的行數(shù)、字?jǐn)?shù)、字節(jié)數(shù)、文件名
-l 統(tǒng)計行數(shù)(最常用
-w 統(tǒng)計字?jǐn)?shù)(單詞或漢字
-c 統(tǒng)計字節(jié)數(shù)
-m 統(tǒng)計字符數(shù)(英文1字符1字節(jié),中文1字符2字節(jié))
-L 統(tǒng)計最長行的長度
split -l/b 可按行、大小等切分文件
split -l 100 file test 將file內(nèi)容按照每200行拆分成一個文件,命名為testa - test*
cut 選取命令,可按照列切分?jǐn)?shù)據(jù)選取我們所要的數(shù)據(jù)
-b 1-28 a.txt 將a.txt文件的每行的1-28字節(jié)輸出
-d "|" -f 4 a.txt 將|作為分隔域標(biāo)志,選取第四個分隔域的內(nèi)容輸出, f表示file-separator
② 文本排序 sort 和 去重復(fù)uniq
直接輸入sort可進(jìn)入排序頁面,輸入后按Ctrl +D結(jié)束輸入進(jìn)行排序
sort -M 根據(jù)月份排序 (識別三個字母)
-n 根據(jù)數(shù)字排序(默認(rèn)只按照第一位數(shù)字排序
-V, --version-sort 根據(jù)數(shù)字大小排序(常用
-h 根據(jù)人類可閱讀數(shù)字排序如1K 3G
-r 按相反的順序排序(常用
-c 檢查文件是否已排序
-m 合并排序文件
-o 輸出排列文件,默認(rèn)輸出桌面
-u 去掉重復(fù)內(nèi)容
-k2 -k3 根據(jù)第2列值進(jìn)行排序,若相同則根據(jù)第3列值排序
-t "|" <分隔字符> 指定排序時所用的欄位分隔字符為 |
sort -n -t ":" -k 2 a.txt 將文件內(nèi)容根據(jù):后的字符按數(shù)字大小排序
uniq命令可以去除排序過的文件中的重復(fù)行,因此uniq經(jīng)常和sort合用,默認(rèn)為去除重復(fù)行
uniq
-d repeated只顯示有重復(fù)的行
-c count,在每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù)
-u uniq只顯示無重復(fù)的行
綜合應(yīng)用:
cut -d ":" -f 2 a.txt | cut -d ";" -f 1 | sort -n | uniq -c 選?。缓停褐g內(nèi)容并排序統(tǒng)計出現(xiàn)次數(shù)
③ 文件比較diff cmp ,若三個以上則用diff3命令
diff 1.fa 2.fa 比較兩個文件差異 ,
diff 1.fa 2.fa -c 顯示成上下文比較的格式,!表示發(fā)生變化
diff 1.fa 2.fa -u 顯示合并比較的格式,—表示1文件刪除行,+表示2文件新增行
cmp 1.fa 2.fa 標(biāo)示出兩個文件第一個不同之處的字符和列數(shù)編號
④ md5sum校驗(yàn)文件 .md5 可驗(yàn)證文件完整性,校驗(yàn)碼由32位的16進(jìn)制符號組成
md5sum 1.fa 生成1.fa文件的md5校驗(yàn)碼,將校驗(yàn)碼及文件名復(fù)制創(chuàng)建1.md5文件
md5sum -c 1.md5 驗(yàn)證校驗(yàn)碼,檢查文件完整性
3 對文件名的處理操作小技巧
basename
- 只將fq文件的文件名輸出而去除文件路徑,若
echo $i則會帶有路徑
ls ~/wk/fq/clean/*fq | while read id ; do echo $(basename $id); done
- 只將fq文件的文件名輸出 , 刪除
.sam的后綴
ls ~/wk/fq/clean/*fq | while read id ; do echo $(basename $id '.sam' ); done
-
%%刪除文件名.之后的所有后綴, (如果是${id%.*}則刪除最后一個.后的后綴)
ls raw/fq/* | while read id ; do echo $(basename ${id%%.*});done
-
##刪除文件名_之前的所有前綴 , (如果是${id#*_}則刪除第一個_前的前綴)
ls raw/fq/* | while read id ; do echo$(basename ${id##*_});done
4 命令的快捷方式: 添加PATH路徑
在linux中下載軟件后,用which可以搜尋到路徑的命令可以在所有目錄下執(zhí)行,如果不能,則需要:
- 在bin或sbin目錄下創(chuàng)建的命令軟鏈接,命令一般位于軟件的
bin目錄下; - 或在
.bashrc文件中的添加軟件bin目錄的路徑PATH,如PATH=$PATH:~/soft/bin/
5 命令行界面的一些常用快捷操作
history 列出1000條歷史命令,再用!數(shù)字 執(zhí)行歷史中對應(yīng)數(shù)字的命令
!S 重新執(zhí)行前面以S開頭的命令
; 可按順序從左向右完成多個命令操作,如cd ../ ; ls
Ctrl + C 終止當(dāng)前操作,重新開命令行
Ctrl + L 進(jìn)行清屏操作
Ctrl + Z 掛起命令(使用 bg 命令讓其在后臺繼續(xù)運(yùn)行;使用 fg 命令恢復(fù)到前臺)
Ctrl + 左右鍵 在單詞之間跳轉(zhuǎn)
Ctrl + A 跳到本行的行首
Ctrl + E 跳到行尾
Ctrl + U 刪除當(dāng)前光標(biāo)前面的所有文字(還有剪切功能)
Ctrl + K 刪除當(dāng)前光標(biāo)后面的所有文字(還有剪切功能)
Ctrl + Y 粘貼Ctrl + U或Ctrl + K剪切的內(nèi)容
Ctrl + W和Alt + D 對于當(dāng)前的單詞進(jìn)行刪除操作,W刪除光標(biāo)前面的單詞的字符,D則刪除后面的字符
Alt + Backsapce 刪除當(dāng)前光標(biāo)后面的單詞
\ 代碼太長時利用 \ 可以將代碼分成多段
bc 自帶計算器,輸入scale=4則保留4位小數(shù)
6 nohup 與 &
-
nohup是 no hang up 的縮寫,就是不掛斷的意思,但沒有后臺運(yùn)行,終端不能標(biāo)準(zhǔn)輸入,該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程
默認(rèn)情況下該作業(yè)的所有輸出都被重定向到一個名為nohup.out的文件中,一般使用> /dev/null進(jìn)行丟棄到黑洞中或者導(dǎo)入到指定文件中作為log日志 -
&( 表示“and”的符號)是指在后臺運(yùn)行,但當(dāng)用戶推出(掛起)的時候,命令自動也跟著退出。要 nohup 命令運(yùn)行在后臺中,添加 & 到命令的尾部
結(jié)合起來nohup和&使命令永久的在后臺執(zhí)行
nohup COMMAND > /dev/null &
nohup COMMAND >raw.log 2>&1 &
7 數(shù)據(jù)流重定向 >

cat 1 2 >a 將1,2文件的內(nèi)容重定向到文件a中合并
cat 3 4 >>a 將3,4文件的內(nèi)容追加到文件a中合并
comand 1>comand.log 2>&1 結(jié)合1.2可以將命令的結(jié)果保存在log文件
comand 1>/dev/null 2>&1 隱藏屏幕輸出內(nèi)容
-
tee用于把命令結(jié)果打印在屏幕上并同時保存到文件中。
選項(xiàng):
-a,--append: 不覆蓋,而是追加輸出到指定的文件中
-i,--ignore-interrupts: 忽略中斷信息
ifconfig | tee ifconfig.log 將config命令的輸出內(nèi)容保存在log文件中, 同時保留屏幕輸出
8 進(jìn)程管理
① linux進(jìn)程常用命令
uptime 顯示系統(tǒng)時間、主機(jī)已運(yùn)行時間、用戶連接數(shù)、系統(tǒng)平均負(fù)載最后 1、5、10 分鐘估算值,數(shù)值越大系統(tǒng)資源越緊張
w 顯示當(dāng)前用戶及uptime信息
linux進(jìn)程優(yōu)先級分為-20到19共40級,默認(rèn)優(yōu)先級為0,數(shù)字越小優(yōu)先級越高,
查看進(jìn)程優(yōu)先級可以使用命令 top 和 ps,
nice -優(yōu)先級 進(jìn)程 更改進(jìn)程優(yōu)先級
jobs 查看后臺運(yùn)行的命令進(jìn)程
fg 將后臺進(jìn)程切換到前臺
Ctrl + Z 暫停當(dāng)前任務(wù),jobs查看后臺進(jìn)程,bg命令使其在后臺繼續(xù)運(yùn)行,fg切換到前臺
wait 等待上一進(jìn)程結(jié)束后再執(zhí)行下進(jìn)程,通常用于&后
如果想要在后臺循環(huán)進(jìn)程結(jié)束后執(zhí)行下一命令,則添加以下命令
(每隔10s檢查一下指定任務(wù)運(yùn)行情況,若無運(yùn)行則結(jié)束檢查)
while ps | grep 'fastp' >/dev/null ; do
sleep 10
continue
done
② 進(jìn)程管理top
查看固定用戶的進(jìn)程信息 top -u 用戶名
進(jìn)入top 后可進(jìn)行交互式操作
空格鍵 實(shí)時刷新top狀態(tài)
c 顯示完整路徑信息
H 顯示線程數(shù)信息
i 只顯示在運(yùn)行的進(jìn)程
d + 數(shù)字 指定top刷新時間(默認(rèn)為3秒
x 運(yùn)行行顯示高亮
u + 用戶名 顯示指定用戶
M 根據(jù)駐留內(nèi)存大小進(jìn)行排序
P 根據(jù)CPU使用百分比大小進(jìn)行排序
T 根據(jù)時間/累計時間進(jìn)行排序
W 將當(dāng)前設(shè)置寫入~/.toprc文件中
k + 數(shù)字 輸入以下數(shù)字進(jìn)行進(jìn)程終止,殺死進(jìn)程9/15最常用

kill -9 進(jìn)程PID 殺死進(jìn)程
③ 進(jìn)程管理ps
pstree 該命令列出進(jìn)程的樹狀關(guān)系圖
ps -A 列出所有進(jìn)程,按照進(jìn)程ID排序
-a/e 顯示終端所有進(jìn)程,包括其他用戶進(jìn)程
-l 長格式輸出類似top結(jié)果
-u 用戶名 顯示指定用戶名進(jìn)程
-x 顯示無控制的終端的進(jìn)程
-g 組名 顯示一個組的使用情況
-H 列出樹狀結(jié)構(gòu),表示程序間相互關(guān)系
-f 顯示完整格式
-ef 顯示所有進(jìn)程信息,連同命令行
常用組合
-aux -lax -fx -ef
ps 與grep 常用組合用法,查找特定用戶進(jìn)程命令:
ps -ef | grep gu
jobs -l 可以查看當(dāng)前終端生效的進(jìn)程
生信入門 linux實(shí)用基礎(chǔ)1 2 3
生信入門 R實(shí)用基礎(chǔ)1 2