×

shell语言教程

shell语言教程(阐述shell程序的执行和跟踪方法)

admin admin 发表于2024-05-09 12:15:53 浏览23 评论0

抢沙发发表评论

其实shell语言教程的问题并不复杂,但是又很多的朋友都不太了解阐述shell程序的执行和跟踪方法,因此呢,今天小编就来为大家分享shell语言教程的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

阐述shell程序的执行和跟踪方法

Shell是什么?  任何发明都具有供用户使用的界面。UNIX供用户使用的界面就是Shell(DOS的command熟悉吧,但UNIX的要强大的多)。  Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。  为了不同的需要,UNIX提供了不同的Shell。现在的UNIX大部分都支持BourneShell,以下教程就以BourneShell(Bsh)为例,一步步的领略UNIX Shell的强大功能,占先其强大魅力,达到更方便灵活的管理、应用UNIX的目的。  1.UNIX内核和Shell的交互方法  启动UNIX时,程序UNIX(内核)将被调入计算机内存,并一直保留在内存中直到机器关闭。在引导过程中,程序init将进入后台运行一直到机器关闭。该程序查询文件/etc/inittab,该文件列出了连接终端的各个端口及其特征。当发现一个活动的终端时,init程序调用getty程序在终端上显示login等登陆信息。(username和passwd),在输入密码后,getty调用login进程,该进程根据文件/etc/passwd的内容来验证用户的身份。若用户通过身份验证,login进程把用户的home目录设置成当前目录并把控制交给一系列setup程序。setup程序可以是指定的应用程序,通常setup程序为一个Shell程序,如:/bin/sh 即Bourne Shell(command出来了,呵呵)。  得到控制后,Shell程序读取并执行文件/etc/.profile以及.profile。这两个文件分别建立了系统范围内的和该用户自己的工作环境。最后Shell显示命令提示符,如$。(这是以bsh为例,若是csh,为.cshrc,ksh为.kshrc,bash为.bashrc等等) 注不妨把/etc/.profile和.profile看成DOS的autoexec.bat 或config.sys文件)  当shell退出时,内核把控制交给init程序,该程序重新启动自动登陆过程。有两种方法使shell退出,一是用户执行exit命令,二是内核(例如root用kill命令)发出一个kill命令结束shell进程。shell退出后,内核回收用户及程序使用的资源。  用户登陆后,用户命令同计算机交互的关系为:命令进程---》Shell程序---》UNIX内核---》计算机硬件。当用户输入一个命令,如$ls,  Shell将定位其可执行文件/bin/ls并把其传递给内核执行。内核产生一个新的子进程调用并执行/bin/ls。当程序执行完毕后,内核取消  该子进程并把控制交给其父进程,即Shell程序。例如执行:  $ps  该命令将会列出用户正在执行的进程,即Shell程序(下来详细说说,别急现在)和ps程序。若执行:  $sleep 10 & $ps  其中第一条命令将产生一个在后台执行的sleep子进程。ps命令执行时会显示出该子进程。  每当用户执行一条命令时,就会产生一个子进程。该子进程的执行与其父进程或Shell完全无关,这样可以使Shell去做其他工作。(Shell只是把用户的意图告诉内核,然后该干嘛干嘛) 现在windows有个计划任务(在固定的时间,日期自动执行某任务),其实UNIX很早就有这个功能了,也就是所谓的Shell的自动执行。一些UNIX资源,如cron可以自动执行Shell程序而无需用户的参与,(这个功能好象在/var/spool/crotab目录里)。  Crontab 程序对于系统管理员来说是非常有用的。Cron服务用于计划程序在特定时间(月、日、周、时、分)运行。我们以root的crontab 为例。根用户的crontab 文件放在 /var/spool/crontab/root 中,其格式如下:  (1)  (2)  (3)  (4)  (5)  (6)  0   0   *   *   3   /usr/bin/updatedb  1. 分钟 (0-60)  2. 小时 (0-23)  3. 日 (1-31)  4. 月 (1-12)  5. 星期 (1-7)  6. 所要运行的程序  2.Shell的功能和特点  1》命令行解释  2》使用保留字  3》使用Shell元字符(通配符)  4》可处理程序命令  5》使用输入输出重定向和管道  6》维护一些变量  7》运行环境控制  8》支持Shell编程  对于"命令行解释"就不多说了,就是在shell提示符(例如:"$","%","#"等)后输入一行unix命令,Shell将接收用户的输入。  "使用保留字":Shell有一些具有特殊意义的字,例如在Shell脚本中,do,done,for等字用来控制循环操作,if,then等控制条件操作。保留字随Shell环境的不同而不同。  "通配符":* 匹配任何位置  ? 匹配单个字符  ",上面讲过,不再多说。  *》数据或程序控制使用的特殊字符  》(file) 输出重定向到文件中(没有文件则创建,有则覆盖)  》》(file) 输出重定向到文件中(没有则创建,有则追加到文件尾部)  《(file) 输入重定向到文件 ; 命令分割符| 管道符 & 后台运行(例如:sleep 10 &) ` ` 命令替换,重定向一条命令的输出作为另一命令的参数。  *》对于引用或逃逸的特殊字符  Bsh用单引号’ ’和双引号" "将特殊字符或由空白分隔的字引用起来组成一个?

编写一个shell脚本

IP=`ifconfig | grep "inet addr" | awk -F\: ’{print $2}’| awk ’{print $1}’| head -1`echo "本机IP是$IP"IPLIST=`echo $IP|awk -F. ’{print $1"."$2"."$3"."}’`for k in {1..255}doCHECKIP="$IPLIST$k"echo "check $CHECKIP"TMP=`ping -c1 $CHECKIP| grep "packet loss" | awk -F, ’{print $3}’| awk ’{print $1}’`if ; thenarp -a | grep "($CHECKIP)" 》》 goodhostelseecho $CHECKIP 》》 badhostfidone

文章分享结束,shell语言教程和阐述shell程序的执行和跟踪方法的答案你都知道了吗?欢迎再次光临本站哦!