TOUVE 发表于 2018-8-20 06:30:23

shell基础(上)

Shell基础(上)
1.1什么是shell
  Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的
  输入解释给操作系统.井处理各种各样的操作系统的输出结果,输出屏幕返回给用户
  这种对话方式可以是

[*]  交互的方式:从键盘输入命令,通过/bin/bash的解折,可以立即得到shell的回应
[*]  非交互的方式:脚本
  Shell执行命令分为两种方式

[*]  内置命令:如讲过的cd ,pwd, exit和echo等命令.当用户登录系统后,shell以及内置命令就被系统载入到内存,并且一直运行
[*]  一般命令:如15,磁盘上的程序文件==>调入内存==>执行命令
1.2什么是shell脚本
  当linux命令或语句不在命令行下执行(严格说,命令行也是Shell),而是通过一个程序文件执行时,该程序就被称为Shell脚本或Shell程序。
  用户可以在Shell脚本中敲入一系列的命令及命令语句组合。这些命令、变量和流程控制语句等有机的结合起来就形成一个功能强大的Shell脚本。
1.2.1 写一个清空/var/log/messages日志的脚本

[*]  日志文件在哪?
[*]  用什么命令可以清空文件
[*]  写一个简单的shell脚本。
[*]  怎样执行脚本?
[*]  进阶:
  有没有考虑到
  1)有没有脚本放在统一的目录
  2)权限:用哪个用户执行文件
  3)清空错文件怎么办,该怎么办
  4)错误提示:有没有成功知不知道
  5)脚本通用性
  # mkdir -p /server/scripts
  # cd /server/scripts
  # vim clear_log.sh
  #!/bin/bash
  cd /var/log/
  >messages
  ~
  # cat clear_log.sh
  #!/bin/bash
  cd /var/log/
  >messages
  # sh clear_log.sh
  # cat /var/log/messages#空的清空了
  
1.2.2 一个规范的Shell脚本
  #mkdir -p/server/scripts    #要有规范的存放脚本目录
  # cd/server/scripts/
  # vim clear_log.sh
  #!/bin/bash
  LOG_DIR=/var/log
  ROOT_UID=O   #UID为0时,用户才具有root权限echo $UID
  #要使用root用户执行
  if[ "$UID" -ne "$ROOT _UID" ]
  then
  echo"Must be root to run this script."
  exit 1
  fi
  #||表示前面执行失败则执行后面,区别于&&
  cd $ LOG_DIR 2>/dev/null || {
  echo"Cannot change to necessary directory.”
  exit 1
  }
  cat /dev/null>messages && echo"Logs cleaned up."
  exit 0
  #退出之前返回0表示成功,返回1表示失败。
1.2.3清空日志的三种方法
  echo >test.log
  >test.log
  cat /dev /null >test.log
  #清空内容。保留文件
1.2.4小结
  Shell就是命令解释器.==>翻译官
  Shell脚本==>命令放在脚本里
1.3Shell脚本在运维工作中的作用地位
  Shell脚本擅长处理纯文本类型的数据,而linux中几乎所有的配置文件、日志文件等都是纯文本类型文件
第2章 脚本的建立和执行
2.1Shell脚本的建立
  推荐使用vim编辑器
2.1.1脚本开头
  规范的Shell脚本第一行会指出由哪个程序(解释器)来执行脚本中的内容。在linux bash编程中一般为,
  #!/bin/bash
  或
  #!/bin/sh
页: [1]
查看完整版本: shell基础(上)