导航:首页 > 程序命令 > rtshell怎样执行命令

rtshell怎样执行命令

发布时间:2024-04-17 16:08:44

1. 什么是shell命令windows系统也有shell命令吗

Shell(也称为壳层)在计算机科学中指“为用户提供用户界面”的软件,通常指的是命令行界面的解析器。一般来说,这个词是指操作系统中提供访问内核所提供之服务的程序。Shell也用于泛指所有为用户提供操作界面的程序,也就是程序和用户交互的层面。因此与之相对的是内核(英语:Kernel),内核不提供和用户的交互功能。

不过这个词也拿来指应用软件,或是任何在特定组件外围的软件,例如浏览器或电子邮件软件是HTML排版引擎的Shell。Shell这个词是来自于操作系统(内核)与用户界面的外层界面。

通常将shell分为两类:命令行与图形界面。命令行壳层提供一个命令行界面(CLI);而图形壳层提供一个图形用户界面(GUI)。

[Wikipedia:壳层]

==========================

虚拟终端机(英语:Terminal emulator)是在个人电脑上虚拟的一个终端以及为此目的而写的软件。虚拟终端的目的是达到个人电脑及其用户能够与大型计算机的连接。一般来说需要连接的大型计算机是IBM的大型计算机或者所谓的超小型计算机(过去往往是迪吉多的VAX)。

虚拟终端使得个人电脑的用户可以直接使用他的个人电脑来与大型计算机联系,而不必使用专门的终端。

通过虚拟终端的软件虚拟终端还可以扩展大型计算机的标准终端的功能,通过虚拟终端不但可以将个人电脑上的数据传递给大型计算机,而且还可以将大型计算机的数据传递给个人电脑,并在个人电脑上继续加工。

一般大型计算机的终端是字母式的输入和输出接口,因此一个虚拟终端至少需要一个能够模拟这样的字母式(比如ASCII)输入和输出接口的能力。最常见的平台是图像式的用户表面。要使得新的、图像式的程序能够使用老的字母式的或者没有图像式输入和输出能力的程序也需要虚拟终端。

现代的大型计算机也内部使用虚拟终端,这样它们可以向老的、需要终端的程序假装一个终端,而实际上它则将程序的显示转到显卡上。比如Linux以及其它大多数基于个人电脑的类似Unix的操作系统假装有六至十个这样的“虚拟”的终端。

[Wikipedia:虚拟终端]

==========================

Windows命令提示符(cmd.exe)是Windows NT下的一个用于运行Windows控制台程序或某些DOS程序的壳层程序;或在Windows CE下只用于运行控制台程序的壳层程序。它被用于替代Windows 9x系统中所提供的COMMAND.COM和“MS-DOS提示符”。命令提示符的最初版本由Therese Stowell开发。

[Wikipedia:命令提示符]

==========================

PowerShell(包括Windows PowerShell和PowerShell Core)是微软公司开发的任务自动化和配置管理框架,由.NET Framework和.NET Core是构建的命令行界面壳层相关脚本语言组成,最初仅Windows组件,后于2016年8月18日开源并跨平台支持。[3]

在PowerShell中,管理任务通常由cmdlets(发音为command-lets)执行,这是执行特定操作的专用.NET类。可以将cmdlet集合至脚本、可执行文件(一般是独立应用程序)中,或通过常规.NET类(或WMI / COM对象)实例化。[4][5]通过访问不同数据存储中的数据由PowerShell运行,如资源管理器或注册表。

[Wikipedia:Windows PowerShell]

==========================

