• shell脚本学习


      vi与vim

    为何要学习vi 、vim

    • 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在;
    • 很多个别软件的编辑接口都会主动呼叫 vi
    • vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
    • 因为程序简单,编辑速度相当快速。

    重点是上述的第二点,因为有太多 Linux 上面的指令都默认使用 vi 作为数据编辑的接口,所以你必须、一定要学会 vi ,否则很多指令你根本就无法操作

    vi的使用

    基本上 vi 共分为三种模式,分别是『一般模式』、『编辑模式』与『指令列命令模式』。 这三种模式的作用分别是:

      • 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
      • 编辑模式
        在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

      • 指令列命令模式
        在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!

        一般模式可与编辑模式及指令列模式切换, 但编辑模式与指令列模式之间不可互相切换

      在linux中建议使用文本模式来处理 Linux 的系统设定问题,在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设定。在 Linux 的文本模式下,会觉得文书编辑程序都没有窗口接口来的直观与方便。

     Linux 在文字接口下的文书编辑器有哪些: emacspiconanojoe, 与 vim 等等

    什么是 vim 

      可以将 vim 视作 vi 的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息。vim 会依据档案的扩展名或者是档案内的开头信息, 判断该档案的内容而自动的呼叫该程序的语法判断式,再以颜色来显示程序代码与一般信息。 这个 vim 是个『程序编辑器』甚至一些 Linux 基础配置文件内的语法,都能够用 vim 来检查

          vi 是老式的字处理器, vim 则可以说是程序开发者的一项很好用的工具, vim 里面加入了很多额外的功能,例如支持正规表示法的搜寻架构、多档案编辑、区块复制等等。 便于我们在 Linux 上面进行一些配置文件的修订工作

     

       shell

    什么是shell 

      它是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

       /bin/bash 是 Linux 默认的 shell 

    创建shell与执行shell

    1. 使用vi 或者 vim 创建一个文件(如果文件名存在则会打开,没有则创建)。

    2. 首行必须写   #!bin/bash    #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

    3.在shell中书写脚本

    4. 给脚本添加权限(默认创建的文件都没有执行权,所以需要手动添加执行权限)

      执行权限添加有两种

    1、作为可执行程序

         使用该命令  chmod +x ./test.sh   #使脚本具有执行权限

               ./test.sh       # 来执行文件

        注:注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

    2、作为解释器参数

    这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:

        /bin/sh test.sh   来执行文件

     

    shell的变量

    定义变量

    定义变量时,变量名不加$ 符号,

    例:your_name="root.com"

    注意:变量名和等号之间不能有空格,而且必须遵循如下规则

    1. 命名只能使用英文字母,数字和下划线,首字符不能以数字开头

    2.中间不能有空格,可以使用 _ 来连接

    3. 不能使用标点符号

    4.不能使用bash里的关键字(可以通过bash -c help 命令来查看保留关键字)

    有效的变量名示例如下:

    USER

    USER_NAME

    _var

    var2

    除了显式地直接赋值,还可以用语句给变量赋值,如:

    for file in $(ls /etc);do

      echo ${file}

    done

    以上语句是将/etc目录下的文件名循环出来

    使用变量

    your_name="qingtian"

    echo $your_name

    echo ${your_name}

  • 相关阅读:
    Tips for C++ Primer Chapter 11 关联容器
    Tips for C++ Primer Chapter 10 泛型算法
    Tips for C++ Primer Chapter 9 顺序容器
    Tips for C++ Primer Chapter 8 IO库
    Trie Tree 字典树
    Manacher Algorithm 最长回文子串
    【Android Studio】android Internal HTTP server disabled 解决
    释放修改OS X 10.11系统文件权限【转】
    win10 Vmware12装mac os X10.11虚拟机教程
    【Android开发实践】android.view.InflateException: Binary XML file line #12: Error inflating class fragment问题解决
  • 原文地址:https://www.cnblogs.com/liguodeboke/p/11822385.html
Copyright © 2020-2023  润新知