前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学会编写脚本详解

学会编写脚本详解

作者头像
生信喵实验柴
发布2021-12-15 11:29:44
4.1K0
发布2021-12-15 11:29:44
举报
文章被收录于专栏:生信喵实验柴

背景

后续我们的生信分析。除了了解软件的使用方法外,重要的就是编写脚本了。简单的说就是提供给软件你需要执行的操作,你与计算机之间的交流等都可以写成脚本。

本篇推文带你了解脚本的语法、编写以及各种快捷键,打好编写代码的基础。

一、什么是脚本

脚本:Scripts 指表演戏剧、拍摄电影等所依据的底本或书稿的底本,简写为 sh。脚本可以分为交互式(Interactive)执行与批处理(batch)。在生物信息分析中,将执行的一条或多条命令保存在一个文件中,称为脚本文件,脚本文件可以记录运行的命令状态,并且便于分享,而且可以自动化运行多个命令。

脚本五要素:

1. 软件:软件写在第一位

2. 输入内容:可以是文件,也可以是命令行输入。

3. 输出内容:可以屏幕输出,也可以保存到文件内。

4. 选项参数:通过单个连字符的短选项-,或者两个连字符的长选项--

5. 日志:记录软件运行信息及错误信息,便于排错,通过重定向保存。

二、vim 编辑脚本

2.1 打开文件

vim 是 Linux 系统自带的文本编辑器,可以理解成为 windows 系统下的 word 软件。

代码语言:javascript
复制
vim scripts.sh
i a u 切换为插入模式
ESC 切换为命令模式

按“i”切换进入插入模式 insert mode,从光标当前位置开始输入文件;

按“a”进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

按“o”进入插入模式后,是插入新的一行,从行首开始输入文字。

2.2 如何退出vim?

按 ESC 将 vim 从插入模式或者 visual 模式切换为命令模式。首先按esc键切换到命令模式,然后按“shift+:”冒号表示可以输入命令了然后按

代码语言:javascript
复制
q!不保存退出
wq 保持退出或者x保存退
w+文件名 另存为一个文件

2.3 移动光标

vi 可以直接用键盘上的光标来上下左右移动,但正规的 vi 是用小写英文字母 h、j、k、l,分别控制光标左、下、上、右移一格。

代码语言:javascript
复制
按 ctrl+b:屏幕往"后"移动一页。
 按 ctrl+f:屏幕往"前"移动一页。
 按 ctrl+u:屏幕往"后"移动半页。
 按 ctrl+d:屏幕往"前"移动半页。
 按数字 0:移到文章的开头。
按 G:移动到文章的最后。
shfit+4:移动到光标所在行的"行尾"。
shfit+6:移动到光标所在行的"行首"
 按 w:光标跳到下个字的开头
 按 e:光标跳到下个字的字尾
 按 b:光标回到上个字的开头
 按#l:光标移到该行的第#个位置,如:5l,56l。

2.4 删除文字

代码语言:javascript
复制
x:每按一次,删除光标所在位置的"后面"一个字符。
 #x:例如,6x 表示删除光标所在位置的"后面"6 个字符。
 X:大写的 X,每按一次,删除光标所在位置的"前面"一个字符。
 #X:例如,20X 表示删除光标所在位置的"前面"20 个字符。
 dd:删除光标所在行。
2dd:从光标所在行开始删除2行,下面为差别举例
1d+键盘上箭头:删除光标所在行和上一行,共2行
1d+键盘下箭头:删除光标所在行和下一行,共2行
1dd:删除光标所在行,共1行

2.5 复制

代码语言:javascript
复制
yw:将光标所在之处到字尾的字符复制到缓冲区中。
 #yw:复制#个字到缓冲区
 yy:复制光标所在行到缓冲区。
 #yy:例如,6yy 表示拷贝从光标所在的该行"往下数"6 行文字。
  p:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

2.6 替换

代码语言:javascript
复制
r:替换光标所在处的字符。
 R:替换光标所到之处的字符,直到按下 ESC 键为止。

2.7 回复上一次操作

代码语言:javascript
复制
u:命令模式下,按 u,后退
ctrl+R:命令模式下,前进

2.8 更改

代码语言:javascript
复制
cw:更改光标所在处的字到字尾处
 c#w:例如,c3w 表示更改 3 个字

2.9 跳至指定的行

代码语言:javascript
复制
ctrl+g 列出光标所在行的行号。
 #G:例如,15G,表示移动光标至文章的第 15 行行首。

三、执行脚本

脚本中包含多条命令,如果想运行脚本的命令,在 CentOS 系统上使用 sh 命令,在 Ubuntu系统中使用 bash 命令,系统将按顺序依次执行脚本中的命令。脚本中也可以添加控制条件以及循环操作,这就属于 Linux Shell 编程。

代码语言:javascript
复制
sh prodigal.sh
bash prodigal.sh

四、vim 配置

vim 配置文件在home目录下创建一个.vimrc 文件即可。

代码语言:javascript
复制
$ vim ~/.vimrc #以下内容选择性设置即可
filetype on #支持不同文件扩展名不同语法高亮
syntax on #语法高亮 
set autoindent #自动缩进
set nu #设置行号
set tabstop=4 #Tab 缩进数目
set softtabstop=4
set expandtab
set shiftwidth=4
set ruler # 设置标尺
set backspace=indent,eol,start
set backspace=2
set expandtab #设置自动缩进
set cindent shiftwidth=4 缩进的字符个数
set foldcolumn=4 #设置折叠模式

五、vscode 查看文本

在做生物信息分析过程中,经常需要查看序列,编辑文本,修改程序代码等,这个过程中就需要使用文本编辑器。一般系统自带的文本编辑器都过于简单,例如 windows 的记事本等,不能打开大文件,不能识别不同换行符,不支持语法高亮等,无法达到工作要求。优秀的文本编辑器有很多,例如收费的 Utraledit,Sublime Text3,editplus 等,免费的有 notepad++,atom等,这里我们推荐使用微软推出的vscode编辑器,它的一个显著特性就是支持windows,mac 和 Linux 多个平台,使用体验都差不多。安装完在图形界面下,可以使用右键快速打开多种扩展名的文本文件。

下载地址:

代码语言:javascript
复制
https://code.visualstudio.com/

记得安装过程最后一步将图中两项勾选上,方便默认打开文件。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信喵实验柴 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档