学习笔记Day13:Linux进阶

news2024/9/27 9:18:55

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.coloradmin.cn/o/1538933.html

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

相关文章

网络原理(5)——IP协议(网络层)

目录 一、IP协议报头介绍 1、4位版本 2、4位首部长度 3、8位服务器类型 4、16位总长度 5、16位标识位 6、3位标志位 7、13位偏移量 8、8位生存空间 9、8位协议 10、16位首部检验和 11、32位源IP地址 12、32位目的IP地址 二、IP协议如何管理地址&#xff1f; 1、动…

【STM32嵌入式系统设计与开发】——6矩阵按键应用(4x4)

这里写目录标题 一、任务描述二、任务实施1、SingleKey工程文件夹创建2、函数编辑&#xff08;1&#xff09;主函数编辑&#xff08;2&#xff09;LED IO初始化函数(LED_Init())&#xff08;3&#xff09;开发板矩阵键盘IO初始化&#xff08;ExpKeyBordInit()&#xff09;&…

HCIA-Datacom H12-811 更新

完整题库及答案解析&#xff0c;请直接扫描上方二维码&#xff0c;持续更新中 在WLAN发展历史中&#xff0c;初级移动办公时代的主要无线协议标准不包括以下哪项&#xff1f; A. 802.11ac B. 802.11g C. 802.11b D. 802.11a 答案&#xff1a;A OSPF协议在进行主从关系选举…

Apipost智能Mock功能详解

在接口开发过程中&#xff0c;Mock功能可以帮助开发者快速测试和验证接口的正确性和稳定性&#xff0c;以便快速迭代和修复问题。Apipost推出智能Mock功能&#xff0c;可以在智能期望中填写一些触发条件&#xff0c;开启后&#xff0c;Apipost会根据已设置的触发条件&#xff0…

Qt教程 — 3.6 深入了解Qt 控件:Display Widgets部件(2)

目录 1 Display Widgets简介 2 如何使用Display Widgets部件 2.1 QTextBrowser组件-简单的文本浏览器 ​2.2 QGraphicsView组件-简单的图像浏览器 Display Widgets将分为两篇文章介绍 文章1&#xff08;Qt教程 — 3.5 深入了解Qt 控件&#xff1a;Display Widgets部件-CSDN…

MyBatis是纸老虎吗?(五)

最近看到这样一则消息《全球首位AI工程师诞生&#xff0c;“码农”未来会消失&#xff1f;》&#xff0c;文章提到百度董事长兼首席执行官李彦宏认为未来将不会存在“程序员”这种职业。行业大佬的这种说法&#xff0c;让我异常恐慌。难道程序员就这样被淘汰了&#xff1f;AI真…

YOLOv8 | 注意力机制 | ShuffleAttention注意力机制 提升检测精度

YOLOv8成功添加ShuffleAttention ⭐欢迎大家订阅我的专栏一起学习⭐ &#x1f680;&#x1f680;&#x1f680;订阅专栏&#xff0c;更新及时查看不迷路&#x1f680;&#x1f680;&#x1f680; YOLOv5涨点专栏&#xff1a;http://t.csdnimg.cn/1Aqzu YOLOv8涨点专栏…

力扣236 二叉树的最近公共祖先 Java版本

文章目录 题目描述代码 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&…

PDF文件如何以数字进行批量重命名?以数字重命名的PDF文件

在日常生活和工作中&#xff0c;我们经常需要处理大量的PDF文件&#xff0c;如文档、报告、合同等。为了更高效地管理这些文件&#xff0c;一个有效的方式就是对它们进行批量命名。批量命名不仅能提高文件的组织性&#xff0c;还能节省大量时间。下面&#xff0c;我们将详细介绍…

【数据分析案列】--- 北京某平台二手房可视化数据分析

一、引言 本案列基于北京某平台的二手房数据&#xff0c;通过数据可视化的方式对二手房市场进行分析。通过对获取的数据进行清冼&#xff08;至关重要&#xff09;&#xff0c;对房屋价格、面积、有无电梯等因素的可视化展示&#xff0c;我们可以深入了解北京二手房市场的特点…

docker学习笔记 三-----docker安装部署

