`

Shell教程简介-(一)

 
阅读更多
本文来自:http://www.runoob.com/linux/linux-shell.html
Shell教程
Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的sh 是第一种Unix Shell,Windows Explore是一个典型的图形界面Shell。
Shell脚本
Shell脚本(shell script),是一种为shell编写的脚本程序。
业界所说的shell通常都是指shell脚本,但是要注意区分,shell和shell script是两个不同的概念。由于习惯的原因,简洁起见,本文出现的“shell编程”都是指shell脚本编程,不是指开发shell本身。
Shell环境
Shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux的Shell种类众多,常见的有:
Boume Shell(/usr/bin/sh或/bin/sh)
Boume Agagin Shell (/bin/bash)
C Shell (/usr/bin/csh)
K Shell (/usr/bin/ksh)
Shell for Root(/sbin/sh)
......
sh/bash/csh/Tcsh/ksh/pdksh等shell的区别
sh(全称 Bourne Shell): 是UNIX最初使用的 shell,而且在每种 UNIX 上都可以使用。
Bourne Shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。
bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。 与 Bourne Shell 完全兼容,并且在 Bourne Shell 的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多 C Shell 和 Korn Shell 中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。
csh(全称 C Shell): 是一种比 Bourne Shell更适合的变种 Shell,它的语法与 C 语言很相似。
Tcsh: 是 Linux 提供的 C Shell 的一个扩展版本。
Tcsh 包括命令行编辑,可编程单词补全,拼写校正,历史命令替换,作业控制和类似 C 语言的语法,他不仅和 Bash Shell 提示符兼容,而且还提供比 Bash Shell 更多的提示符参数。
ksh (全称 Korn Shell): 集合了 C Shell 和 Bourne Shell 的优点并且和 Bourne Shell 完全兼容。
pdksh: 是 Linux 系统提供的 ksh 的扩展。
pdksh 支持人物控制,可以在命令行上挂起,后台执行,唤醒或终止程序。

本教程关注的是Bash,也就是Boume Agagin Shell,由于易用和免费,Bash在日常工作中被广泛使用。同时,Bash也是大多数Linux系统默认的Shell.
在一般情况下,人们并不区分Boume Shell和Boume Agagin Shell,所以,像#!/bin/sh,它同样也可以改为#!/bin/bash.
#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序。

第一个Shell脚本
打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行(即脚本后缀名可以任意修改,仍然可以正常运行),见名知意就好,如果你用php写shell脚本,扩展名就用php好了。

输入一些代码,第一行一般是这样:
#!/bin/bash
echo "Hello World !";


#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。
echo命令用于向窗口输出文本。

运行Shell脚本有两种方法:
1、作为可执行程序
   将上面的代码保存为tesh.sh ,并cd到相应目录:
  chmod +x ./tesh.sh #使脚本具有执行权限
   ./test.sh          #执行脚本

注意,一定要写成./test.sh ,而不是test.sh,运行其它二进制的程序也一样,直接写tesh.sh,linux系统会去PATH里寻找有没有叫test.sh 的,而只有/bin,/sbin,/usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成tesh.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。
注意执行脚本时候或者全目录,或者 ./file.sh ,如果不加的话,linux 默认会从PATH 里去找该 file.sh。
2、作为解释器参数
这种运行方式是,直接运行解释器,其参数就是Shell脚本的文件名,如:
/bin/sh test.sh
/bin/php test.php

这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。

首先,什么是脚本语言?
脚本语言是像剧本一样教计算机办某个事情的语言。
比如你想让计算机执行复制某个文件的操作,如:cp ~/Desktop/*.txt ~/text
你可以在文本编辑器写入上边的代码并且保存此文件,然后你通过执行这个文本文件来执行上面的代码,并不需要重复手动输入上边的代码。
下面这句话是我在网上看到的:
所以脚本其实就是短小的、用来让计算机自动化完成一系列工作的程序,这类程序可以用文本编辑器修改,不需要编译,通常是解释运行的。
分享到:
评论

相关推荐

    shell教程-30章,下了之后会让你大吃一惊,相当好

    第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 chmod命令的其他例子 6 1.4.5 可以选择使用符号...

    Linux Shell脚本系列教程(一):Shell入门.docx

    Linux Shell脚本系列教程(一):Shell入门 ...本文讲解了Linux Shell脚本系列教程(一):Shell入门的基础知识,包括Shell简介、基本操作、Shell脚本的概念、如何运行Shell脚本、Shell脚本的解释等内容。

    Linux简明教程.rar

    一、什么是shell------------------------------------------------------------------------------------- 二、shell命令行-----------------------------------------------------------------------------------...

    Windows Shell扩展编程完全指南

    第一节 - 一步步教你如何编写Shell扩展 简要概述了Shell扩展及如何对之进行调试. 所附的例子演示了如何为文本文件对象添加上下文菜单项。 -------------------------------------------------------------------...

    shell脚本语言.pdf

    Shell 简介: Shell 是一种命令语言和程序设计语言,用户可以通过 Shell 完成大部分工作。Shell 既可以交互式地解释和执行用户输入的命令,也可以定义各种变量和参数,提供了许多控制结构,包括循环和分支。 Shell...

    linux shell 编程教程

    linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

    Linux教程 Shell精华文章.chm

    Linux教程 Shell精华文章.chm 前言 本文译自《Slackware Linux Unleashed》(第三版)一书的 bash 一章,但做了一些必要的删节,并且有的地方根据实际情况作了较大的改动,必要的话请参考原文。 简介 本文将较为...

    Linux Shell脚本系列教程(一):Shell入门

    一、Shell简介 诸多类Unix操作系统的设计令人惊叹。即便是在数十年后的今天,Unix式的操作系统架构仍是有史以来最佳的设计之一。这种架构最重要的一个特性就是命令行界面或者shell。shell环境使得用户能与操作系统的...

    Python入门教程.docx

    python基础教程python环境搭建 Python简介 python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它...

    一周学会Linux实战视频教程

    教程简介 linux视频教程共21讲,主要介绍了linux基础介绍、linux历史介绍.用户管理.目录结构、常用命令、用户组、j2ee环境.jdk. toncat安、linux分区、linux安装演、shell介绍、tcp.ip基础、ip地址和包.解.网络环、...

    mini2440国嵌视频教程+课件+工具+软件+镜像+教程源码下载地址

    2012年10月15日星期一亲测可以下载 公开视频光盘目录结构 国嵌视频1.iso -学习方法与课程体系介绍(学前必看) -学习方法介绍.avi -国嵌嵌入式课程体系.pdf -嵌入式Linux学习方法.pdf -国嵌课程1-嵌入式入门体验班...

    嵌入式Linux程序设计案例与实验教程-实例代码

    1.1.1 Linux简介1 1.1.2 Linux系统的特点1 1.1.3 Linux系统的组成2 1.2 Linux系统的使用2 实验1.1 熟悉Linux基本命令与文件目录系统2 1.3 全屏幕编辑器与vi6 1.3.1 vi简介6 1.3.2 基本命令7 1.3.3 ...

    unix教程_第一.二章.ppt

    本课程主要内容包括:工作站简介、UNIX 操作系统概况、UNIX 系统使用入门、文件编辑器、Shell 程序设计、地震人机联作处理、解释系统等。实验教学内容包括工作站的基本使用方法、UNIX 系统基本命令练习、VI 文本编辑...

    Linux基础知识及系统管理视频教程

    教程简介 主要由42节组成,主要内容有Linux应用与发展、Linux应用与发展总结、Linux系统安装总结、Linux常用命令、文本编辑器vin第13节文本编辑器vim总结第14节Linux引导流程解析(一) 第15节Linux引导流程解析(二) ...

    郭天祥ARM9视频教程(第13和20讲均可观看).docx

    5. shell编程 Linux系统编程专题 第七讲 建立交叉编译环境 1. 编译原理,gcc的使用 2. 交叉编译原理 3. 交叉编译工具安装使用 4. 交叉编译实例分析 第八讲 Windows平台工具使用 1. SecureCRT的安装使用 2. Notepad++...

    UNIX操作系统教程 张红光

    2.1.2用户的注册与注销11 2.1.3账户的管理12 2.1.4用户口令的管理12 2.1.5...一个文件46 3.2.2命令行方式下的常用命令46 3.2.3末行命令方式下的常用命令47 3.2.4进入插入编辑方式的常用命令48 3.2.5使用vi的注意事项48 ...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第一部分

    1.1.1 Linux简介1 1.1.2 Linux系统的特点1 1.1.3 Linux系统的组成2 1.2 Linux系统的使用2 实验1.1 熟悉Linux基本命令与文件目录系统2 1.3 全屏幕编辑器与vi6 1.3.1 vi简介6 1.3.2 基本命令7 1.3.3 常用操作7...

    TCL培训教程(全).doc

    " " "Tcl编程简介(一) " " " "简介 " " Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释 " "运行,功能强大。是tool command language的缩写,发音为 " ""tickle", 实际上包含了两个部分:一个语言...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第二部分

    1.1.1 Linux简介1 1.1.2 Linux系统的特点1 1.1.3 Linux系统的组成2 1.2 Linux系统的使用2 实验1.1 熟悉Linux基本命令与文件目录系统2 1.3 全屏幕编辑器与vi6 1.3.1 vi简介6 1.3.2 基本命令7 1.3.3 常用操作7...

Global site tag (gtag.js) - Google Analytics