Windows shell是Microsoft Windows操作系统的图形用户界面。Windows shell易于识别的元素包括桌面、任务栏、开始菜单、任务切换器和自动播放等特征。在某些版本的Windows上,还包括Flip 3D和魅力(charms)等功能。在Windows 10中,Windows Shell Experience Host界面可以驱动视觉效果,如“开始”菜单,“操作中心”和“任务栏”、Task View/Timeline。另外,Windows shell还实现了一个shell命名空间,该命名空间使Windows上运行的计算机程序能够通过shell对象架构访问计算机的资源。“桌面”是层次结构的顶级对象,在它之下有一些存储在磁盘上的文件和文件夹,以及一些内容为虚拟或动态创建的特殊文件夹,如垃圾箱、控制面板、我的计算机、我的网络位置等等。

基本上讲,Shell是由文件夹组成的,文件夹是一个包含有子元素的容器,包括子文件夹,这些元素通常称为文件夹项。根文件夹称为‘桌面’,其子项包括‘我的计算机’,‘网上邻居’,‘回收站’,和其他可能的项,所有这些文件夹的集合称之为Shell的命名空间。文件夹实际上是一个Shell对象,它的行为被编码成一个COM模块,向Windows Shell暴露公共的接口。通过连接,文件夹可以告诉Shell怎样设计它的内容,使用什么样的图标显示,采用什么文字来描述。文件对象是一个包含在普通文件夹中的项—文件、记录、内存块、连接的设备等。‘文件夹项’、‘文件夹元素’和‘文件对象’这些术语是等价的。任何文件夹的内容都是通过一个对象调用Shell viewer显示在Windows explorer.exe中的。每一个文件夹都定义了他自己的Shell viewer对象,并且所有相关于这个用户接口的任务都指派到这个对象上。

