Linux實(shí)用基礎(chǔ)2

主要學(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 命令行界面的一些常用快捷操作

參考Linux 命令行快捷鍵_互扯程序的博客-CSDN博客

    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)先級可以使用命令 topps,

    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

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

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

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