学习笔记Day13:Linux进阶

Linux进阶

Vim——Linux自带的文本编辑器

功能强大

在这里插入图片描述

命令模式
  • 使用 vim <file>进入后的默认模式
  • 可以上下左右移动光标
    • 方向键/hjkl
    • 快速到所在行的开头^/末尾$
    • 向下移动30行30j(上左右同)
    • 上下翻页Ctrl+f向上,Ctrl+b向下翻页
    • 快速回到文件第一行的第一个字符gg
    • 快速回到文件底部第一个字符G
  • 可以剪切字符/整行、也可以复制粘贴
    • 剪切x,连续剪切10个字符10x
    • 剪切所在行dd,剪切所在行及向下共10行10dd
    • 粘贴到所在行的下面p/上面P粘贴
    • 复制光标所在行yy,复制所在行及下面10行10yy
  • 撤销u
  • 重做上一个动作Ctrl+r
编辑模式

输入i后进入编辑模式

Esc退出编辑模式

末行模式

在命令模式下输入:

Esc退出该模式

  • 在该模式下可以设置、查询、替换、保存并退出
  • 保存退出
    • 保存并退出wq
    • 直接退出q
    • 不保存修改,强制退出q!
  • 查询
    • 输入/<KEYWORD>进行查询
    • n向下查找,按N向上查找
  • 替换
    • :%s///g全局替换
    • :s///g替换光标所在行
    • :s///只替换光标所在行的第一次出现
set系列命令
  1. :set nu显示行号;:set nonu取消显示行号
  2. :set list显示不可见字符(分辨制表符表格等)
  3. :set nowrap单行显示
  4. :set ff-unix将文件格式转换为unix格式
    • ff file format文件格式
  • 不同平台关于回车键的设置不同:Windows: \r \n; Mac: \r; Linux: \n. 解决方法之一:vim中的:set ff-unix。解决方法之二:dos2unix (unix2mac…)
异常情况处理
  1. E325:ATTENTION

    swp文件:使用vim编辑的时候未保存产生的缓存的文件

    第一种情况为其他程序正在修改。

    第二种情况为保存修改之前和服务器断开连接。

    可以-r(recovery)恢复,恢复保存后删除缓存文件[swp]。

  2. vim的帮助文档:vimtutor zh_CN

文本处理的三驾马车

grep

一种强大的文本搜索工具,可以匹配正则表达式

  • 格式:grep [options] ‘pattern’ file

  • 常见参数

    • -w 精准查找某个关键词word

    • -c统计匹配成功的行的数量

    • -v 反向选择,输出没有匹配的行

    • -n 显示匹配成功的行的所在行号

    • -r 从目录中查找pattern,显示所在行

      在目录中的所有文件中查找(不会查找压缩文件)

    • -e 指定多个匹配模式

      cat file | grep -w -e 'exon' -e 'UTR'  #-e和pattern成对出现
      
    • -f 从指定文件中读取要匹配的pattern

      使用vim把多个个关键词写入file2中,一行一个

    • -i 忽略大小写

  • 正则表达式

    • ^行首

    • $行尾

    • .换行符之外的任意单个字符

    • ? 匹配前一字符出现了0次/1次的情况(扩展正则表达式,需要使用\?或在参数位置使用-E开启优先正则表达式模式来匹配? )

    • + 匹配前一字符出现了1次/多次的情况(扩展正则)

    • * 匹配前一字符出现了0次/多次的情况

    • [] 匹配任意一个字符

      [AT]匹配A/T

    • [^] 排除字符

      [^aB]

    • |

sed

流编辑器,一般对文本进行增删改查

针对行进行的动作

  • 用法:sed [-options] ‘script’ file(s)

  • 常见参数[-options]

    • -n 禁止显示所有输入内容,只显示经过sed处理的行(常用)
    • -e 直接在命令模式上进行sed的动作编辑,接要执行的一个或多个命令
    • -f 执行含有sed动作的文件
    • -r sed的动作支持扩展正则
    • -i 直接修改读取的文件内容,会直接修改源文件
  • 动作script[address]command

    • address

      2:第2行

      2,4:第2-4行

      2,$:第2行到最后一行

      2~3:从第2行开始,每隔3行处理一次(2、5、8)

      2,+4:从第2行开始,到第2+4行

      /pattern/:匹配上pattern的行

      !:表示否定,取反,例如2!表示动作在除了第二行以外的行

    • command:增改删查

      a (append) 在指定行后增加一行,内容为a后面接的字符串

      i (insert) 在指定行的前增加一行,内容为i后面接的字符串

      d (delete) 删除某一行或某几行

      c (change) 改变指定行的内容

      s 更改或替换字符串,使用格式s/pattern/new/[flags],意为把pattern替换成new,flags表示替换第几个,1/2/g

      y 转换,实现字符一对一转换,格式y/abc/ABC 意为abc一对一替换成ABC,符号也支持

      p (print) 把匹配或修改过的行打印出来,通常与-n 参数合用

