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

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

最新文章

  1. jQuery-1.9.1源码分析系列(十五) 动画处理——外篇
  2. spring Mvc + Mybatis 中使用junit
  3. RMAN备份与恢复之初入茅庐
  4. Android RSA加密解密
  5. std::vector介绍
  6. SAP的物料归档
  7. SQL中批量删除被注入的恶意代码的方法
  8. js页面取值的三种方式
  9. js之数组常见的方法
  10. this compilation unit is not on the build of a java project
  11. MySQL5日期类型DATETIME和TIMESTAMP相关问题详解
  12. Tomcat 8.0的并发优化 - 优化server.xml的配置
  13. 面试题:反转字符串(leetcode344)
  14. lua 操作redis
  15. window 编译lua 5.3
  16. string转数组, 数组转ist, list转数组, 数组转string
  17. innodb表锁情况
  18. DDD领域模型企业级系统Linq的CRUD(四)
  19. 3D游戏开发之UE4中的集合:TSet容器
  20. Java链式异常

热门文章

  1. php学习知识点框架
  2. IIS 配置问题
  3. Django项目:CRM(客户关系管理系统)--07--03PerfectCRM创建基本数据02
  4. selenium 常见问题之 nknown error: call function result missing ‘value’
  5. OpenLayers图层
  6. sqlserver 一些基本的语法
  7. Python datetime模块的其他方法
  8. Linux ar命令介绍 和常用示例
  9. 【风马一族_SQL Server】
  10. node.js(二)各种模块