shell-脚本概念介绍01

shell:脚本慨念介绍

1、shell脚本简介

  • 在解释shell脚本这个名词之前,我们先来说下什么是shell

    1.1、什么是shell

  • shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户。这种对话方式可以是交互的方式(从键盘输入命令,可以立即得到shell的回应),或非交互(脚本)的方式。
  • 下面的图中×××部分就是命令解释器shell处于的操作系统中的位置。

    提示:
    • shell英文是贝壳的意思,从上图我们可以看出,命令解释器shell就像一个贝壳一样包住了系统核心。

2、什么是shell脚本

  • 当linux命令或语句不在命令行下执行(严格说,命令行也是shell),而是通过一程序文件执行时,该程序就被称为shell脚本或shell程序,shell程序很类似dos系统下的批处理程序(扩展名*.bat)。用户可以在shell脚本中敲入一系列的命令及命令语句组合。这些命令、变量和流程控制语句等有机的结合起来就形成了一个功能强大的shell脚本。
    ###2.1、举例:

案例1、清除/var/log下messages日志文件的简单命令脚本

  • 把所有命令放在一个文件里堆积起来形成了脚本,下面就是一个最简单的命令堆积形成的shell脚本。
  • 要使用root身份来运行这个脚本。
  • 清除日志脚本,版本1
    cd  /var/log
    cat  /dev/null   >messages
    echo "logs  cleaned up."
    提示:/var/log/messages 是系统的日志文件,很重要

    看完这个脚本大家有什么想法?

    1. 上面的脚本,如果不是root就无法执行清理日志。
    2. 没有任何的流程控制语句,简单的说就是顺序操作,没有成功判断和逻辑性。

案例2:包含命令、变量和流程控制语句的清除/var/log下messages日志文件的shell脚本。

[root@1-241 scripts]# vim messages.sh
[root@1-241 scripts]# cat messages.sh
#!/bin/sh
#清空日志脚本
LOG_DIR=/var/log
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ]
    then
        echo "must be root to run this scripts."
        exit 1
fi

cd $LOG_DIR || {
    echo "cannot change to necessary directory." >&2
    exit 1
}

cat /dev/null > messages && echo "log cleaned UP."
exit 0

拓展:清空日志及文件内容的三种方法:

[root@1-241 scripts]# echo >/var/log/nginx/ccs_access.log
[root@1-241 scripts]#  >/var/log/nginx/ccs_access.log
[root@1-241 scripts]# cat /dev/null >/var/log/nginx/ccs_access.log 

原文地址:https://blog.51cto.com/scajy/2366554

时间: 2024-10-22 13:51:27

shell-脚本概念介绍01的相关文章

shell编程概念介绍及变量定义--关于脚本运行与shell进程之间的关系

shell是用户与内核进行交互操作的一种接口,目前最流行的shell称为bash shell shell也是一门编程语言<解释型的编程语言>,即shell脚本<就是用 linux 的 shell 命令编程> 一个系统可以存在多个shell,可以通过 cat/etc/shells 命令查看系统中安装的shell,不同的shell 可能支持的命令语法是不相同的 基本格式 代码写在普通文本文件中,通常以 .sh为后缀名 例vi hello.sh: #!/bin/bash      ##表

每日一道shell脚本练习(01)

0. 引言 准备开一个新坑,每天更新一道shell练习.因为shell脚本属于那种不练习就会生疏,甚至忘记的技能,所以,为了对抗遗忘阻力,我只能不断加强练习了. 1. 第一天练习题目 [题目]请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2018-04-08.log,并且把磁盘的使用情况写到这个文件中,不用考虑cron,仅仅写脚本即可. [分析]第一点,要明白 linux 命令 date 的用法,打印"xxxx-xx-xx"这样的时间格式用date

Shell脚本基础介绍

