Vim编辑器和Shell命令脚本

Vim编辑器和Shell命令脚本

Vim文本编辑器

Vim文本编辑器内设有三种模式:命令模式、末行模式和编辑模式。

命令模式:控制光标移动,可对文本进行删除、复制、粘贴和查找等工作。

输入模式:正常的文本录入。

末行模式:保存、退出与设置编辑环境。

命令模式和末行模式下的一些快捷键:

末行模式下的命令:

Shell命令脚本

Shell终端解释器类似人与计算机硬件的翻译官,作为用户与Linux系统内部通讯的媒介。Shell脚本命令的工作方式有两种,首先是前面所接触的交互方式,即当用户每输入一条命令就执行一次,而批量处理则是用户事先编好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。可以通过SHELL变量查看系统当前已经默认使用bash解释器作为命令行终端了。

编写简单的脚本

使用vim编辑器把Linux命令按照顺寻一次写入文件就是编写完成一个最简单的脚本,下体是编写一个查看当前所在工作路径并列出目录下所有文件及属性信息。

Shell脚本的名称可以任意起,行业规范脚本文件的后缀一般是.sh,脚本内容中:#!表示用何种shell解释器来执行脚本程序,#表示注释信息,后面就是命令行。执行脚本的方法有两种:第一种是如上图使用“解释器 shell脚本”运行,这样系统则会忽略掉脚本内容中的#!内容,第二种是输入完整路径的方式来执行,但是系统会默认因为权限不足而提示报错信息,这时需要为脚本文件增加权限。

接收用户的参数

脚本中定义了很多变量功能,例如“$0”对应当前shell脚本程序的名称,“$#”对应总共有几个参数,“$*”对应所有位置的参数值,而“$1”“$2”等对应第N个位置的参数。

判断用户的参数

为了判断用户输入的参数,需要使用条件测试语法,若条件成立则返回0,否则则返回其他随机数值。测试语句格式:[ 条件表达式 ]两边均有一个空格,条件判断语句按测试对象可分为文件测试、逻辑测试、整数值比较与字符串比较.

文件测试

文件测试是按照指定条件来判断文件是否存在或者权限是否满足,具体参数为:

通过$?得到上一条命令的返回值

逻辑测试

逻辑测试则是判断用户给出的条件是为真还是假,从而把条件测试语句与逻辑语句相搭配结合使用可以实现一个更高级的使用方法,例如在Shell终端中逻辑“与”符号是&&,它代表当前面的命令执行成功后才会执行后面的命令。

“或”符号是“||”,其代表前面的命令执行失败后才会执行后面的命令

整数值比较

整数比较运算符是仅对数字的测试操作,不能把数字与字符串、文件等内容一起操作,而且不能想当然的使用日常生活中的等号、大于号、小于号等来做判断,因为等号与是赋值命令符冲突,大于号和小于号分别是和输出重定向命令符和输入重定向命令符冲突。虽然有时候碰巧也能执行成功,但是在后面脚本程序中普遍会产生错误,一定要使用规范的整数比较运算符来进行操作:

字符串比较

字符串比较是判断测试字符串是否为空值,或两个字符串是否相同的操作,常常用来判断某个变量是否未被定义(即内容为空值),常用参数:

流程控制语句

if条件测试语句

单分支结构(if-then-fi)

shell脚本文件:如果在linux目录中不存在hahaha文件,则创建hahaha文件

测试结果:

双分支结构(if-then-else-if)
多重分支(if-then-elif-then-else-fi)

如果成绩大于85小于100,则输出excellent等等...

测试结果:

for条件循环语句

格式:

for 变量名 in 取值列表

do

命令序列

done

下面是批量创建用户的例子:

第1行的read命令是读取客户输入的值作为变量PASSWD的值,-p参数是为了输出提示语句。

第6行的id $UNAME命令可查看是否存在该用户,&>表示不管前面命令输出的是正确结果还是错误结果,都将输出信息重定向到/dev/null,/dev/null是被称作Linux黑洞的文件,把输出信息重定向到这个文件后等同于删除数据(没有回收功能的垃圾箱),让用户的屏幕窗口保持简洁。

第7行表示如果id $UNAME执行成功,则说明该用户存在。

第11,12行则是添加用户的命令和设置密码的命令。

注意:变量间的相加在linux系统中默认是字符串相加,例如:

要实现两个变量的值相加,需要使用expr命令将字符串转换为数字

while条件循环

格式:

while 条件测试操作

do

命令序列

done

利用while写一个猜价格的脚本

测试结果

case条件测试

格式:

**case 变量值 in

模式1)

命令序列1

;;

模式2)

命令序列2

;;

*)

默认命令序列

esac**

测试:

计划任务服务程序

一次性计划任务(使用at命令行)

例子:

使用atrm + 编号可以删除对应编号的计划任务

周期性计划任务

可以使用Linux系统中默认启用的crond服务创建任务。创建、编辑计划任务的命令为crontab -e,查看当前计划任务的命令为crontab -l,删除某条计划任务的命令为crontab -r,如果使用管理员登陆系统,可以用crontab -u来编辑他人的任务。口诀:分、时、日、月、星期

