2023学年完整公开课版什么是shell_第1页
2023学年完整公开课版什么是shell_第2页
2023学年完整公开课版什么是shell_第3页
2023学年完整公开课版什么是shell_第4页
2023学年完整公开课版什么是shell_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Shell脚本初步入门(一)2Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的RedHatEnterpriseLinux、SUSE、OracleLinux等。Linux3本教学所采用的环境系统为Centos7-mini版本镜像下载地址:/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso在windows操作系统种安装VMwareWorkstation安装VMwareWorkstation会在视频中讲解创建Centos7虚拟机在视频中讲解实验环境4Shell脚本初步入门知识点01什么是shell知识点03

shell文件包含知识点02什么是shell脚本学习目标

了解什么是shell5了解什么是shell脚本Shell文件包含哪些1.什么是shell7Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。8什么是shell现在人们使用的操作系统(Windows、Android、iOS等)都带有图形界面,简单直观,容易上手。然而早期的计算机并没有图形界面,人们只能使用烦琐的命令来控制计算机。其实,真正能够控制计算机硬件(CPU、内存、显示器)的只有操作系统内核(Kernel),图形界面和命令行都是架设在用户和内核之间的桥梁,是为了方便用户控制计算机而存在的。由于安全等原因,用户不能直接接触内核,因此需要在用户和内核之间增加“命令解释器”,这既能简化用户的操作,又能保障内核的安全。在Linux下,这个命令解释器叫作“Shell”,它能让用户更加高效、安全、低成本地使用Linux内核。变量是Shell程序运行时使用的最小数据单元,也是Shell程序不可缺少的组成部分。本章主要讲述Shell变量的具体用法,使读者对Shell变量有更多的认识。9什么是shellShell能够接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,如输出到显示器、写入文件等。这就是大部分读者对Shell的认知。其实,Shell程序本身的功能是很弱的,文件操作、输入输出、进程管理等都得依赖内核。用户运行一个命令,大部分情况下Shell都会去调用内核暴露出来的接口,这就是在使用内核,只是这个过程被Shell隐藏了起来,在背后默默进行,用户看不到而已。接口其实就是一个一个的函数,使用内核就是调用这些函数,除了函数没有别的途径使用内核。10什么是shell比如,用户在Shell中输入catlog.txt命令就可以查看log.txt文件中的内容。log.txt放在磁盘的哪个位置?分成了几个数据块?如何操作探头读取它?这些底层细节Shell统统不知道,它只能去调用内核提供的open()和read()函数,告诉内核读取log.txt文件;然后内核按照Shell的指令去读取文件,并将读取到的文件内容交给Shell;最后由Shell把文件内容呈现给用户(呈现到显示器上还得依赖内核)。11什么是shell在Shell中输入的命令,有一部分是Shell本身自带的,这叫作内置命令;有一部分是其他应用程序(一个程序就是一个命令),这叫作外部命令。Shell本身支持的命令并不多,功能也有限,但是Shell可以调用其他程序,每个程序就是一个命令,这使得Shell命令的数量可以无限扩展,其结果就是Shell的功能非常强大,完全能够胜任Linux的日常管理工作,包括文本或字符串检索、文件的查找或创建、大规模软件的自动部署、更改系统设置、监控服务器性能、发送报警邮件、抓取网页内容、压缩文件等。更令人惊讶的是,Shell还可以让多个外部程序发生连接,在它们之间很方便地传递数据,也就是把一个程序的输出结果传递给另一个程序作为输入信息。12什么是shellShell连接程序的示意图如图所示。注意“用户”和“其他应用程序”是通过虚线连接的,因为用户启动Linux后直接面对的是Shell,通过Shell才能运行其他应用程序。13什么是shell14KshBshCshBashZsh兼具Bsh的语法和Csh的交互特性70年代中期诞生于贝尔实验室,有较强的脚本编程功能80年代早期诞生于加利福尼亚大学,使用C语言风格,命令交互方便Bsh的升级版,Linux系统中的默认Shell兼具各种Shell程序优点,交互式操作效率更高什么是shell15[root@localhost~]#cat/etc/shells/bin/sh/bin/bash/sbin/nologin/bin/tcsh/bin/csh/bin/ksh如何切换Shell环境临时切换:直接执行其他Shell程序,例如ksh、zsh等更改用户登录Shell:需修改/etc/passwd

