●为什么使用Shell编程?
简单快捷,适用性广
●什么是Shell?
Shell是用户和Linux系统之间的接口程序,你可以通过它输入命令以使操作系统执行。
●文件描述符0,1,2分别表示什么?
在Shell中, 0表示标准输入,1表示标准输出,2表示标准错误输出。
●>>符号的作用?
在文件后添加时,使用>>,如:ps >> output.txt,这样ps的结果会添加在output.txt文件的最后,而不会冲掉文件中原有的内容。
●Shell命令中常见2>&1,这是什么意思?
在Shell中,>符号常用来表示重定向输出,前面可用文件描述符表示重定向什么输出,默认为1(即标准输出),如果是重定向标准错误输出,则使用2>,后面如果为&1,则表示将标准错误输出重定向到与标准输出的同一位置。
●/dev/null的作用?
如果在Shell命令中,你希望把输出的结果丢弃,那么可以直接扔到Linux的垃圾桶里,/dev/null就是这样一个垃圾桶。例如:kill -l 214 > /dev/null
●怎样重定向输入?
在shell中重定向输入使用的是<符号,例如:more < ex.txt
●为什么需要管道?管道怎么使用?
Shell中管道(pipe)功能很强大,可用来链接命令,实现流水线操作。管道这个名字很形象,它就是命令之间的连接渠道。在使用管道时,你把前一个命令的输出和后一个命令的输入对应地接在一起就行了,使用的符号是“|”。例如:ps | sort | grep -v init | more
●Shell中的通配符
Shell中的通配符功能也挺强大的,主要有如下几类:
1)*:匹配任意字符
2)?:匹配单个字符
3)[集合]:匹配集合中的字符
4)[^集合]:匹配不在集合中的字符
5){}:匹配{}中的内容
●` `符号的作用
在Shell中,一对` `符号表示把包含其中的内容以Shell命令的方式执行,注意与普通引号之间的差别。例如:more `grep -l POSIX *`
●关于Shell脚本的写法
Shell脚本的编写需要注意如下基本要点:
1)第一行以注释开始,实际上这是一行特殊的注释,#!表示其后列出的是执行该脚本的程序,例如:#!/bin/bash,表示该脚本用/bin/bash程序来解释执行。
2)最后一行使用exit命令结束,以确保脚本能以正常方式退出。
●给Shell脚本赋予执行权限
刚编辑好的Shell脚本是不能直接运行的,如果你希望通过./shellfile的方式运行它,就需要给脚本赋予执行权限,通常的做法是:chmod +x shellfile,也可以根据不同的权限要求,对指定的用户授予权限,如:chmod 766 shellfile(另一种格式:chmod o+x shellfile),则该shellfile文件只有其所有者用户(owner)才能直接执行。