Shell 教程

Shell 是一个C语言编写的程序,他是用户使用Linux的桥梁,Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面用户通过这个界面访问操作系统内核的服务。

Ken Thompson 的sh是第一种 Unix Shell Windows Explorer 是一个典型的图形界面Shell.

Shell 脚本

Shell 编程跟 java php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

Linux 的Shell 种类众多,常见的有:

Bourne Shell (/usr/bin/sh或/bin/sh)

Bourne Again Shell (/bin/bash)

C Shell (/usr/bin/csh)

K Shell (/usr/bin/ksh)

Shell for Root (/sbin/sh)

本教程关注的是Bash, 也就是Bourne Again Shell ,由于易用和免费,Bash在日常工作中被广泛使用,同时,Bash 也是大多数Linux系统默认的Shell

在一般情况下,人们并不区分Bourne Shell 和 Bourne Again 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. 作为可执行程序

将上面的代码保存为test.sh 并 cd 到相应目录

chmod +x ./test.sh #使脚本具有执行权限

./test.sh #执行脚本

注意,一定要写成 ./test.sh 而不是 test.sh 运行其他二进制的程序也是一样,直接写 test.sh linux 系统会去 PATH 里有没有 test.sh

2. 作为解释器参数

这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:

/bin/sh test.sh

/bin/php test.sh

这种方式运行的脚本,不需要在第一行指定解释器信息

Linux Shell 教程的更多相关文章

  1. Linux Shell系列教程之(十七) Shell文件包含

    本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰. ...

  2. Linux Shell系列教程之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

  3. Linux Shell系列教程之(十五) Shell函数简介

    本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...

  4. Linux Shell系列教程之(十四) Shell Select教程

    本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...

  5. Linux Shell系列教程之(十三)Shell分支语句case … esac教程

    本文是Linux Shell系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell系列教程 分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使 ...

  6. Linux Shell系列教程之(十二)Shell until循环

    本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Lin ...

  7. (转)Linux Shell系列教程之(十四) Shell Select教程

    本文属于<Linux Shell 系列教程>文章系列,该系列共包括以下 18 部分: Linux Shell系列教程之(一)Shell简介 Linux Shell系列教程之(二)第一个Sh ...

  8. Linux Shell系列教程之(十一)Shell while循环

    本文是Linux Shell系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇Linux Shell系列教程之(十)Shell for循环中,我们已经 ...

  9. Linux Shell系列教程之(十)Shell for循环

    本文是Linux Shell系列教程的第(十)篇,更多Linux Shell教程请看:Linux Shell系列教程 基本任何语言都有自己的循环语句,Shell当然也不例外,今天就为大家介绍下Shel ...

随机推荐

  1. netbeans 代码自动补全设置

    编辑器-----代码完成------语言选择"JAVA"------在如图红框中输入 @ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst ...

  2. history-之前发生了什么

    查看一下之前服务器上执行过的命令.看一下总是没错的,加上前面看的谁登录过的信息,应该有点用.另外作为admin要注意,不要利用自己的权限去侵犯别人的隐私哦. 到这里先提醒一下,等会你可能会需要更新 H ...

  3. JavaScript远程调用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. web前端学习(四)JavaScript学习笔记部分(2)-- JavaScript语法详解

    2.1.Javascript语法-运算符(1) 复数运算符 %取余 ++ -- 赋值运算符 += -= *= /= %= 字符串操作 <!DOCTYPE html> <html la ...

  5. jquery购物评分

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 【JZOJ3636】【BOI2012】Mobile(mobile)

    Mission 著名的手机网络运营商Totalphone 修建了若干基站收发台,以用于把信号网络覆盖一条新建的高速公路.因为Totalphone 的程序员总是很马虎的,所以,基站的传功功率不能独立设置 ...

  7. python深、浅拷贝

    1.首先对于数字和字符串而言,深浅拷贝无实际意义,两者同时指向同一个内存地址. a = 123 print(id(a)) b = a print(id(b)) 495849744 495849744 ...

  8. goland的下载安装破解并配置

    1.下载地址:https://www.jetbrains.com/go/ 2.安装:简单 3.破解:https://www.cnblogs.com/igoodful/p/9113946.html 4. ...

  9. log4j:ERROR Could not read configuration file [log4j.properties]

    遇到这个错误,程序能够正常运行,log4j.properties也在classpath中,后来在网上查了资料,把下面这个语句去掉就好啦. PropertyConfigurator.configure( ...

  10. js的下拉刷新和上拉加载,基于iScroll v4.2.5

    html部分 <div id="wrapper" style="height: 100%"> <div id="scroller&q ...