《第1章 Shell脚本编程概述》
- 1 Linux简介
- 2 Shell 简介
- 3 Linux登录方式
- 4 脚本编程优势
- 4.1 shell脚本编程优势
- 5 shell脚本基本元素
- 6 执行shell脚本
1 Linux简介
1991年芬兰赫尔辛基大型学生Linus Torvals开发了Linux内核。
2 Shell 简介
1、Shell是一种具备特殊功能的程序。
2、提供了一种用户和内核进行交互操作的接口。
3、内核是Linux心脏。开机自检时驻留内存中,直至计算机关闭为止。
4、用户的应用程序存储在计算机的硬盘上,当需要时才被调入内存。
5、 Shell是一种应用程序,当用户登录Linux 系统时, Shell 就会被调入内存执行。
6、Shell独立于内核,它是连接内核和应用程序的桥梁,并由输入设备读取命令,再 将其转为计算机可以理解的机械码, Linux 内核才能执行该命令。
3 Linux登录方式
1、图形界面。
2、Shell命令行方式。
shell工具有
1、PuTTY
2、SecureCRT
4 脚本编程优势
● 语法和结构通常比较简单。
● 学习和使用通常比较简单。
● 通常以容易修改程序的“解释”作为运行方式,而不需要“编译”。
● 程序的开发产能优于运行效能。
脚本语言 (Script Language) 是相对于编译型语言而言的,它是为了缩短编译型语言编 写一编译—链接一运行 (Edit-Compile-Link-Run) 过程而创建的计算机编程语言。由于脚本 语言常常运行于底层,所处理的是字节、整数、浮点数或其他机器层的对象,因而,脚本语 言是低级程序设计语言。如 C\C++、Ada、Java、C# 等都属于编译型语言,也可称为高级程 序设计语言,这类语言所编写的程序需要经过编译,将源代码转化为目标代码才能运行。而 脚本语言往往是解释运行而非编译,即由解释器 (Interpreter)读入脚本程序代码,将其转换 成内部的形式执行,而解释器本身则是编译型程序。
4.1 shell脚本编程优势
1、Shell 脚本程序往往可以在不同版本的 Linux/UNIX 系统上通用。
2、Shell脚本语言还提供了类似于高级程序设计语言的语法结构,如 分支判断语句、变量和函数、循环结构、数组、算术和逻辑运算等。
5 shell脚本基本元素
Shell 脚本将一系列的 Linux 命令放在一个文件中,这样,我们就不必每次都手动输入同样的命令。
//以下作为测试脚本Else.sh
#!/bin/bash
cd / #切换到用户根目录,因为.bash profile在根目录下
.bash_profile #配置用户的命令行环境
date #显示日期命令
who #显示当前的登录用户
1、解释器。第1 行是“#!/bin/bash”,“#!”符号称为“Sha-bang”符号,是Shell脚本的起始符号,“#!”符号 是指定一个文件类型的特殊标记,它告诉 Linux 系统这个文件的执行需要指定一个解释器。 “#!”符号之后是一个路径名,这个路径名指明了解释器在系统中的位置,对于一般的 Shell 脚本而言,解释器是bash,也可以是sh, 即用下面的两种方式作为脚本的第1行都是正确的:
#!/bin/bash
#!/bin/sh
2、注释符。每条命令后 面有一段以“#”符号起始的中文,“#”符号是注释符,它后面直到本行结束的所有内容是注 释,脚本执行时是不执行注释的,“#”符号类似于C++ 和Java 语言中的“//”符号,脚本注 释可以是整行,也可以在某行的后面:
command # 在行后面的注释
#整行的注释
注释能增加 Shell 脚本的可读性,便于人们理解该脚本。因此,读者在编写脚本时,应养成勤加注释的好习惯。
3、命令。命令通常由命令名称、选项和参数三部分组成,三部分之间用空格键或Tab 键分隔。
ls -l /etc/sh*
#列出/etc目录下以“sh”开头文件的详细信息,这一条简单的Linux 命令就由三个部分组成,“1s”是命令名称,“-1”是选项,“/etc/sh*”是参数。
6 执行shell脚本
1、具备执行该脚本文件的权限。 一般来说,当我们用文本编辑器创建一个 Shell 脚本文件时, 该文件是没有可执行权限的,即 x 权限。因此,我们需要先赋给 Shell 脚本可执行权限,再去执行它。
[root@shell-else]# chmod u+x test.sh #为test.sh 脚本赋可执行权限
[root@shell-else]# ls -l test.sh #查看test.sh 的权限
-rwxr--r-- ·1 root root 15503-2313:14 test.sh #具备x 权限了
[root@shell-else]# ./test.sh #执行test.sh 脚本
2023年07月11日星期二13:14:35 CST #test.sh 脚本的执行结果
root pts/0 2023-07-11 11:42(210.28.82.132)
root pts/1 2023-07-11 11:43(210.28.82.199)
[root@shell-else]#