Linux实用基础2

主要学习自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

版权声明:
作者:感冒的梵高
链接:https://www.techfm.club/p/41991.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>