shell基础简介: 编写脚本通常使用某种基于解释器的编程语言.而shell脚本不过就是一些文件,我们能将一系列需要执行的命令写入其中,然后通过shell来执行这些脚本. 进入Linux系统(Ubuntu),打开终端Terminal,"$"表示普通用户,"#"表示超级用户.其实此时打开的即为shell终端.注意:Redhat/CentOS系统默认安装的shell是bash,它是sh的增强版,Ubuntu默认安装的shell是dash.通过执行:$ ll  /bin/

Shell脚本心得.介绍和总结

shell的历史 shell概况 人想要和操作系统进行交互,传送指令给操作系统,就需要使用到shell.宏义的shell是人与机器交互的页面,它分为两种,一种是有界面的,比如GUI,另外一种是没有界面的,完全是指令操作的(CLI).我们一般说的shell指的就是命令行界面. Bourne shell 最早Ken Thompson设计Unix的时候,使用的是命令解释器,命令解释器接受用户的命令,然后解释他们并执行. 后来出现了Bourne shell(通称为sh),顾名思义,就是一个叫Bourne

shell脚本基础学习(转)

看到别人的学习总结,觉得不错转了过来(转自TryFly) 一.shell脚本基础 ? ?shell脚本是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正则表达式,管道命令以及重定向向等功能,以达到我们所想要的处理目的.它的基本用途有: 1.自动化常用命令 2.执行系统管理和故障排除 3.创建简单的应用程序 4.处理文本或文件 ... 二.创建shell脚本 第一步.使用文本编辑器来创建文本文件 第一行必须包括shell 声明序列:#!

Linux系统Shell脚本编程

1. shell脚本概念:C语言编写的.命令解释器.编程语言. 是用户使用linux的桥梁. shell脚本语言非常擅长处理文本类型的数据. 2. shell脚本作用:自动化管理.监控管理.日志数据处理.自动数据备份. 3. shell脚本中的成分:注释.命令.shell变量.结构控制语句. 以行为单位  一行一行依次执行. (在shell脚本中可以出现任何在交互方式下可以使用的命令.) 4. 调用shell脚本的两种方式: (1)sh 脚本文件名 (2)./脚本文件名(需要有执行权限) 当执行

shell脚本之编程规范与变量

shell脚本概念 将要执行的命令按顺序保存到一个文本文件,给该文件一个可执行权限,便可运行. shell脚本的构成 1.脚本申明 脚本声明是指明用哪个解释器来解释 2.注释信息 注释信息是指明这个脚本的一些说明信息.就知道这个脚本时干什么用的了,这个信息不执行 3.可执行语句 进行执行的一些命令 执行shell脚本的方式 1.绝对路径 2.相对路径 3.sh 脚本路径 4.source 脚本路径 注意:其中,绝对路径与相对路径实行shell脚本时,该脚本文件必须要有可执行权限.Source脚本

Shell脚本之初见——理论篇(1)

Shell脚本之初见--理论篇(1) Shell脚本概念: 将要执行的命令按顺序保存在一个文件中 只要赋予该文件执行权限,便能够运行(使用chmod命令) 可结合各种shell控制语句以完成复杂操作 Shell脚本应用场景: 重复性操作 批量处理 自动化运维 服务状态监控 定时任务执行 Shell脚本作用: 担任命令解释器 介于系统内核与用户之间,负责解释命令行 编写基础脚本代码 1.使用vim文本编辑器: 2.每行一条Linux命令,按执行顺序依次编写. 操作示例: [[email prote

Shell脚本编程——基础篇

Shell脚本概念 1.将要执行的命令按顺序保存到一个文本文件2.给该文件可执行权限,便可运行3.可结合各种shell控制语句以完成更复杂的操作 Shell脚本应用场景 1.重复性操作2.批量事务处理3.自动化运维4.服务运行状态监控5.定时任务执行 完善的shell脚本构成 1.脚本声明2.可执行语句3.注释文字 Shell的作用--命令解释器,"翻译官" 执行脚本文件方法大全 方法一:脚本文件路径(绝对路径和相对路径)方法二:sh脚本文件路径方法三:source脚本文件路径拓展方法