需要说明的是,除了用逗号来表示多个时间段,例如”8,9,12”表示8月,9月和12月;还可以用减号来表示连续的时间周期(例如字段“日”的取值为“12-15”,则表示每月的12~15日)。以及用除号(/)表示执行任务的间隔时间(例如“*/2”表示每隔2分钟执行一次任务)。

另外,在crond服务的计划参数中,所用命令一定要用绝对路径的方式来写,如果不知道绝对路径,可以用whereis命令进行查询,绝对路径为输出信息的加粗部分。

原文地址:https://www.cnblogs.com/huangzefeng/p/9261084.html

时间: 2024-11-06 19:46:21

Vim编辑器和Shell命令脚本的相关文章

第4章 Vim编辑器与Shell命令脚本

章节简述: 本章节将教给您如何使用Vim编辑器来编写文档.配置主机名称.网卡参数以及yum仓库 ,熟练使用各个模式和命令快捷键. 我们可以通过Vim编辑器将Linux命令放入合适的逻辑测试语句(if.for.while.case)后最终写出简单实用的Shell脚本. 还可以通过使用at命令或配置Crontab计划任务服务让系统自动按时工作,让日常工作更加的高效自动化,一劳永逸哦~ 本章目录结构 4.1 了解Vim文本编辑器 4.1.1 编写简单文档 4.1.2 配置主机名称 4.1.3 配置网卡

Vim编辑器与Shell命令脚本

1.Vim文本编辑器 默认安装在当前所有Linux系统中的文本编辑器,有三种模式: 1.命令模式:控制光标移动,可对文本复制.粘贴.删除.查找等. 2.输入模式:正常的文本录入. 3.末行模式:保存或退出文档,以及设置编辑环境. 默认为命令模式,需先切换至输入模式再进行文档编写,编写完毕需先返回命令模式,再进入末行模式,执行文档保存或退出.无法直接从输入模式切换至末行模式. Vim中的常用命令: dd:删除(剪切)光标所在行 5dd:删除(剪切)从光标处开始的5行 yy:复制光标所在行 5yy:

Vim编辑器与Shell编辑器

Vim文本编辑器(对应配置文件,多着色功能)Vim编辑器模式:命令模式.输入模式.末行模式:命令模式用ESC键在输入和末行模式之间切换,但末行与输入不能直接进行切换:进入输入模式可以用a.i.o键:进入末行模式用:键 Vim常用的命令dd ---删除光标所在行5dd ---删除从光标处开始的5行yy ---复制光标所在整行5yy ---复制从光标处开始的5行u ---撤销上一步操作p ---执行之前删除或复制的数据粘贴到光标后常用的末行模式命令:w ---保存:q ---退出(有提示):q! -

VIM中执行Shell命令(炫酷)

      我对VIM的认识仅仅是一款源码编辑器,在Linux下用来编辑程序源码或者某些服务的配置文件.最近无意中看到vim中竟然可以执行shell命令.第一次见,说句实话感觉好炫酷!不多说,我查了一些资料,一个一个尝试一下,留个笔记,备查.       vim中执行shell命令,有以下几种形式:       第一种 :!command       不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容.执行:!ls -al命令,如下图

linux中vim编辑器各种常用命令及用法

linux中vim编辑器的常用命令以及用法(注意严格区分大小写以及中英文): vim编辑器有三种模式,分别是:编辑模式,输入模式以及末行模式. 模式转换: 编辑模式>>>输入模式: i:在光标所在字符前面,转为输入模式(即转完后在光标所在字符前输入):                      I:在光标所在行的行首,转为输入模式(即转完后在行首输入,不包括行首空                         白) a:在光标所在字符后,转为输入模式(即转完后在光标所在字符后面输入):

vim中执行shell命令小结

vim中执行shell命令,有以下几种形式 1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls -l 特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim 2):r !command 将shell命令command的结果插入到当前行的下一行 例如 :r !date,读取系统时间并插入到当前行的下一行. 3):起始行号,结束行号 !command 将起始行号和结束行

vim中执行shell命令

1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls -l 特别的可以运行:!bash来启动一个bash shell并执行命令,不需要退出vim 2):r !command 将shell命令command的结果插入到当前行的下一行 例如 :r !date,读取时间并插入到当前行的下一行.

【Red Hat 】vim编辑器的常用命令以及使用技巧

vim编辑器分为三种模式:命令模式.输入模式.末行模式(插入模式) 下面为大家介绍一些常用的vim编辑器的常见的快捷键已经使用技巧 显示行号和翻页 :set nu  显示行号 :set nonu 取消行号 page up 向上翻页 page down 向下翻页 插入 a 在当前光标后面插入内容 A 在当前行末尾插入内如 i 在当前光标前插入内容 I 在当前行行首插入内容 o 在当前行的下方插入行 O 在当前行的上方插入行 光标跳转 L 将光标跳转到当前屏幕最后一行 H 将光标跳转到当前屏幕第一行

通过Java代码执行shell命令/脚本

JDK自带的两种方式有通过Runtime.getRuntime().exec()和ProcessBuilder类来做, 后者是JDK1.5以后引入的,官方也建议放弃使用Runtime的方式来做.今天在实现的时候就是采用ProcessBuilder,apache commons类库也提供了一个exec包专门做这类功能,这次暂时没用到. 在编写过程中,遇到几个比较坑的地方: 1.构建ProcessBuilder采用的参数: 建议采用"/bin/bash". "-c",