美文网首页
shell编程基础

shell编程基础

作者: 小宇大神 | 来源:发表于2016-09-07 21:44 被阅读0次

    shell

        1. shell是一个命令解释器,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户.
        2. Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁,同时,shell也可以作为一门强大的编程语言
        *我们常说的shell是命令行解释器的意思,也有内核上的一层壳的含义*
        3. shell常见的几种类型有sh、csh、bash、zsh等提供的脚本支持.
        4. shell的功能点在于外部命令的使用,其内部数据处理方面,侧重文本(或者说字符串,或字符流)处理.
        而对运算和其他基本数据结构的原生较弱(例如常用的array、set、map等等),功能目标在于实现命令自动化.
        但是呢,实现命令自动化的同时,Shell需要依赖其他程序才能完成大部分的工作,这是它的缺陷也是一个优点吧.
        但它不容置疑的长处是:简洁的脚本语言标记方式,而且比C语言编写的程序执行更快、更有效率。
        所以我们如果有做运维甚至是基础管理Linux服务器的同学,只要学会了shell编程,大大的可以节约我们的时间,更快捷的管理我们的服务器了。
        bash是Linux标准默认的shell,是BourneAgain Shell的缩写.
        因为bash有很多特性,比如:
        1. 可以使用类似DOS下面的doskey的功能,
        2. 用方向键查阅和快速输入并修改命令,
        3. 自动通过查找匹配的方式给出以某字符串开头的命令,
        4. 还有就是bash包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助。
        在Linux系统中我们经常看见以:
        #!/bin/bash 
       开头的文件内容,这就是声明了该文件是一个基于bash的shell编程文件
    

    关于shell的小程序

    1. m.sh:
      #!/bin/bash cd /home/liwei/mongodb/bin ./mongod --dbpath=../liwei_db

    加入要执行这个文件,则输入:
    sh m.sh

    1. 执行shell的过程中,我们可以通过>或者>>来记录下一些节点的结果报告,
      #!/bin/bash cd /lamp ls *.tar.gz > ls.list for TAR in \cat ls.list`
      do
      tar -zxf $TAR
      done`

    将lamp目录里面所有的压缩包,批量解压出来,这样我们可以看出ls的结果集可以拿出来参与下一个指令的执行。

    1. 将某个文件夹下所有的文件名字里的大写字母改成小写字母
      #!/bin/bash for file in \ls | grep '[A-Z]'`
      do
      str=`echo $file|tr 'A-Z' 'a-z'`
      mv $file $str
      done`

    tip:tr表示替换

    1. 将空文件,没用的文件,多余的文件删除掉
      for filename in \ls`
      do
      if test -d $filename
      then b=0
      else
      a=$(ls -l $filename | awk '{ print $5 }')
      if test $a -eq 0
      then rm $filename
      fi
      fi
      done`

    tip:test -d:如果文件为一个目录,则为真
    fi:为if的结束语,相当于end if
    awk:就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

    相关文章

      网友评论

          本文标题:shell编程基础

          本文链接:https://www.haomeiwen.com/subject/zqzjettx.html