awk

也成为gawk,编程语言,可对文本和数据进行处理

  • 常见参数:

    -F (fields)设置字段分隔符

  • 用法:awk [options] ‘{script}’ file

    ##基础结构
    '{script}'
    ##匹配结构
    '/pattern/{script}'
    ##扩展结构
    'BEGIN{script} {script} END{script}'
    
  • awk使用预定义的字段分隔符划分每个数据字段,分配给一个变量。

    • $0 代表整个文本行

    • $1 代表文本行的第一个数据字段(列)

      。。。

    • $NF 代表文本行的最后一个数据字段(列)

  • 默认分隔符是任意空白字符(空格/制表符),也可以使用参数-F自定义分隔符

  • 内置变量:

    • FS 定义输入字段分隔符
    • RS 定义输入记录分隔符
    • OFS 定义输出字段分隔符
    • ORS 定义输出记录分隔符
    • NF 数据文件中的字段总数,简单理解为列数
    • NR 已处理的输入记录数,可以简单理解为行数
    cat Data/example.gtf | awk 'BEGIN{OFS= ":"} {print $3,$4,$5}' | head -5
    cat Data/example.gtf | awk 'BEGIN{FS="\t";OFS=";"} {print NR, $9}'|head -5
    
  • awk条件和循环语句

    • if条件判断

      awk '{if(条件) {yes} else {no}}'
      #例子
      awk'{if($3=="gene") print $0}'  ##类似R逻辑值去子集
      
  • awk数学运算

    在这里插入图片描述

  • cut的默认分隔符是分隔符,awk的列之间是根据写法不同改变。

Linux常见符号及其含义

在这里插入图片描述

引用自生信技能树课程~

今天内容比较多一些,还需要时间消化,还是先记下来以后慢慢理解~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/761950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Layui的社区物业管理系统

项目介绍 社区物业管理系统是基于java程序开发,本系统分为业主和管理员两个角色 业主可以登陆系统,查看车位费用信息,查看物业费用信息,在线投诉,查看投诉,在线报修; 管理员可以车位收费信息,物业收费信息,投诉信息,楼宇信息,房屋信息,业主信息,车位信息,抄表信…

刚进公司第一天-电脑环境搭建

写在前面 之前在公司做过一次开发小工具的分享&#xff0c;这两天有个同事找我学习一些小工具开发的知识&#xff0c;但是我发现他的基础是真的差&#xff0c;想学开发知识却连自己本地电脑环境都没弄好&#xff0c;确实&#xff0c;有些人工作了很久&#xff0c;由于自己工作中…

工控机在机器人领域的应用丨工业一体机的应用

随着机器人技术的不断发展&#xff0c;机器人在制造、物流等领域得到了广泛应用。而工业控制计算机&#xff08;工控机&#xff09;作为机器人控制系统的核心设备&#xff0c;也在机器人领域发挥着越来越重要的作用。 机器人控制系统是机器人的核心部分&#xff0c;控制系统的…

综合知识篇15-开发管理考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例…

仅用一个月,游卡完成从MySQL到上线OceanBase的实践

编者按&#xff1a;自2023年9月起&#xff0c;游卡——国内最早卡牌游戏研发者之一&#xff0c;开始测试OceanBase&#xff0c;并在短短两个月内成功将三个核心业务应用迁移至OceanBase上。究竟是何因素促使游卡放弃游戏行业普遍采用的MySQL方案&#xff0c;转而大胆选择OceanB…

国内ip切换是否合规?

在网络使用中&#xff0c;IP地址切换是一种常见的行为&#xff0c;可以用于实现隐私保护、访问地域限制内容等目的。然而&#xff0c;对于国内用户来说&#xff0c;IP地址切换是否合规一直是一个备受关注的话题。在中国&#xff0c;网络管理严格&#xff0c;一些IP切换行为可能…

Java安全 反序列化(3) CC1链-TransformedMap版

Java安全 反序列化(3) CC1链-TransformedMap版 本文尝试从CC1的挖掘思路出发&#xff0c;理解CC1的实现原理 文章目录 Java安全 反序列化(3) CC1链-TransformedMap版配置jdk版本和源代码配置前记 为什么可以利用一.CC链中的命令执行我们可以尝试一下通过InvokerTransformer.tr…

ssm项目(tomcat项目),定时任务(每天运行一次)相同时间多次重复运行job 的bug

目录标题 一、原因 一、原因 debug本地调试没有出现定时任务多次运行的bug&#xff0c;上传到服务器就出现多次运行的bug。&#xff08;war的方式部署到tomcat&#xff09; 一开始我以为是代码原因&#xff0c;或者是linux和win环境不同运行定时任务的方式不一样。 但是自己…

