草庐IT

Linux实用基础2

嘿嘿嘿嘿哈 2023-03-28 原文

主要学习自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的更多相关文章

  1. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  2. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  3. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  4. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  5. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  6. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  7. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  8. ruby - 如何在 Ruby 中获取 linux 系统信息 - 2

    如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack

  9. ruby - rbenv:在 Linux Mint 上找不到 gem 命令 - 2

    我在LinuxMint17.2上。我最近使用apt-getpurgeruby​​删除了ruby​​。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,

  10. ruby - 在 Linux 上编译 Ruby 1.9.2 所需的先决条件? - 2

    我是Ruby和RoR的新手。我有一个带有Ubuntu镜像的干净Linode实例,我想从源代码编译Ruby而不是使用apt-get。我已经在谷歌上搜索了执行此操作的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我不断收到有关缺少zlib和其他一些包的错误。任何人都可以给我详细的说明(或链接),教我如何在从源代码编译Ruby之前安装必要的必备包吗?我的目的是编译Ruby的最新稳定版本,然后安装Rubygems和Rails。提前感谢您的帮助!!! 最佳答案 Thisblogpost涵盖从源代码编译ruby​​所需的包和安装过程;它引

随机推荐