从概念上讲,桌面是所有Windows Shell对象的父对象,即宿主对象。就实现方式而言,桌面是一个系统定义窗口类的特殊窗口(命名为#32769),并且是所有窗口的祖先窗口。那些导出应用的顶层窗口一般而言都是桌面的子窗口。[1]

主要的Windows Shell部件就是任务栏,它实际上就是由explorer.exe进程所拥有的一个窗口。当终止explorer.exe进程的时候,都将引起任务条的消失和重新显现。每当任务栏重新显现的时候,它注册一个具有不同HWND的新窗口。任务条拥有“开始”按钮的窗口,在托盘区域有时钟和类似按钮的控件,表示正在运行的应用。任务条实际上与窗口一样,可以在其上作任何窗口上可以做的操作如移动、隐藏和子类化等。

explorer.exe是一个扮演着系统外壳角色的应用程序。当说到外壳扩展的时候,就是由explorer.exe感知的、装入的并最终执行的代码块。explorer.exe可以被看作为一个微型的窗口开发环境:它有自己的函数和对话框;允许写特殊的与已存在的体系集成的应用程序;能包容应用和文档。甚至可以解释任何活动的脚本兼容语言的脚本(VBScript,JScript,Perl,等等)。采用COM接口和进程内服务器(实质上的DLL)

在Win16环境中,与Shell唯一的通讯方式是通过动态数据交换(DDE)。

[Wikipedia:Windows Shell]

2. 阐述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/updatedb1. 分钟 (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环境的不同而不同。"通配符":* 匹配任何位置? 匹配单个字符[] 匹配的字符范围或列表 例如:$ls [a-c]*将列出以a-c范围内字符开头的所有文件$ls [a,m,t]*将列出以e,m或t开头的所有文件"程序命令" :当用户输入命令后,Shell读取环境变量$path(一般在用户自己的.profile中设置),该变量包含了命令可执行文件可能存在的目录列表。shell从这些目录中寻找命令所对应的可执行文件,然后将该文件送给内核执行。"输入输出重定向及管道" :重定向的功能同DOS的重定向功能:">" 重定向输出"<" 重定向输入而管道符号,是unix功能强大的一个地方,符号是一条竖线:"|",用法:command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2,例如:$ls -s|sort -nr|pg该命令列出当前目录中的所有文件,并把输出送给sort命令作为输入,sort命令按数字递减的顺序把ls的输出排序。然后把排序后的内容传送给pg命令,pg命令在显示器上显示sort命令排序后的内容。"维护变量" :Shell可以维护一些变量。变量中存放一些数据供以后使用。用户可以用"="给变量赋值,如: $lookup=/usr/mydir该命令建立一个名为lookup的变量并给其赋值/usr/mydir,以后用户可以在命令行中使用lookup来代替/usr/mydir,例如:$echo $lookup结果显示:/usr/mydir为了使变量能被子进程使用,可用exprot命令,例如:$lookup=/usr/mydir$export lookup"运行环境控制" :当用户登陆启动shell后,shell要为用户创建一个工作的环境,如下:1>当login程序激活用户shell后,将为用户建立环境变量。从/etc/profile和.profile文件中读出,在这些文件中一般都用$TERM变量设置终端类型,用$PATH变量设置Shell寻找可执行文件的路径。2>从/etc/passwd文件或命令行启动shell时,用户可以给shell程序指定一些参数,例如"-x",可以在命令执行前显示该命令及其参数。后面详细介绍这些参数。"shell编程" :本文主要介绍的内容。shell本身也是一种语言(*可以先理解为unix命令的组合,加上类C的条件,循环等程序控制语句,类似dos批处理,但要强大的多),用户可以通过shell编程(脚本,文本文件),完成特定的工作。SHELL变量下面我们详细的介绍Bourne Shell的编程:自从贝尔实验室设计了BourneShell。从那时起许多厂商根据不同的硬件平台设计了许多版本得unix。但在众多版本的unix中,Bourne Shell一直保持一致。1>Bsh的启动:用户在登陆后,系统根据文件/etc/passwd中有关该用户的信息项启动Shell。例如某用户在passwd中的信息项为:ice_walk:!:411:103:Imsnow ,ice_walk:/home/ice_walk:/bin/bsh则表明,用户名是ice_walk等信息,在最后一项"/bin/bsh"表明用户的sh环境类型是bsh,于是系统启动之。在启动或执行(包括下面我们要讲的shell程序--脚本)过程中可以使用以下一些参数,我们一一说明:-a 将所有变量输出-c "string"从string中读取命令-e 使用非交互式模式-f 禁止shell文件名产生-h 定义-i 交互式模式-k 为命令的执行设置选项-n 读取命令但不执行-r 受限模式-s 命令从标准输入读取-t 执行一命令,然后退出shell-u 在替换时,使用未设置的变量将会出错-v 显示shell的输入行-x 跟踪模式,显示执行的命令许多模式可以组合起来用,您可以试试了,但-ei好象不行,你说why呢?使用set可以设置或取消shell的选项来改变shell环境。打开选项用"-",关闭选项用"+",多数unix允许打开或关闭a、f、e、h、k、n、uv和x选项。若显示Shell中已经设置的选项,执行:$echo $-Bsh中每个用户的home目录下都有一个.profile文件,可以修改该文件来修改shell环境。为了增加一个可执行文件的路径(例如/ice_walk/bin),可以把下面代码加入.profile中PATH=$PATH:/ice_walk/bin;exprot PATH.profile中shell的环境变量意思如下:CDPATH 执行cd命令时使用的搜索路径HOME 用户的home目录IFS 内部的域分割符,一般为空格符、制表符、或换行符MAIL 指定特定文件(信箱)的路径,有UNIX邮件系统使用PATH 寻找命令的搜索路径(同dos的config.sys的 path)PS1 主命令提示符,默认是"$"PS2 从命令提示符,默认是">"TERM 使用终端类型2>Bsh里特殊字符及其含义在Bsh中有一组非字母字符。这些字符的用途分为四类:作为特殊变量名、产生文件名、数据或程序控制以及引用和逃逸字符控制。他们可以让用户在Shell中使用最少的代码完成复杂的任务。*> Shell变量名使用的特殊字符$# 传送给命令Shell的参数序号$- 在Shell启动或使用set命令时提供选项$? 上一条命令执行后返回的值$$ 当前shell的进程号$! 上一个子进程的进程号$@ 所有的参数,每个都用双括号括起$* 所有参数,用双括号括起$n 位置参数值,n表示位置$0 当前shell名*>产生文件名的特殊字符包括"*","?","[]",上面讲过,不再多说。*>数据或程序控制使用的特殊字符>(file) 输出重定向到文件中(没有文件则创建,有则覆盖)>>(file) 输出重定向到文件中(没有则创建,有则追加到文件尾部)<(file) 输入重定向到文件 ; 命令分割符| 管道符 & 后台运行(例如:sleep 10 &) ` ` 命令替换,重定向一条命令的输出作为另一命令的参数。*>对于引用或逃逸的特殊字符Bsh用单引号' '和双引号" "将特殊字符或由空白分隔的字引用起来组成一个?

3. 如何执行shell脚本其中一条命令

方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:

复制代码代码如下:

cd /data/shell

./hello.sh

./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。

方法二:以绝对路径的方式去执行bash shell脚本:

复制代码代码如下:

/data/shell/hello.sh

方法三:直接使用bash 或sh 来执行bash shell脚本:

复制代码代码如下:

cd /data/shell

bash hello.sh



复制代码代码如下:

cd /data/shell

sh hello.sh

注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。

方法四:在当前的shell环境中执行bash shell脚本:

复制代码代码如下:

cd /data/shell

. hello.sh



复制代码代码如下:

cd /data/shell

source hello.sh

前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

4. shell鑴氭湰涓镐庝箞镓ц屽彉閲忛噷镄勫懡浠わ纻锛堟墽琛岄梾棰樿ˉ鍏呬腑鍙橀噺v_endcomm锛

链変袱绉嶆柟寮:
(1) 鎶妚_endcomm閲岄溃镄勫懡浠ゅ叏閮ㄦ嬁鍑烘潵, 鍗崇洿鎺
echo $v_full" | sed '1,/)/d' | sed 's/,$//'"

(2) 鎶娄笂杩板懡浠ゅ仛鎴愪竴涓鍑芥暟, 鍑芥暟钖崭负v_endcomm
v_endcomm(){
echo $v_full" | sed '1,/)/d' | sed 's/,$//'"
}
铹跺悗璋幂敤v_endcomm鍗冲彲

5. 如何用SHELL命令运行一个文件

1、Shell是命令解释器,所执行的文件有两种,一种是基于ELF文件格式的可执行文件,一种是基于Shell脚本格式的脚本文件。

2、不管是可执行文件还是shell脚本,如果存在于PATH变量所指明的路径中,shell会自动寻找相应的可执行文件,用户只需要输入可执行文件名或者脚本名即可执行。

3、如果可执行文件或者Shell脚本的存放位置不在PATH变量所指明的路径中,则需要通过".”来执行,比如下面的C语言写的hello world程序,需要输入./t才可以被shell运行。

6. shell脚本如何重复执行命令

curl补上了-k,跳过https的证书验证

watch -d -n 3 "curl -k -sS --connect-timeout 2 -s 2 'https://www..com'"

阅读全文

与rtshell怎样执行命令相关的资料

热点内容
周转材料核算法 浏览:354
学nodejs还是php好 浏览:275
电信营业厅app怎么买q币 浏览:917
linux退出登陆 浏览:534
python查找相似图片的代码 浏览:334
赵丽pdf 浏览:659
如何苹果手机app不要自动更新 浏览:977
pythonflask路线教程 浏览:256
程序员职业有哪些好处 浏览:711
大都会软件app如何扫码 浏览:436
单片机0x38 浏览:756
程序员浪漫工作 浏览:329
php几分钟前 浏览:308
项目编译及运行 浏览:894
程序员的基本功 浏览:524
遗传算法排班 浏览:291
如何加密金融安全网 浏览:32
家里的wifi太卡了怎么样自己加密 浏览:235
华为链路聚合命令 浏览:427
apache自动运行php 浏览:521