SHELL编程
SHELL编程
·任何发明都具有供用户使用的界面。 LINUX供用 户使用的界面就是She(类似于DOS的 command)。 She.用户提供了输入命令和参数并可得到命令 执行结果的环境。 为了不同的需要,LNUX提供了不同的She 现在的LNUX大部分都支持 Bourne she,以下教 程就以 Bourne shell(Bsh)为例,一步步的领略 LINUX She的强大功能,占先其强大魅力,达到 更方便灵活的管理、应用LNUX的目的
• 任何发明都具有供用户使用的界面。LINUX供用 户使用的界面就是Shell(类似于DOS的command)。 Shell为用户提供了输入命令和参数并可得到命令 执行结果的环境。 • 为了不同的需要,LINUX提供了不同的Shell。 现在的LINUX大部分都支持BourneShell,以下教 程就以BourneShell(Bsh)为例,一步步的领略 LINUX Shell的强大功能,占先其强大魅力,达到 更方便灵活的管理、应用LINUX的目的
L|NUX内核和She的交互方法 启动LNUX时,程序 LINUX(内核)将被调入计算机内存 并一直保留在内存中直到机器关闭。在引导过程中,程 序ii将进入后台运行一直到机器关闭。该程序查询文 件/etc/ inittab,该文件列出了连接终端的各个端口及其 特征。当发现一个活动的终端时,ini程序调用get!y程 序在终端上显示lgin等登陆信息。( username和 passwd),在输入密码后,gety调用 login进程,该进程 根据文件/etc/ passwd的内容来验证用户的身份。若用户 通过身份验证, login进程把用户的home目录设置成当 前目录并把控制交给一系列 setup程序。 setup程序可以 是指定的应用程序,通常 setup程序为一个She‖程序, 如:/bin/sh即 Bourne shell
• LINUX内核和Shell的交互方法 • 启动LINUX时,程序LINUX(内核)将被调入计算机内存, 并一直保留在内存中直到机器关闭。在引导过程中,程 序 init将进入后台运行一直到机器关闭。该程序查询文 件/etc/inittab,该文件列出了连接终端的各个端口及其 特征。当发现一个活动的终端时,init程序调用getty程 序在终端上显示login等登陆信息。(username和 passwd),在输入密码后, getty调用login进程,该进程 根据文件/etc/passwd的内容来验证用户的身份。若用户 通过身份验证,login进程 把用户的home目录设置成当 前目录并把控制交给一系列setup程序。setup程序可以 是指定的应用程序,通常setup程序 为一个Shell程序, 如:/bin/sh 即Bourne Shell
·得到控制后,Shel程序读取并执行文件 etc/ profile以及 profile。这两个文件分别建 立了系统范围内的和该用户自己的工作环 境。最后Shel显示命令提示符,如$。(这 是以bsh为例,若是csh,为 chro,ksh 为 kshro,bash为 bashrc等等) 注:(不妨把/etc/, profile,和. profile看成 DOS的 autoexec. bat或 config. sys文件)
• 得到控制后,Shell程序读取并执行文件 /etc/.profile以及.profile。这两个文件分别建 立了系统范围内的和 该用户自己的工作环 境。最后Shell显示命令提示符,如$。(这 是以bsh为例,若是csh,为.cshrc,ksh 为.kshrc,bash为.bashrc等等) • 注:(不妨把/etc/.profile和.profile看成 DOS的autoexec.bat 或 config.sys文件)
当she退出时,内核把控制交给int程序,该 程序重新启动自动登陆过程。有两种方法 使She退出,一是用户执行ex命令,二是 内核例如root用kl命令)发出一个k命令结 束she进程。She退出后,内核回收用户 及程序使用的资源
• 当shell退出时,内核把控制交给init程序,该 程序重新启动自动登陆过程。有两种方法 使shell退出,一是用户执行exit命令,二是 内核(例如root用kill命令)发出一个kill命令结 束shell进程。shell退出后,内核回收用户 及程序使用的资源
用户登陆后,用户命令同计算机交互的关系为:命 令进程->Shel程序--> LINUX内核->计算机硬 件。当用户输入一个命令,如$ls,She将定位其 可执行文件bins并把其传递给内核执行。内核 生一个新的子进程调用并执行/bins。当程序执行 完毕后,内核取消该子进程并把控制交给其父进 程,即She程序。例如执行 Sps ·该命令将会列出用户正在执行的进程,即She 序和ps程序
• 用户登陆后,用户命令同计算机交互的关系为:命 令进程--->Shell程序--->LINUX内核--->计算机硬 件。当用户输入一个命令,如$ls, Shell将定位其 可执行文件/bin/ls并把其传递给内核执行。内核产 生一个新的子进程调用并执行/bin/ls。当程序执行 完毕后,内核取消 该子进程并把控制交给其父进 程,即Shell程序。例如执行: • $ps • 该命令将会列出用户正在执行的进程,即Shell程 序和ps程序
若执 °$ sleep10& Sps 其中第一条命令将产生一个在后台执行的 seep子进程。ps命令执行时会显示出该子 进程
• 若执行: • $sleep 10 & • $ps • 其中第一条命令将产生一个在后台执行的 sleep子进程。ps命令执行时会显示出该子 进程
每当用户执行一条命令时,就会产生一个 子进程。该子进程的执行与其父进程或 She完全无关,这样可以使She去做其他 工作。(She)是把用户的意图告诉内核) 现在 windows有个计划任务(在固定的时间, 日期自动执行某任务),其实LNU很早就有 这个功能了,也就是所谓的She的自动执 行
• 每当用户执行一条命令时,就会产生一个 子进程。该子进程的执行与其父进程或 Shell完全无关,这样可以使Shell去做其他 工作。(Shell只是把用户的意图告诉内核) 现在windows有个计划任务(在固定的时间, 日期自动执行某任务),其实LINUX很早就有 这个功能了,也就是所谓的Shell的自动执 行
She的功能和特点 命令行解释 使用保留字 使用Shel元字符(通配符) 可处理程序命令 使用输入输出重定向和管道 维护一些变量 运行环境控制 支持She编程
Shell的功能和特点 – 命令行解释 – 使用保留字 – 使用Shell元字符(通配符) – 可处理程序命令 – 使用输入输出重定向和管道 – 维护一些变量 – 运行环境控制 – 支持Shell编程
·对于"命令行解释"就不多说了,就是在 shell 提示符(例如:"$"%","#等)后输入一彳 LNUX命令,Shel将接收用户的输入
• 对于"命令行解释"就不多说了,就是在shell 提示符(例如:"$","%","#"等)后输入一行 LINUX命令,Shell将接收用户的输入