AI智能
改变未来

Linux之vim编辑器与shell编程

目录

  • vim编辑器
  • vim编辑器介绍
  • vim编辑器操作
  • vim编辑器三中模式
  • 命令行模式
  • 末行模式
  • 编辑模式
  • 三种模式关系图
  • shell编程
    • 一次性定时任务
    • at命令
    • (1)添加一次性任务。
    • (2)删除一次性任务
    • (3)通过man命令查看at使用手册
  • 周期重复性任务
    • (1)crontab基本语法
  • SHELL脚本基本语法
    • (1)脚本编写规范
    • (2)执行程序
    • (3)基础语法
    • (4)标准输出echo
    • (5)基础输入
    • (6)变量使用
  • SHELL编程之程序结构
    • (1)选择结构if
    • 选择结构case
    • (3)循环结构for
    • (4)循环结构while
    • (5)拓展
    • (6)函数

    vim编辑器

    vim编辑器介绍

    vim编辑器是Unix和Linux系统中的定点编辑器,他回一个命令行编辑器,被系统内建使用时不需要安装,操作过程中占用系统资源较少,同时提供了高度的定制化操作、因此一直被广大Unix/Linux爱好者/开发人员喜爱。

    • 系统自带的是一个精简版的vim编辑器:vi编辑器。打开文件指令是:
      vi 文件名称
    • 要想使用真正的vim编辑器需要通过命令行安装:
      yum install vim
    • 安装后开启vim编辑器命令。
      vi/vim 文件名称
      如果要打开的文件名不存在会新建一个文件。

    vim编辑器操作

    在了解vim编辑器具体操作时需要先知道vim编辑器拥有三种模式:命令模式、末行模式、编辑模式。

    vim编辑器三中模式

    命令行模式

    命令行模式又称全面模式/视图模式/查看模式:该模式下只能移动光标和查看内容。

    命令行模式的相关命令:

    按键 描述
    x 删除光标所在字符,相当于delete
    X 删除光标前一个字符,相当于backspace
    dd 删除光标所在行,删除一行
    dnd n表示数字,连续删除光标后n行
    yy 复制光标所在行,复制一行
    yny n为数字,连续复制光标后n行
    p/P 小写p将复制的一行数据粘贴在光标下一行
    大写P将复制的数据粘贴到下n行
    G 跳转到文档最后一行
    gg 跳转到文档的第一行
    H 光标移动到可视化窗口的第一行
    M 光标移动到可视化窗口的中间一行
    u 撤销操作,返回上一步
    ctrl+r 反撤销
    ctrl+b back 往回翻一整页
    ctrl+f front 往前翻一整页
    ctrl+d down 往下翻一页
    ctrl+u up 往上翻一页

    ^所在行开头;$所在行结尾。

    末行模式

    末行模式又称末行命令模式:在命令模式输入特定的命令符号执行特殊操作。

    按键 描述
    :w 保存文件
    :q 不保存,退出文件
    :wq 保存并退出文件
    :w! 强制保存文件
    :q! 强制不保存退出文件
    :wq! 强制保存并退出文件
    😡 保存退出
    :x! 强制保存退出文件
    :set nu 显示行号
    :set nonu 取消显示行号
    :n1,n2s/old/new/g 将n1行开始到n2行的内容中出现的old字符替换成new字符
    old支持正则匹配
    /str 在文件中光标位置向下查询str字符串
    ?str 在文件中光标位置向上查询str字符串

    编辑模式

    编辑模式就是可以往文件内插入文本内容,可以自定义喧杂额在光标前或者光标后输入内容。

    编辑模式的相关命令:

    按键 描述
    i 从命令行模式进入编辑模式,并在光标前插入内容
    I 行首插入字符
    a 光标后插入字符
    A 行尾插入字符
    o 光标下一行输入字符
    O 光标上一行输入字符

    三种模式关系图

    shell编程

    shell编程的目的:让我们通过手工操作的繁琐步骤,是程序完成自动化地操作。是Linux操作系统中的一种自动化的操作。

    一次性定时任务

    Linux中提供了at命令,用于指定时间点,就可以在指定的额时间点添加多条执行命令,党制定的时刻到达时,就会除服执行所有的命令。

    at命令

    (1)添加一次性任务。

    at -l:查看任务
    at 时间点:指定的时间点上,添加任务。
    ctrl + D:组合键保存定时任务
    未执行一次性定时任务时:

    到点执行了任务后:

    (2)删除一次性任务

    atrm 任务编号

    (3)通过man命令查看at使用手册


    周期重复性任务

    Linux中提供了定时任务操作crontab实现周期重复性任务,通常情况下crontab是系统的一个内建组件,如果系统缺少了这个组件,可以yum install crontab安装组件。

    (1)crontab基本语法

    通过crontab命令添加任务、编辑任务、删除任务

    命令 描述
    crontab -l 列出当前用户的所有周期性任务
    crontab -e 编辑当前用户的周期性任务
    crontab -r 删除当前用户的所有周期性任务

    crontab -e 编辑任务同时创建了一个任务文件,直接编辑添加任务,任务格式固定格式。

    一第一个*号为例,说明语法

    • *:表示每一天都额每个小时的每分钟执行一次后面的命令
    • 10:表示每一天的每个小时中的第10分钟,执行一次后面的命令。
    • */5:表示每一天的每个小时中,每间隔5分钟,执行一次后面的命令
    • 5,10,20,30:表示每一天的每个小时中,第5、10、20、30分钟时刻在执行后面命令。
    • 10-20:表示每一天的每个小时中,第10分钟开始到第20分钟结束,每分钟执行命令

    SHELL脚本基本语法

    (1)脚本编写规范

    脚本程序是Unix和Linux系统中的一种特殊的文件,一定要妥善的管理和整理起来。

    • 属于用户的脚本程序,全部放在指定的路径了scripts/目录下
    • 脚本程序的后缀名称,同一使用.sh作为文件后缀名(约定俗成)
    • 脚本程序的第一行代码:#!/bin/sh 指定程序的执行者(是一条可执行命令)

    (2)执行程序

    基本程序的执行:
    Unix/Linux中的文件都有自己的权限,r/wx
    ①在没有执行权限的情况下(拥有r权限)
    可以直接指定使用哪个可执行命令去执行。
    执行语法:sh 脚本程序名.sh
    ②用户拥有某个脚本程序的执行权限(x),可以直接执行脚本程序。
    执行语法:./脚本程序名.sh

    (3)基础语法

    SHELL语法中以#号开头的都是单行注释,除了第一行的#!/bin/sh,这是一条可执行命令,不是注释。

    (4)标准输出echo

    格式:
    echo 要打印展示的消息
    类似于python中的print()函数。
    echo 打印信息完直接换行
    echo -n 打印信息完不换行

    (5)基础输入

    SHELL中使用read来读取用户从键盘输入的信息。
    -p:打印提示信息
    -s:用户输入信息时不回显

    (6)变量使用

    变量就是一个标识符(有特殊意义的符号,由字母、数字、下划线组成,数字不能开头)
    变量需要先声明后使用,变量不要使用特殊符号、Linux命令的单词。
    命名规范与python语法一致。

    SHELL编程之程序结构

    (1)选择结构if

    基本语法
    if 条件;
    then
     条件如果为真要执行的代码
    fi
    多分支
    if 条件1;then
     条件1如果为真要执行的代码
    elif 条件2;then
     条件2如果为真要执行的代码
    else
     条件如果都不为真要执行的代码
    fi
    文件判断

    选项 描述
    -e 判断文件是否存在 if [ -e 文件路径 ]
    -d 判断是否是文件夹 if [ -d 文件路径 ]
    -f 判断是否是文件 if [ -f 文件路径 ]
    -r 判断指定文件是否可读 if [ -r 文件路径 ]
    -w 判断文件是否可写 if [ -w 文件路径 ]
    -x 判断文件是否可执行 if [ -x 文件路径 ]

    字符串判断

    选项 描述
    = 判断两个字符是否相等
    != 判断两个字符是否不相等
    -z 判断字符串长度是否为0 zero
    -n 判断字符串是否为空 null

    整数判断

    选项 描述
    -eq 判断两个整数是否相等
    -gt >
    -lt <
    -ge >=
    -le <=
    -ne !=

    逻辑判断

    选项 描述
    && 判断并且关系
    -a 判断并且关系
    || 判断或者关系
    -o 判断或者关系
    ! 判断取反

    选择结构case

    case用于匹配操作,可以多种结果进行匹配
    基本语法
    case 变量 in
     值1)
      要执行的代码
      ;;
     值2)
      要执行的代码
      ;;

     *)
      都没有匹配成功时要执行的代码
      ;;
    easc

    (3)循环结构for

    for循环结构与python中的语法结构基本一致。
    基本语法
    for 临时变量 in 一串数据
    do  开始循环
     循环的代码
    done  循环结束

    (4)循环结构while

    while循环结构,与python中的循环结构基本一致
    while 条件
    do
     循环执行的代码
    done

    (5)拓展

    完成整数运算有三种操作方式

    • expr运算表达式,如expr 12 + 13
    • $(())运算符号,如res=$((12 + 13))
    • $[]运算符号,如res=$[12 + 13]
      程序暂停运行
      sleep 秒数

    (6)函数

    声明函数
    基本语法
    function 函数名称(){
     函数中的代码
    }
    快捷语法
    函数名称(){
     函数中的代码
    }

    调用函数:直接使用函数名称调用函数函数名称

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » Linux之vim编辑器与shell编程