一、shell是什么?
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。
二、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)等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了。在本文中,我们关注的重点是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell。在一般情况下,人们并不区分 Bourne Shell和Bourne Again Shell,所以,在下面的文字中,我们可以看到#!/bin/sh,它同样也可以改为#!/bin/bash。
三、shell脚本的基本语法
写道
利用vi等文本编辑器编写Shell脚本的格式是固定的,如下:
#!/bin/sh
#comments
Your commands go here
首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程 序。如果首行没有这句话,在执行脚本文件的时候,将会出现错误。后续的部分就是主程序,Shell脚本像高级语言一样,也有变量赋值,也有控制语句。除第 一行外,以#开头的行就是注释行,直到此行的结束。如果一行未完成,可以在行尾加上",这个符号表明下一行与此行会合并为同一行。
编辑完毕,将脚本存盘为filename.sh,文件名后缀sh表明这是一个Bash脚本文件。
#!/bin/sh
#comments
Your commands go here
首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程 序。如果首行没有这句话,在执行脚本文件的时候,将会出现错误。后续的部分就是主程序,Shell脚本像高级语言一样,也有变量赋值,也有控制语句。除第 一行外,以#开头的行就是注释行,直到此行的结束。如果一行未完成,可以在行尾加上",这个符号表明下一行与此行会合并为同一行。
编辑完毕,将脚本存盘为filename.sh,文件名后缀sh表明这是一个Bash脚本文件。
执行脚本要先将脚本文件的属性改为可执行的:
chmod +x filename.sh
常见执行脚本的方法是:
1)作为可执行程序
./filename.sh
注意,一定要写成 ./filename.sh,而不是 filename.sh,运行其它二进制的程序也一样,直接写filename.sh,linux 系统会去 PATH 里寻找有没有叫filename.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成filename.sh 是会找不到命令的,要用 ./filename.sh 告诉系统说,就在当前目录找。
2)作为解释器参数
/bin/sh filename.sh
chmod +x filename.sh
常见执行脚本的方法是:
1)作为可执行程序
./filename.sh
注意,一定要写成 ./filename.sh,而不是 filename.sh,运行其它二进制的程序也一样,直接写filename.sh,linux 系统会去 PATH 里寻找有没有叫filename.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成filename.sh 是会找不到命令的,要用 ./filename.sh 告诉系统说,就在当前目录找。
2)作为解释器参数
/bin/sh filename.sh
四、第一个helloworld.sh
#!/bin/bash
echo 'hello world'
echo 'hello world'
[imix@localhost shell]$ chmod +x helloworld.sh
[imix@localhost shell]$ ./helloworld.sh
hello world
[imix@localhost shell]$ /bin/sh helloworld.sh
hello world
hello world
[imix@localhost shell]$ /bin/sh helloworld.sh
hello world
相关推荐
【linux学习笔记-16】shell管道重定向程序的实现.doc 【linux学习笔记-1】使用GDB调试简单的用户程序.doc 【linux学习笔记-2】父子进程共享文件描述符.doc 【linux学习笔记-3】文件操作(stat,chmod,umask).doc ...
linux运维学习笔记:Shell变量
shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识
linux运维学习笔记:Shell脚本书写规范
【linux学习笔记-1】使用GDB...【linux学习笔记-16】shell管道重定向程序的实现 【linux学习笔记--17】POSIX IPC——消息队列 【linux学习笔记--18】POSIX IPC——信号量 【linux学习笔记--19】POSIX IPC——共享内存
学习linux的笔记,发到博文了,鉴于文档方便保存和查阅,发出来,免费的哈 博文来自http://blog.csdn.net/wklken,共12篇,类似手册,可快速练习和查阅,容易上手 文档列表: Linux笔记——vim常用操作及扩展补充...
Linux学习笔记,Linux基础命令,shell脚本,正则表达式等学习笔记,欢迎下载!!
linux运维学习笔记:Shell脚本调试
linux运维学习笔记:Shell生成随机数的方法
linux运维学习笔记:Shell前言
linux运维学习笔记:Shell函数
本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...
我自己看完韩顺平老师在尚硅谷发布的新版的Linux的视频...网上看到了别的网友分享的其他资源的学习笔记,下载下来看了之后感觉还有可以优化的地方,之后也会把其他的笔记整理好上传下来,不过最重要的是看完后要实践。
linux运维学习笔记:Shell变量的数值运算
linux运维学习笔记:Shell条件语句
学习笔记:LINUX与UNIX_Shell编程指南
LINUX学习笔记,包括各种命令用法,认识SHELL,帐号管理等等...
Linux学习笔记,常用命令,命令选项注释,简单shell编程
linux运维学习笔记:企业Shell面试题总结-1
Linux shell是学习Linux必须掌握的脚本之一,该文档为本人学习Shell脚本时总结的一些基础知识,包括Shell的语法、简单示例和总结,欢迎下载学习。