本文共 2292 字,大约阅读时间需要 7 分钟。
Shell的工作是:执行命令、Shell支持Postix标准。
2、命令名称是命令行的第一个项目,通常后面会跟选项以及参数。
3、选项的开关是破折号(——)或者减号(-),后跟字母,选项是可有可 无的,
注:使用“&”符号则Shell将后台执行前面的命令,意味着shell不用等到命令完成就可以执行下一条命令。 煮酒品茶:这个还是比较好理解的,最开始品茶竟然不知道破折号怎么打,这时候同事就派上用场了。破折号一般用于软件安装定义目录居多,也就是外部命令最常用的。 1、内建命令 - 由Shell本身所执行的命令。如cd、read、test、echo、printf等。
2、Shell函数 - 是功能健全的一系列程序代码,以Shell语言写成,可以像命令一样被引用。如if else 赋值操作一样。
3、外部命令 - 是由Shell的副本执行的命令,模式为父Shell启动子Shell然后由子Shell启动新程序,处理完之后交由父Shell执行。
规则:每个变量只有一个值,变量可以为空(null)值,首字母必须是字母或下划线,内容可以是任意长度。
赋值方式:变量名称=字符(中间不要有空格),如果需赋值的内容中需要带空格那么需要带引号,需要取变量时可以用美刀($)加变量名称来取。
煮酒品茶:我自己记这些定义记得我烦的很啊,但是真正理解后想想又非常简单。一定需要记住这些规则,记住了你以后要少翻很多资料。讲点好玩的吧。很多的脚本第一行是 #!/bin/bash,知道为什么第一行是这个吗?不知道吧,我来告诉你咯,如果没有这一句,当你赋于写运行权限时运行这个程序,程序会先交由内核来处理,而内核知道处理编译程序,但一看你不是编译程序,那么他就认为是个Shell,又丢给了shell来执行。我们再回头看下#!/bin/bash就非常明了了,又有人问了,在Shell里面#不都是用来注释的吗?对确实,但是在脚本里,第一行是预留的,如果有#!/bin/bash那么他就直接认定你为一个Shell就不交由内核来处理。我们来构造着玩玩吧。先是#! /bin/bash 加了一个空格,我们会发现其实没区别,但是从Linux流程上来讲他可是有区别的啦,当第一行遇到空格时Shell就停止了检索。这时还是先交内核然后再还给Shell,所以不能有空格啦。(测试发现#!后面加空格也没事,估计是现在标准升级过了吧。还有就是这一行redhat系列的是最多支持127个字符咯,现在有没有升就不知道了。以后如果搞多了提示出错至少知道这里也会出问题的。)再来构造一个别的可执行cat程序啦,来试试是什么感觉? - [root@localhost test]# ./ts
- #!/bin/cat
- hello 51CTO
看到没咯?第一行定义他找/bin/cat的麻烦,流程就变成这样了,执行ts,ts找/bin/cat来执行ts这个脚本。
- [root@localhost test]# cat ts
- #!/bin/cat
- hello 51CTO
那么这两个显示的就是一样咯。是不是很好玩?再来玩,SH的权限要大于bash喔,哈哈,运行程序直接sh 程序名,bash 程序名也是可以的啦。
- [root@localhost test]# ll /bin/sh
- lrwxrwxrwx 1 root root 4 Apr 25 22:42 /bin/sh -> bash
- [root@localhost test]# ll /bin/bash
- -rwxr-xr-x 1 root root 768664 Jul 22 2011 /bin/bash
玩完了做点正事。介绍两个命令who与cat 其实也就是跟着书上的进程走的。但原书的命令参数好像有问题。不过我有Linux查询宝典啦。
- -a : 显示所有信息
- -b : 显示系统最后一次重启的时间
- -d : 显示已失效的保存
- -H : 显示标题栏
- -i : 显示系统闲置时间
- -l : 只显示行数
- -m : 只显示自己登陆的相关信息
- -q : 只显示登录系统的用户名称与总人数
- -r : 显示当前的执行等级
- -t : 显示最后一次修改时钟的时间
- -h : 不要显示标题列
- -u : 显示用户已闲置的时间
- wc作用: 字数计算
- wc语法:wc [选项] [文件]
- -c : 统计字节数。
- -l : 统计行数。
- -w : 统计字数。
煮酒品茶,who百度无果谷哥无果,自己敲的,累死,至于原作者为什么要拿who和wc放一起讲,应该是觉着都是w吧,而且wc不能单独使用,所以就组合咯。作用在于啥呢, 还有很多,基本上按表就可以一一写出。who这个命令着重于安全一点。而wc则是侧重于查询文件的一点信息。如字节数啊,行数啊,字数啊,等等,如何利用就看你的咯
总结:我们总了,SHell的格式,Shell识别的命令,变量以及变量的规则。还讲了两个命令who与wc,现在回想一下还记得多少? 本文转自 煮酒品茶 51CTO博客,原文链接:http://blog.51cto.com/cwtea/849534,如需转载请自行联系原作者