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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell脚本是一种在Unix或Linux系统下编写的脚本语言,用于自动化和批处理任务。以下是几个Shell脚本应用实例: 1. Hello World脚本:这是一个简单的Shell脚本,用于输出"Hello World!"的信息。 ``` #!/bin/bash echo "Hello World!" ``` 这个脚本通过echo命令输出了"Hello World!"的文本。 2. 杀死所有脚本:这个脚本用于通过进程名筛选并杀死所有影响系统负载的进程。 ``` #!/bin/bash ps aux | grep 指定进程名 | grep -v grep | awk '{print $2}' | xargs kill -9 ``` 这个脚本通过ps、grep和kill命令结合使用,找到指定进程名的进程并强制终止。 3. 对信号的处理:这个脚本用于拦截用户通过键盘或kill命令发送过来的信号,实现对信号的处理。 ``` #!/bin/bash trap 'echo "暂停10s"; sleep 10' 2 while : do echo "gogogo" done ``` 这个脚本使用trap命令拦截用户按下Ctrl C键发送的信号,并执行暂停十秒的操作。在这个脚本中,使用了无限循环来不断输出"gogogo"的文本。 这些是Shell脚本的一些应用实例,它们可以用于各种自动化和批处理任务,方便地完成一系列操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [100个实用的 Linux Shell 脚本经典案例](https://blog.csdn.net/qq_27706119/article/details/125812348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [推荐超详细的5个Shell脚本实例](https://blog.csdn.net/Listen2You/article/details/100592404)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值