文件中用户记录的最后一个字段或执行:usermod-sShell程序路径用户名登录Shell指用户每次登录系统后自动加载的Shell程序,大多数Linux系统采用/bin/bash作为默认登录Shell/etc/shells文件记录了系统支持的有效登录Shell什么是shell16Linux命令用于实现某一类功能的指令或程序命令的执行依赖于解释器程序(例如:/bin/bash)Linux命令的分类内部命令:属于Shell解释器的一部分外部命令:独立于Shell解释器之外的程序文件什么是shell17Linux命令的通用命令格式命令字[选项][参数]选项及参数的含义选项:用于调节命令的具体功能以“-”引导短格式选项(单个字符),例如“-l”

以“--”引导长格式选项(多个字符),例如“--color”

多个短格式选项可以写在一起,只用一个“-”引导,例如“-al”参数:命令操作的对象,如文件、目录名等[root@localhost~]#ls-l/home总计8drwx------2benet

benet409609-0808:50benet什么是shell2.什么是shell脚本18Shell并不是简单的命令堆砌,用户还可以在Shell中编程使用C++、C#、Java、Python等常见的编程语言并没有什么两样。Shell虽然没有C++、Java、Python等强大,但也支持以下基本的编程元素。(1)if...else选择结构,case...in开关语句,for、while、until循环。(2)变量、数组、字符串、注释、加减乘除、逻辑运算等概念。(3)函数,包括用户自定义的函数和内置函数(如printf()、export()、eval()等)。从这个角度讲,Shell也是一种编程语言,它的编译器(解释器)是Shell这个程序。因此,平时所说的Shell有时候是指连接用户和内核的这个程序,有时候又是指Shell编程。19什么是shell脚本Shell主要用来开发一些实用的、自动化的小工具,而不是用来开发具有复杂业务逻辑的中大型软件。例如,检测计算机的硬件参数、搭建Web运行环境、日志分析等,Shell都非常合适。使用Shell的熟练程度反映了用户对Linux的掌握程度,运维工程师、网络管理员、程序员都应该学习Shell。对Linux运维工程师来说,Shell更是必须掌握的技能。Shell使自动化管理服务器集群成为可能,否则用户只能一个一个地登录所有的服务器,对每一台服务器进行相同的设置,而这些服务器可能有成百上千之多,用户会在重复性的工作上浪费大量的时间。20什么是shell脚本几乎所有的编程语言,如C/C++、Pascal、Go、汇编语言等,都必须在程序运行之前将所有代码翻译成二进制形式,也就是生成可执行文件。用户拿到的是生成的可执行文件,看不到源码。这个过程叫作编译,这样的编程语言叫作编译型语言,完成编译过程的软件叫作编译器。而有的编程语言,如Shell、JavaScript、Python、PHP等,需要一边执行一边翻译,不会生成可执行文件,用户必须拿到源码才能运行程序。程序开始运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完。这个过程叫作解释,这样的编程语言叫作解释型语言或者脚本语言(Script),完成解释过程的软件叫作解释器。21什么是shell脚本编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合Web开发以及小工具的制作。Shell就是一种脚本语言,用户编写完源码后不用编译,直接运行源码即可。22什么是shell脚本3.Shell文件包含23和其他语言一样,Shell也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。使用方法:(1).filename#注意点号(.)和文件名中间有一空格(2)sourcefilename24Shell文件包含#test1.sh的内容

#test2.sh的内容

运行test1.sh结果

25#!/bin/shechoshell#!/b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论