Q:什么是Shell,什么是shell脚本?
A:Shell是一种用C语言编写的程序,它是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。它是命令语言、命令解释程序及程序设计语言的统称。它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。
命令解释程序:shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。它由输入设备读取用户输入的命令,再将其转为计算机可以了解的机械码,然后执行它。
命令语言:它互动式地解释和执行用户输入的命令。当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。 一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。 当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。
程序设计语言(也就是shell脚本):shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。任何在提示符中能键入的命令都能放到一个可执行的shell程序中。 作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。简单的说shell脚本就是一个包含若干行Shell或者Linux命令的文件。对于一次编写,多次使用的大量命令,就可以使用单独的文件保存下来。以便日后重复使用

第一个shell程序,此程序保存为mayuan.sh文件(通常shell脚本以.sh为后缀):

#! :这是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。如:#!/bin/sh,#!/bin/bash,#!/bin/csh,#!/bin/tcsh和,#!/bin/ksh等。

第二行以 # 开头,代表是注释行,会被解释器忽略。除了第一行以外,其他行以 # 开头都是注释行;sh里没有多行注释,只能每一行加一个#号。如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。

第三行定义了一个变量name,值为:mayaun 。注意变量名(name)和 = 间不能有空格,否则执行脚本时会提示command not found。

第四行echo:命令用于向窗口输出文本。$(美元符号)表示变量替换,即用其后面指定的变量的值来代替变量。

执行shell脚本有两种方法:
1、作为可执行程序

将代码保存为mayuan.sh,并cd到相应目录:
chmod +x ./mayuan.sh #使脚本具有执行权限
./mayuan.sh #执行脚本
注意,一定要写成./mayuan.sh,而不是mayuan.sh,运行其它二进制的程序也一样,直接写mayuan.sh,linux系统会去PATH里寻 找有没有叫mayuan.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成mayuan.sh是会找不到命令的,要用. /mayuan.sh告诉系统说,就在当前目录找。如下图所示:

2、作为解释器参数

这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
/bin/bash mayuan.sh
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。

Linux Shell编程学习笔记一:shell简介相关推荐

  1. 《Linux Shell编程学习笔记之一》

    <Linux Shell编程学习笔记之一> 前言 由于自己一直在Windows上面编程,用linux用的比较少,学习linux还是本科大二学的一点点知识.因此自己就准备花点时间来熟悉下li ...

  2. Linux Shell编程学习笔记(4)

    Linux Shell编程学习笔记(2015-7-20) 分类:linux shell   今天学习了Linux Shell中的控制结构.其实大多数语言的控制结构这一块都是基本类似的,有了C语言的基础 ...

  3. Linux Shell编程学习笔记(2)

    Linux Shell编程学习笔记(2015-7-12) 分类:linux shell Shell变量 一:关于Shell变量   Shell是一种弱类型的语言,变量存储的一切值都是字符串.Shell ...

  4. Linux Shell编程学习笔记(3)

    Linux Shell编程学习笔记(2015-7-19) 分类:linux shell 一:位置参数和特殊变量   什么是位置参数?   位置参数也叫位置变量,是运行shell脚本程序时,命令行she ...

  5. SHELL编程学习笔记

    SHELL编程学习笔记 本文描述unix shell的各种应用实例,根据查阅资料和自我总结,作为自己今后复习的模板.本文搜集整理常用的shell应用实例,以例子详述unixshell部分命令的使用,着 ...

  6. [Linux网络编程学习笔记]索引

    一.Linux基本知识 [学习笔记]Linux平台的文件I/O操作 [学习笔记]Linux平台的文件,目录及操作 [Linux学习笔记]标准输入输出 [Linux学习笔记]进程概念及控制 [Linux ...

  7. 编程开发:Linux网络编程学习笔记

    非常全面.通俗易懂.值得借鉴的Linux网络编程学习笔记.关键字:linux linux编程 网络编程 linux网络编程 下载地址:点我下载 特别说明:本资源收集于网络,版权归原作者及版权商所有,仅 ...

  8. Linux Shell 编程学习笔记(1)

    Linux Shell编程学习笔(2015-7-11) 一:Shell程序运行的三种方法 赋予程序文件可执行权限,直接运行   比如:chmod a+x shell.sh 使用命令解释器(即shell ...

  9. Linux7.6—Shell编程 学习笔记 第四章:系统任务设置

    Linux7.6-Shell编程 第四章:系统任务设置 文章目录 Linux7.6-Shell编程 一.系统启动流程 二.系统服务 三.开机自启动服务 四.定时任务 一.系统启动流程 启动计算机的硬件 ...

最新文章

  1. android查看存储占用,Android获取App内存使用情况的方法
  2. linux与windows编码转化
  3. c语言面试题东软,2012东软笔试题
  4. centos7在线yum安装mysql时官方镜像下载过慢的解决方案
  5. f分布表完整图_标准正态分布函数数值表怎么查?(加完整分布函数表)
  6. np.random.choice的用法
  7. 如何开发一套完整的医疗远程会诊系统方案
  8. 在家也可以免费下载知网文献,5种免费下载知网文献方法
  9. 用计算机求和公式,全国计算机一级等考excel之sum求和函数
  10. 实现App跳转到应用商店
  11. tkintertools 模块实战一:任务清单小工具
  12. 鼓励与信任让人变得更强大
  13. Linux:系统安全及应用
  14. 限免|iOS长截图工具 滚动截屏
  15. 开源的 IM 项目 Sealtalk
  16. 实验7-4 身份证号码最后一位
  17. snmptester 最新版下载地址
  18. [转帖]AMOLED的技术和OLED有哪些联系和区别
  19. 设计模式之模板方法模式在kafka DelayedOperation中的应用
  20. js中实现页面跳转的几种方法

热门文章

  1. 互联网创业之门 — 设计师。
  2. springcloud之网关zuul学习笔记
  3. AT91SAM9260——NFS挂载根文件系统
  4. idea java complier 编译级别的问题
  5. webpack与grunt/glub 的比较
  6. 什么才是真正的国际奢侈品牌?
  7. 自己训练的caffemodel用于测试图片时,出现的问题
  8. Mac 安装IDEA以及激活方法
  9. 求解什么是蜜罐技术?
  10. katalon studio使用教程