Linux实用基础2

作者: 嘿嘿嘿嘿哈 | 来源:发表于2022-07-03 16:32 被阅读0次

    主要学习自Linux操作与生物信息_哔哩哔哩_bilibili


    生信入门 linux实用基础1 2 3

    生信入门 R实用基础1 2


    1 命令协作管道 |

    | 可将上条指令的结果输入到下条指令进行操作

    echo -n "123456789" | wc -m                    去除换行符后统计123456789字符数
    ps -aux | less                                 将ps结果放在less中查看
    head -5 a | tail -2                            显示a文件4、5行
    

    2 进阶文件操作

    wc spilt cut sort uniq diff cmp md5sum

    ① 文件统计和切分

        wc a.txt                 字符统计, 依次列出文件的行数、字数、字节数、文件名
             -l                  统计行数(最常用
             -w                  统计字数(单词或汉字
             -c                  统计字节数
             -m                  统计字符数(英文1字符1字节,中文1字符2字节)
             -L                  统计最长行的长度
        
        split    -l/b                   可按行、大小等切分文件
        split -l 100 file test   将file内容按照每200行拆分成一个文件,命名为testa - test*  
        
        cut                            选取命令,可按照列切分数据选取我们所要的数据
              -b  1-28  a.txt         将a.txt文件的每行的1-28字节输出        
              -d   "|" -f 4  a.txt     将|作为分隔域标志,选取第四个分隔域的内容输出, f表示file-separator
    

    ② 文本排序 sort 和 去重复uniq

    直接输入sort可进入排序页面,输入后按Ctrl +D结束输入进行排序

        sort     -M                                           根据月份排序 (识别三个字母) 
                 -n                                         根据数字排序(默认只按照第一位数字排序
                 -V, --version-sort                         根据数字大小排序(常用
                 -h                                         根据人类可阅读数字排序如1K 3G
                  -r                                         按相反的顺序排序(常用
                  -c                                         检查文件是否已排序
                  -m                                         合并排序文件
                  -o                                         输出排列文件,默认输出桌面
                  -u                                         去掉重复内容
                  -k2 -k3                                 根据第2列值进行排序,若相同则根据第3列值排序    
                  -t   "|"                                  <分隔字符> 指定排序时所用的栏位分隔字符为 |   
    
         sort -n -t ":" -k 2 a.txt                 将文件内容根据:后的字符按数字大小排序
    

    uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用,默认为去除重复行

        uniq     
                  -d                                        repeated只显示有重复的行    
                  -c                                        count,在每列旁边显示该行重复出现的次数
                  -u                                        uniq只显示无重复的行
    
       综合应用:
         cut -d ":" -f 2 a.txt | cut -d ";" -f 1 | sort -n | uniq -c         选取;和:之间内容并排序统计出现次数
    

    ③ 文件比较diff cmp ,若三个以上则用diff3命令

        diff  1.fa 2.fa                     比较两个文件差异 ,
        diff   1.fa 2.fa  -c               显示成上下文比较的格式,!表示发生变化
        diff   1.fa 2.fa  -u               显示合并比较的格式,—表示1文件删除行,+表示2文件新增行
        cmp   1.fa 2.fa                     标示出两个文件第一个不同之处的字符和列数编号
    

    ④ md5sum校验文件 .md5 可验证文件完整性,校验码由32位的16进制符号组成

        md5sum   1.fa           生成1.fa文件的md5校验码,将校验码及文件名复制创建1.md5文件
        md5sum  -c 1.md5     验证校验码,检查文件完整性
    

    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可以搜寻到路径的命令可以在所有目录下执行,如果不能,则需要:

    • 在bin或sbin目录下创建的命令软链接,命令一般位于软件的bin目录下;
    • 或在.bashrc文件中的添加软件bin目录的路径PATH,如PATH=$PATH:~/soft/bin/

    5 命令行界面的一些常用快捷操作

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

        history           列出1000条历史命令,再用!数字  执行历史中对应数字的命令
        !S                   重新执行前面以S开头的命令
        ;                   可按顺序从左向右完成多个命令操作,如cd  ../ ; ls           
        Ctrl + C           终止当前操作,重新开命令行    
        Ctrl + L             进行清屏操作
        Ctrl + Z            挂起命令(使用 bg 命令让其在后台继续运行;使用 fg 命令恢复到前台)
        Ctrl + 左右键    在单词之间跳转
        Ctrl + A            跳到本行的行首
        Ctrl + E             跳到行尾
        Ctrl + U         删除当前光标前面的所有文字(还有剪切功能)
        Ctrl + K         删除当前光标后面的所有文字(还有剪切功能)
        Ctrl + Y         粘贴Ctrl + U或Ctrl + K剪切的内容
        Ctrl + W和Alt + D   对于当前的单词进行删除操作,W删除光标前面的单词的字符,D则删除后面的字符 
        Alt + Backsapce      删除当前光标后面的单词
         \                      代码太长时利用  \ 可以将代码分成多段         
        bc                        自带计算器,输入scale=4则保留4位小数
    

    6 nohup 与 &

    • nohup 是 no hang up 的缩写,就是不挂断的意思,但没有后台运行,终端不能标准输入,该命令可以在你退出帐户/关闭终端之后继续运行相应的进程
      默认情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,一般使用> /dev/null进行丢弃到黑洞中或者导入到指定文件中作为log日志
    • &( 表示“and”的符号)是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出。要 nohup 命令运行在后台中,添加 & 到命令的尾部

    结合起来nohup&使命令永久的在后台执行

    nohup COMMAND > /dev/null &
    nohup  COMMAND >raw.log 2>&1 & 
    

    7 数据流重定向 >

    cat 1 2 >a                                将1,2文件的内容重定向到文件a中合并 
    cat 3 4 >>a                              将3,4文件的内容追加到文件a中合并
    
    comand    1>comand.log   2>&1                     结合1.2可以将命令的结果保存在log文件       
    comand     1>/dev/null 2>&1                         隐藏屏幕输出内容 
    
    • tee用于把命令结果打印在屏幕上并同时保存到文件中。
    选项:
        -a,--append:                             不覆盖,而是追加输出到指定的文件中
        -i,--ignore-interrupts:                 忽略中断信息
    
     ifconfig | tee ifconfig.log       将config命令的输出内容保存在log文件中, 同时保留屏幕输出
    

    8 进程管理

    ① linux进程常用命令

        uptime             显示系统时间、主机已运行时间、用户连接数、系统平均负载最后 1、5、10  分钟估算值,数值越大系统资源越紧张
        w                     显示当前用户及uptime信息
    

    linux进程优先级分为-20到19共40级,默认优先级为0,数字越小优先级越高,
    查看进程优先级可以使用命令 topps

        nice -优先级 进程            更改进程优先级
        jobs                               查看后台运行的命令进程
        fg                                 将后台进程切换到前台
        Ctrl + Z                          暂停当前任务,jobs查看后台进程,bg命令使其在后台继续运行,fg切换到前台
        wait                                等待上一进程结束后再执行下进程,通常用于&后
    

    如果想要在后台循环进程结束后执行下一命令,则添加以下命令
    (每隔10s检查一下指定任务运行情况,若无运行则结束检查)

    while ps | grep 'fastp' >/dev/null ; do
            sleep 10
            continue
    done
    

    ② 进程管理top

    查看固定用户的进程信息 top -u 用户名
    进入top 后可进行交互式操作

        空格键                  实时刷新top状态
        c                       显示完整路径信息
        H                       显示线程数信息
        i                       只显示在运行的进程
        d  + 数字              指定top刷新时间(默认为3秒
        x                      运行行显示高亮
        u   + 用户名           显示指定用户
        M                    根据驻留内存大小进行排序
        P                      根据CPU使用百分比大小进行排序
        T                      根据时间/累计时间进行排序
        W                     将当前设置写入~/.toprc文件中
        k + 数字              输入以下数字进行进程终止,杀死进程9/15最常用
    

    kill -9 进程PID 杀死进程

    ③ 进程管理ps

        pstree                        该命令列出进程的树状关系图
        ps -A                   列出所有进程,按照进程ID排序
             -a/e                 显示终端所有进程,包括其他用户进程
             -l                    长格式输出类似top结果
             -u   用户名      显示指定用户名进程      
             -x                   显示无控制的终端的进程
             -g  组名          显示一个组的使用情况
             -H                   列出树状结构,表示程序间相互关系
             -f                   显示完整格式
             -ef                  显示所有进程信息,连同命令行
        
        常用组合
             -aux             -lax         -fx          -ef
    
        ps 与grep 常用组合用法,查找特定用户进程命令:
        ps -ef | grep  gu     
        
        jobs -l                  可以查看当前终端生效的进程
    

    生信入门 linux实用基础1 2 3

    生信入门 R实用基础1 2

    相关文章

      网友评论

        本文标题:Linux实用基础2

        本文链接:https://www.haomeiwen.com/subject/jpblbrtx.html