shell脚本s(shell脚本ssh登录并执行命令)

shell脚本是什么?

执行命令或程序语句是通过程序文件而不是命令行,那这个程序被称为Shell脚本。如果Shell脚本内置很多命令、语句及循环控制,然后一次性执行完毕,这种通过文件执行脚本的方式称为非交互方式。用户可以在Shell脚本中输入一系列命令及命令语句组合。这些命令、变量和流程控制语句等有机地结合在一起,就形成一个功能强大的Shell脚本。

如何运行shell脚本

编写好的shell脚本(如:test),可以采取两种方式进行运行:\x0d\x0a一、 $ sh test\x0d\x0a一般不采用这种调用方式,尤其不采用“shtest”的调用方式,因为这种方式将禁止shell读取标准输入。\x0d\x0a也可以采用 $ ksh test\x0d\x0a这种方式要求shell具有“可读”的访问权限。\x0d\x0a二、直接运行可执行的shell脚本之前,首先应使用下列chmod命令,把shell脚本文件设置为可执行的文件。\x0d\x0achmod 755 test(除文件属主可写之外,每个用户均具有读和可执行的访问权限)\x0d\x0achmod +rx test(同上)\x0d\x0achmod u+rx test(只有文件属主具有读和执行的访问权限)\x0d\x0a按照上述要求设置shell脚本文件的访问权限后,可采用下列方式,直接运行shell脚本了。\x0d\x0a1、test(如果命令检索路径包含当前目录)\x0d\x0a2、http://192.168.110.72/003/test(如果命令减缩路径不包含当前目录)\x0d\x0a*说明: sh test 方式调用一个shell叫蹦可能会禁止某些shell特定的扩展功能,因而可能引起脚本无法正确执行。

什么是shell脚本

操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解

释你的输入,并且处理各种各样的操作系统的输出结果。shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输

入,并且可以立即得到响应),或者以shellscript(非交互)方式执行。shellscript是放在文件中的一串shell和操作系统命令,它们可以被

重复使用。本质上,shellscript是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器,类似于DOS下的command.com

。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourneshell(sh)和Cshell(csh)。

交互式shell和非交互式shell交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交

互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。shell也可以运行在另外一种模式:非

交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

shell的类型在UNIX中主要有两大类shellBourneshell(包括sh,ksh,andbash)Bourneshell(sh)Kornshell(ksh)BourneAgain

shell(bash)POSIXshell(sh)Cshell(包括cshandtcsh)Cshell(csh)TENEX/TOPSCshell(tcsh).

附:LINUX系统的shell原理

Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。

shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向

Linux传递命令时,内核会做出相应的反应。shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用

程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

第七章 SHELL脚本

在linux里可以直接使用shell脚本进行管理,shell就是命令解释器,把用户的命令翻译成机器语言,在把机器语言翻译成人类语言返回给用户。

shell有Bshell和Cshell区分,经常在linux里面用的shell都是Bshell,Bshell和Cshell完全不兼容。我在Centos里面看见支持的几种shell解释器有sh,bash,csh。然后用的最多的就是base(标准shell)。

shell脚本可以添加执行权限,然后在base命令界面直接输入脚本路径即可执行;所有的脚本开头要声明脚本shell,常见的声明是#!/bin/bash,其他的还有#!/bin/sh,#!/bin/csh

写第一个shell脚本吧

可以使用alias命令查看系统当前的别名,也可以用alias 别名=‘真实命令’ 来执行;

重定向输出是将输出到标准输出设备的数据重新定向到另一个地方;

将标准(键盘)输入重定向到其他一个设备上;

格式:命令1 | 命令2

表示把命令1的执行结果当成命令2的执行条件

跟正则表达式不一样啊,刚才的grep -P就是使用正则,但是这里通配符比较简单啊。

用引号表示,其中单引号标识不解析字符串中的特殊字符,双引号则解析特殊字符。

如果字符串中有存在$(ls)这种,那么这个表示ls命令的执行结果啊

当然这也可以用\进行转义

109人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册