Shell脚本应用

                                                                                                  简介 

        随着Linux操作系统在企业中应用越来越多,服务器的自动化管理也便的越来越重要 在Linux服务器的自动化维护工作中 除计划任务的设置外 Shell脚本也是非常重要一部分


                                                                                         Shell脚本基础

       在一些复杂的Linux服务器维护工作中 大量重复性的输入和交互操作不仅费时费力 而且容易出错 编写一个恰到好处 Shell脚本程序 可以批量处理 自动化完成一系列的维护任务 减轻管理员的负担


1) 编制第一个 Shell 脚本

        Linux 操作系统中Shell是一个特殊的应用程序 它介于操作系统内核和用户之间, 充当了一个"命令解释器"的角色 负责接收用户输入的操作指令(命令)并进行解释 将需要执行的操作传递给内核执行 并输出执行结果

        常见的 Shell 解释器程序有很多种 使用不同的Shell程序时,其内部指令 命令行提示等方面会存在一些区别, 通过 /etc

/shells 文件可以了解当前擦操作系统 所支持的 Shell 程序种类,其中 /bin/bash 是目前大多数 Linux 版本采用的默认 Shell 程序 Bash 的全程是 Bourne Aagin Shell 是受欢迎的开源软件项目之一 .

[root@localhost ~]# cat /etc/shells

/bin/sh
/bin/bash
/sbin/nologin


    1.1) 只要将平时使用的各种Linux命令按执行先后顺序保存到一个文本文件中 然后添加可在执行权限 这个文件就成为一个 Shell 脚本了 例如,执行以下操作可以创建第一个脚本文件-----first.sh

1[root@localhost ~]#  vi first.sh// 创建脚本 名字随意选取(first)     后缀必须是 .sh
2cd  /boot///  进入 /boot 目录下
3pwd//  查看工作目录
4ls  -lh  vml*//  查看当前目录下 以 vml 开头的文件

 


1.2 ) 添加可执行权限 默认没有 是脚本具有可执行权限

[root@localhost ~]# chmod +x first.sh


1.3) 执行脚本文件三种方式

方法一:脚本文件路径
方法二:sh  脚本文件路径
方法三:source  脚本文件路径

实现方法:

必须有 x 权限
[root@localhost ~]# ./first.sh

[root@localhost ~]# sh /first.sh

不要求 x 权限

[root@localhost ~]# source /first.sh


        输出的结果与依次单独执行这三条命令的输出结果是相同的 从而实现了"批量处理" 的自动化过程 一个合格的 Shell脚本程序应该遵循标准的脚本结构,而且能够输出友好的提示信息,更加容易读懂 对于代码较多,结构复杂的脚本 应添加必要的注释文字

1[root@localhost ~]#  vi /first.sh
2                     #!/bin/bash//  一行特殊的脚本声明 表示此行以后的语句通过 /bin/bash 程序来解释;
3                     # This is my first Shell-Script.//  其他以 "#" 开头的语句表示注释信息;
4                     echo "当前的目录位于:"//  用于输出字符串 以使脚本的输出信息更容易读懂
5                      pwd
6                     echo "其中以vml开头的文件包括:"
7                     ls -lh vml*


 

输出结果如下:

 


   2.1)  重定向与管道操作


1.交互式硬件设备

  • 标准输入:从该设备接收用户输入的数据
  • 标准输出:通过该设备向用户输出数据
  • 标准错误:通过该设备报告执行出错信息

【类型】【设备文件】【文件描述编号】【默认设备】

  • 标准输入;/dev/stdin ;0 ;键盘
  • 标准输出;/dev/stdout; 1 ;显示器
  • 标准错误输出;/dev/stderr; 2;显示器

2.重定向操作

【类型】【操作符】【用途】

  1. 重定向输入 ; < ; 从指定的文件读取数据,而不是从键盘输入
  2. 重定向输出; > ;将输出结果保存到指定的文件(覆盖原文件)
  3. 重定向输出;>>; 将输出结果追加到指定的文件
  4. 标准错误输出;2> ;将错误信息保存到指定的文件(覆盖原文件)
  5. 标准错误输出;2>>; 将错误信息追加到指定的文件中
  6. 混合输出;&> ; 将标准输出、标准错误的内容保存到同一个文件中

------------------------------------

练习1:

# uname -p > kernel.txt

# cat kernel.txt

# uname -r >> kernel.txt

# cat kernel.txt

# echo "123456" > pass.txt

# cat pass.txt

# useradd tom

# passwd --stdin tom < pass.txt

# tar jcf /nonedir/etc.tgz /etc

#  tar jcf /nonedir/etc.tgz /etc 2>error.log

# cat error.log

--------------------------

3.管道操作符号“|”

  • 将左侧的命令输出结果,作为右侧命令的处理对象
  • 格式:cmd1  |  cmd2  [... | cmdn]
[root@localhost ~]# grep “bash$" /etc/passwd

root:x:0:0:root:/root:/bin/bash
teacher:x:500:500:BENET Linux Teacher:/home/teacher:/bin/bash

以冒号:分隔,输出第1、7个字段

[root@localhost ~]# grep “bash$” /etc/passwd | awk  -F:  ‘{print $1,$7}’ 

root  /bin/bash
teacher  /bin/bash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值