我使用的部署环境是centos 7.9 1、安装依赖工具 yum install -y yum-utils device-mapper-persistent-data lvm2 安装完成如下图 2、添加docker的软件信息源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo url地址为如…

飞桨AI应用@riscv OpenKylin

在riscv编译安装飞桨PaddlePaddle参见&#xff1a; 算能RISC-V通用云编译飞桨paddlepaddleopenKylin留档_在riscv下进行paddlelite源码编译-CSDN博客 安装好飞桨&#xff0c;就可以用飞桨进行推理了。刚开始计划用ONNX推理&#xff0c;但是在算能云没有装上&#xff0c;所以最…

C语言——程序拷贝文件

问题如下&#xff1a; 写一个程序拷贝文件&#xff1a; 使用所学文件操作&#xff0c;在当前目录下放一个文件data.txt&#xff0c;写一个程序&#xff0c;将data.txt文件拷贝一份&#xff0c;生成data_copy.txt文件。 基本思路&#xff1a; 打开文件data.txt&#xff0c;读…

服务器中了.[hpssupfast@mailfence.com].Elbie勒索病毒,数据还能恢复吗?

引言&#xff1a; .[hpssupfastmailfence.com].Elbie勒索病毒是一种网络攻击病毒&#xff0c;它会在感染用户的计算机系统中放置恶意软件&#xff0c;该软件会对用户的文件进行加密并要求支付赎金以解密文件。这种病毒通常通过网络钓鱼、木马植入等方式传播&#xff0c;利用用户…

【Ubuntu 22.04 LTS】安装vmware提示没有兼容的gcc

在ubuntu 22.04 上运行wmware时显示找不到兼容的gcc 这里要求的是12.3.0版本&#xff0c;我查看了自己的gcc版本是上面的11.4.0 在ask ubuntu上找到了解决方法 尝试了这一条 三条命令执行完成之后&#xff0c;再次运行vm&#xff0c;没有提示gcc的问题 点击install下载相应模…

Unity vision pro模拟器开发教程-附常见问题解决方案

前言 庄生晓梦迷蝴蝶&#xff0c;望帝春心托杜鹃 废话 去年苹果发布会上&#xff0c;推出了Vision Pro这一款XR产品。并且宣布Unity作为其主要合作伙伴&#xff0c;负责开发XR的开发产品。 这消息一出&#xff0c;当晚Unity的股价直接被熔断。产品发布之后&#xff0c;一直等…

深度强化学习(九)(改进策略梯度)

深度强化学习&#xff08;九&#xff09;&#xff08;改进策略梯度&#xff09; 一.带基线的策略梯度方法 Theorem: 设 b b b 是任意的函数, b b b与 A A A无关。把 b b b 作为动作价值函数 Q π ( S , A ) Q_\pi(S, A) Qπ​(S,A) 的基线, 对策略梯度没有影响: ∇ θ J …

实例:NX二次开发使用链表进行拉伸功能(链表相关功能练习)

一、概述 在进行批量操作时经常会利用链表进行存放相应特征的TAG值&#xff0c;以便后续操作&#xff0c;最常见的就是拉伸功能。这里我们以拉伸功能为例子进行说明。 二、常用链表相关函数 UF_MODL_create_list 创建一个链表&#xff0c;并返回链表的头指针。…

Codeforces Round #936 (Div. 2)B~D

1946B - Maximum Sum 可以想到&#xff0c;每次都将最大连续子序列放到该子序列的最后&#xff0c;也就是每一轮都能将最大连续子序列倍增一次填到数组中&#xff0c;最终求结果 // Problem: B. Maximum Sum // Contest: Codeforces - Codeforces Round 936 (Div. 2) // URL: …

【Flink】Flink 中的时间和窗口之窗口其他API的使用

1. 窗口的其他API简介 对于一个窗口算子而言&#xff0c;窗口分配器和窗口函数是必不可少的。除此之外&#xff0c;Flink 还提供了其他一些可选的 API&#xff0c;可以更加灵活地控制窗口行为。 1.1 触发器&#xff08;Trigger&#xff09; 触发器主要是用来控制窗口什么时候…