- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Shell学习笔记选编
好后悔在学校里,没有充分利用时间。一些基础知识、基础技能都没有涉及到。现在用到了,才感慨万千。希望从现在开始study,还来得及。好的,既然觉悟了,那就从Shell基础开始吧。
1、Shell简介
①、Shell既是一种命令语言,又是一种程序设计语言。
作为命令语言,它交互式地解释和执行用户输入的命令;
作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
②、Shell有两种执行命令的方式:
交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条。
批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。
2、Shell的种类
Shell脚本解释器有bash、sh、csh、ksh等。
bash是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的???写,内部命令一共有40个。
3、编译型语言和解释性语言
编译型语言:C、C++、java等。
预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。
目标代码接近计算机底层,故执行效率高。
解释性语言:awk、Perl、Python、Ruby与Shell,也被称为脚本语言。
执行这类程序时,解释器(interpreter)需要读取我们编写的源代码(source code),并将其转换成目标代码(object code),再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降。
4、Shell的优点:
简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂的操作。
可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。
开发容易:可以在短时间内完成一个功能强大又妤用的脚本。
5、Shell注释
新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php。
Shell 注释:
以“#”开头的行就是注释,会被解释器忽略。sh里没有多行注释,只能每一行加一个#号。
如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。
6、Shell的运行方式
#!/bin/bash ---“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。
echo Hello World ! ---echo命令用于向窗口输出文本。
运行脚本有两种方式:
作为可执行程序:
chmod +x ./test.sh #使脚本具有执行权限, “./”表示在当前目录找。
./test.sh #执行脚本
注意,一定要写成./test.sh,而不是test.sh。运行其它二进制的程序也一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。
作为解释器参数:
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
/bin/sh test.sh
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也与前面的没关系。
7、Shell 变量
自定义变量:
1、your_name=mozhiyan ---- 变量名和等号之间不能有空格
2、echo $your_name -----“$”表示使用变量
3、echo ${your_name} ---- 推荐使用
--2、3是一个意思。变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
只读变量:将变量定义为只读变量,只读变量的值不能被改变
readonly your_name
删除变量:删除的是变量的值。变量将没有任何输出。
unset variable_name
变量类型
运行shell时,会同时存在三种变量:
1) 局部变量:局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量:所有的程序,包括shel
文档评论(0)