vim及shell编程基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim及shell编程基础相关的知识,希望对你有一定的参考价值。

一:vim撤销与重做  

     u撤销最近的更改

     #u撤销之前多次更改

     U 撤消光标落在这行后所有此行的更改

     按Ctrl - r重做最后的“撤消”更改

     . 重复前一个操作

     n.重复前一个操作n次

     退出模式下e!直接还原到文件最初打开状态

二:可视化模式

    可视化模式:vim在命令模式下按v及V可以选择文本块。

        v:面向字符

        V:面向行

        Ctrl+v面向块

    选择出的部分可以被删除(d),复制(y),变更,过滤,搜索,替换等。

三:多文件模式及多窗口

    vim file1 file2 ....

        :next 下一个

        :prev 前一个

        :wall 保存所有

        :qall 退出所有

    vim -o|O file1 file2(多文件)

        -o:水平分割

        -O:垂直切割

        窗口间切换:Ctrl+w,方向键

    vim file(单文件)

        Ctrl+w,s 水平分割

        Ctrl+w,v 垂直分割

        Ctrl+w,q 取消相邻窗口

      Ctrl+w,o 取消全部窗口

        :wqall 退出

四:vim配置文件

    1.在配置文件中修改永久有效。配置文件一个是全局文件/etc/vimrc对所有用户有效,个人文件是~/.vimrc。只对当前用户有效

    2.设置行号:set number 取消行号:set nonumber

    3.括号匹配:set showmatch 取消:set nosm

        在vim命令模式下,在括号上按%可以匹配括号。

    4.自动缩进:set ai 禁用:set noai

    5.高亮搜索:set hlsearch 禁用:set nohlsearch

    6语法高亮: syntax on(默认开启) 禁用:syntax off

    7.忽略字符大小写:启用:set ic 不忽略:set noic

    8文件格式: Windows:set  fileformat=dos Unix:set fileformat=unix

    9.设置文本宽度:

        :set textwidth=65(vim only)

        :set wrapmargin=15

补:.swp文件

    这个文件是在编辑文件时产生的,保存着在原文件上所作的操作。当文件正常退出时,该文件会自己删除,电脑突然断电时,我们可以通过他找回在原文件上的操作。找回的过程:第一种方式:(1)vim -r file 还原(2)删除.swp文件第二种方式:(1)vim file (2)按r 

五:shell编程基础

    程序是指令+数据,程序可以分为过程式和对象式,过程式以指令为中心,数据服务于指令,对象式以数据为中心,指令服务于数据。

    计算机运行二进制指令,编程语言分为低级和高级语言,低级语言更贴近于硬件,比如汇编语言。高级语言又分为两类,一类是编译型语言,需要编译器进行编译。比如java,c#,另一种是解释型语言,需要解释器,实时翻译。比如shell,Perl,python。需要注意的是每种语言都有自己的解释器,各种语言的解释器不能混用。解释比编译效率低,但重在灵活,反应快,更加适合运维。

   shell脚本:包含一些命令或声明,并符合一定格式的文本文件

    shell的用途:自动化常用命令;系统管理和故障排除;创建简单的应用程序;处理文本或文件。

    创建shell脚本

        (1)使用文本编辑器创建文件

            要点:1.第一行必须包含shell声明序列:#!,如#!/bin/bash。

                  2.#!的作用:当要执行程序时,命令中如果不包含解释器的路径,此时就会根据文件的#!来寻找解释器,但这种执行方式要求文件必须可执行。

                  3.添加注释,注释以#开头

        (2)运行脚本:

                    第一种执行方式:给予权限,在命令行上指定脚本的绝对或相对路径            

                    第二种执行方式是 命令中直接包含解释器的路径,运行解释器,将脚本作为解释器程序的参数。

    脚本调试: 

        bash -n file 

        bash -x file 

    变量

        变量:命名的内存空间。数据分为字符型数据和数值型数据存储在变量中。变量可以存储数据,参与运算     

        变量分为强类型和弱类型,强类型变量不经过强制转换,他永远是这个数据类型,不允许隐式的类型转换。定义变量时必须指明类型,参与运算必须符合类型要求;调用未声明变量会产生错误,如java,c#。弱类型变量会在运行时隐式做数据类型转换。无需指定类型,默认字符型;参与运算会自动进行隐式类型转换;变量无需定义,可直接调用。

        变量的命名法则:

                (1)不能使用保留字

                (2)只能使用数字字母,下划线且不能以数字开头

                (3)做到见名知意

        变量的种类:

                (1)本地变量:只在当前shell进程生效

                     1.变量赋值:变量名=...

                     ...可以是直接字符串:如name="root"

                     ...可以是变量引用:如name="$USER"

                     ...可以是命令引用:name=`command ...`或name=$(command ...)

                     2.变量引用:${name} $name 

                        "":弱引用,其中的变量引用会被替换为变量值

                        '':强引用,其中的变量引用不会被替换为变量值,保持原字符串。

                     3. 显示已定义的所用变量:set

                     4. 删除变量:unset name

                (2)环境变量:在当前shell及子shell进程有效

                     1.变量声明赋值:

                        export name=VALUE

                        declare -x name=VALUE

                     2.显示所有环境变量;

                        env;export;declare -x

                (3)局部变量:通常在当前shell进程和函数中生效

                (4)位置变量:$1,$2, 用于让脚本在脚本代码中通过命令行传递它的参数。

                    1.$*:传递给脚本的所有参数,全部参数为独立字符串                                                                          [email protected]:传递给脚本的所有参数,每个参数为独立字符串两者只有被“”抱起来的时候才会有差异

                    3.set -- 清空所有位置变量

                (5)只读变量:只能声明,但不能修改和删除

                    1.只读变量的声明:readonly name 或 declare -r name 

                    2.查看只读变量:readonly -p

        退出状态:用来报告成功或失败

                0:成功,1-255:失败

                $?变量保存最近的命令退出状态

                bash自定义退出状态码:exit n,脚本中一旦遇到exit命令,脚本会立即终止;退出状态码取决于exit命令后面的数字。

        算数运算及赋值:

            (1)算数运算有:+,-,*,/%,**(乘方)

            (2)赋值:

                    let var= 算术表达式

                    let var= $[算术表达式]

                    let var= $((算术表达式))

                    declare -i var=数值

                    echo '算术表达式'|bc 

             (3)随机数生成器:echo $[$RANDOM%50] :0-49之间的随机数

             

以上是关于vim及shell编程基础的主要内容,如果未能解决你的问题,请参考以下文章

linux学习之shell编程基础

Shell编程实战

Shell编程实战

shell编程基础

bash脚本编程基础及配置文件

Shell编程——shell的基础知识及常用命令