专业135+总分400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。

今年分数出来还是比较满意&#xff0c;专业801信号与系统135&#xff0c;总分400&#xff0c;没想到自己也可以考出400以上的分数&#xff0c;一年的努力付出都是值得的&#xff0c;总结一下自己的复习心得&#xff0c;希望对大家复习有所帮助。专业课&#xff1a;&#xff08;…

获取KEGG通路的基因列表 做单细胞GSEA、GSVA分析

使用KEGG通路的基因列表进行单细胞GSEA GSVA分析的过程&#xff0c;我们需要遵循以下步骤&#xff1a; 获取KEGG通路的基因列表&#xff1a;这通常涉及使用专门的R包&#xff0c;如KEGGREST或biomaRt&#xff0c;来查询KEGG数据库并检索特定通路的基因列表。 准备单细胞表达数…

申请Github Education获取免费Copilot权限(2024.3.18实测成功)

起因&#xff1a;旧帐户Copilot权限被封 我已经离开Github Copilot就无法独自耐着性子写代码了&#xff08;懒惰AI成瘾性&#xff09;&#xff0c;这两天Github Copilot不知道为什么在大规模封号&#xff0c;我不幸也被封号了&#xff08;禁用掉了Github Copilot权限&#xff…

Python:柱状-折线图

写论文&#xff0c;需要画数据分析图&#xff1a; 用柱状图描述算法执行时间用折线图描述性能改进 示例代码&#xff1a; import numpy as np import matplotlib.pyplot as plt from matplotlib.pyplot import MultipleLocatorSecurity ["128", "192",…

Linux第82步_“gpio子系统”下的使用KEY开关灯

使用新字符设备驱动的一般模板和“gpio子系统”&#xff0c;以及设备树&#xff0c;驱动KEY和LED。 1、在stm32mp157d-atk.dts文件中添加“gpio_led”和“key0”节点 打开虚拟机上“VSCode”&#xff0c;点击“文件”&#xff0c;点击“打开文件夹”&#xff0c;点击“zgq”&…

HTTPS 协议原理

目录 HTTPS VS HTTP HTTPS是什么 概念准备 常见的加密方式 对称加密 一个简单的对称加密例子 非对称加密 数据摘要&&数据指纹 数字签名 HTTPS 的工作过程探究 方案1-只使用对称加密 方案2-只使用非对称加密 方案3-双方都使用非对称加密 方案4-非对称加密…

Cell发表的单细胞整合方法:LIGER,很好用!

之前&#xff0c;我们已经介绍过其他的整合方法&#xff1a; harmony整合单细胞数据-去除批次效应 Seurat一键完成五种数据整合&#xff1a;harmony&#xff0c;CCA&#xff0c;RPCA,FastMNN,scVI&#xff0c;代码分享 今天来看看Cell发表的LIGER 介绍 LIGER&#xff08;Li…

C++语言学习(二)—— C++语言的基本知识

目录 一、面向对象的三个核心概念 二、C语言中的I/O口 三、C语言中的数据类型​​​​​​​ 3.1 逻辑类型 3.2 引用类型 3.2.1 引用作为函数参数 3.2.2 引用作为函数返回值 3.2.3 引用作为类成员 3.3 类类型 四、 C语言中的内联函数 五、 函数重载 六、 带默认形参…

docker 容器挂掉,无法exec 进入bash 怎么修改容器里的文件

在使用tdengine 数据库时出现了 TDengine.Driver.TDengineError:“code:[0x334],error:Out of dnodes” 查找文档发现需要修改一个配置文件 。 /etc/taos/taos.cfg 中的 supportVnodes 参数 于是修改 保存。然后&#xff0c;运行出错。 03/21 06:56:27.986498 00000064 …

IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器

文章目录 1. 检查Linux SSH服务2. 本地连接测试3. Linux 安装Cpolar4. 创建远程连接公网地址5. 公网远程连接测试6. 固定连接公网地址7. 固定地址连接测试 本文主要介绍如何在IDEA中设置远程连接服务器开发环境&#xff0c;并结合Cpolar内网穿透工具实现无公网远程连接&#xf…

[音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg,Qt +VS2022,都什么年代了还在写传统播放器?

前言 参考了雷神的自制播放器项目&#xff0c;100行代码实现最简单的基于FFMPEGSDL的视频播放器&#xff08;SDL1.x&#xff09; 不过老版本的代码参考意义不大了&#xff0c;我现在准备使用Qt VS2022 FFmpeg59重写这部分代码&#xff0c;具体的代码仓库如下&#xff1a; …

基于python+vue渔船出海及海货统计系统的设计与实现flask-django-php-nodejs

当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统渔船出海及海货统计采取了人工的管理方法&#…