shell 脚本中执行重启完成后继续执行其它的命令

shell 脚本中执行重启完成后继续执行其它的命令,第1张

要用循环查询直到重启完成

#!/bin/bash

service >

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

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

[Wikipedia:壳层]

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

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

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

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

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

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

[Wikipedia:虚拟终端]

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

Windows命令提示符(cmdexe)是Windows NT下的一个用于运行Windows控制台程序或某些DOS程序的壳层程序;或在Windows CE下只用于运行控制台程序的壳层程序。它被用于替代Windows 9x系统中所提供的COMMANDCOM和“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 explorerexe中的。每一个文件夹都定义了他自己的Shell viewer对象,并且所有相关于这个用户接口的任务都指派到这个对象上。

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

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

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

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

[Wikipedia:Windows Shell]

文件系统 *** 作命令:

1 cat:可以显示文件的内容(经常和more搭配使用),或将多个文件合并成一个文件。

2 chgrp:用来改变文件或目录所属的用户组,命令的参数以空格分开的要改变属组的文件列表,文件名支持通配符,如果用户不是该文件的所有者,则不能改变该文件的所属组。

3 chmod:用于改变文件或目录的访问权限,该命令有两种用法:一种是使用图形化的方法,另一种是数字设置法。

4 chown:用来将指定用户或组为特定的所有者。用户可以设置为用户名或用户ID,组可以是组名或组ID。特定的文件是以空格分开的可以改变权限的文件列表,文件名支持通配符。

5 clear:用来清除终端屏幕。

6 cmp:用来比较两个文件的大小。

7 cp:(copy)可以将文件或目录复制到其他目录中,就如同Dos下的copy命令一样,功能非常强大。在使用cp命令时,只需要指定源文件名或目标目录即可。

8 cut:用来移除文件的部分内容。

9 diff:用来找出两个文件的不同之处。

10 du: 用来显示磁盘的剩余空间的大小。

11 file:用来显示文件的类型。

12 find:用来在目录中搜索文件,并执行指定的 *** 作。

13 head:只查看文件的头几行内容,而不必浏览整个文件。

14 ln:可以在文件之间创建链接,实际上是给某个文件指定一个访问它的别名。

15 less:用法与more类似,可以查看超过一屏的文件内容,不同的是less除了可以按空格键向下显示文件外,还可以利用方向键来滚动显示文件,要结束浏览,只要在less的提示符“:”后按Q即可。

16 locate:可用于查找文件,且比find命令的搜索速度快。

17 ls(list):用来显示当前目录中的文件和子目录列表。

18 mkdir(make directory):建立子目录。

19 more:用于显示内容超过一屏的文件,为了避免文件内容显示瞬间就消失,可以使用more命令让文件显示满一屏时暂停,在按下任意键的时候继续显示下一屏的内容。

20 rmkdir(remove directory):用来删除“空”的子目录或无用的目录文件。

21 mv(move):可以将文件以及目录移到其他位置,或更改文件以及目录的名称。

22 pico:可指定文本的编辑方式。

23 pwd(print working directory):可显示用户当前所在的目录。

24 rm:用来删除系统中过时或无用的文件,可以删除目录中的文件或目录本身,对于链接文件,原有文件保持不变。

25 sort:将文本文件自动分类。

26 stat:用于显示文件或文件系统的状态。

27 Strings:显示文件中要打印的字符串。

28 tail:输出文件的结尾。

29 touch:改变文件的时间戳。

30 umask:用于启动bash shell。

31 uniq:移除已分类文件中的重复文本行。

32 vi:启动vi文本编辑器。

33 wc:显示文件中字节、词组合文本行的数目。

34 whereis:查找特定目录下的原始程序,二进制程序或用户手册等文件的位置。

35 man:如果用户对某个命令想了解更详细的话,可使用此命令。

36 dd:复制一个文件。

37 df:查看一个文件系统的磁盘空间使用情况。

38 edquoat:设置用户与用户组的磁盘空间限制,即Windows系统中的配额。

39 fdformat:格式化软盘。

40 fdisk:执行Linux下的磁盘分区。

41 mkfs:建立一个Linux文件系统。

42 mkswap:创建一个Linux交换分区。

43 mount:挂载一个文件系统。

44 quota:限制和显示用户可用的磁盘空间。

45 swapon,swapoff:启用或取消设备和文件的交换页。

46 quotaon,quotaoff:启用或取消quota限制。

47 umount:取消文件系统的装备。

系统管理命令

1 finger:查询用户信息,也能查看默认的用户环境。

2 ftp:标准的文件传输协议的用户接口,是在网络上传输文件最简单有效的方法。

3 host:用于DNS查询。

4 hostname:用于显示或设置系统的主机名。

5 ifconfig:用于配置网卡接口。(可以使用down或up参数来禁用或启用某个网卡接口)

6 mail:发送和接收邮件。

7 netstat:显示网络连接、路由表和网络接口信息,用户可以知道目前那些网络连接正在运行。

8 ping:此命令用于测试本计算机和网络上其它的计算机是否相连。

9 rlogin:远程登陆命令,该命令与telnet命令很相似,允许用户启动远程系统的交互会话。

10 rcp:rcp(remote file copy)命令是远程文件复制命令,该命令用于在计算机之间复制文件,有两中格式,一种格式用于文件动文件的复制,另一种用于把文件或目录复制到其他文件目录中。

11 route:此命令用于显示或设置IP路由表。

12 tcpdump:此命令用于测试网络的通信量。

13 talk:此命令可用于事项网络用户的适时交谈,但是必须将双方系统的信息加入各自的/etc/hosts文件中,以相互识别。

14 telnet:此命令用于通过网络登陆远程计算机,如同 *** 作本地计算机一样。

15 wall:wall(write all)命令可以用于发送消息给登陆本机的用户。在发送消息时,可直接输入要发送的消息,也可以把文件当成消息发送。

16 wget:此命令用于Linux环境下从Internet上下载文件,支持>

Xshell作为专业的终端模拟器,可以用来登录Linux,从而通过命令来控制Linux系统,下面就学习具体 *** 作技巧。

打开电脑上的虚拟机,启动Linux系统,然后打开Xshell软件,连接上Linux系统,如下图所示。

 

图1:连接Linux

第一个命令:ls -l

ls全称是list,列出指定路径下的所有文件,-l表示显示文件的完整属性。

 

图2:查看文件命令

第二个命令:pwd

表示显示当前所在的目录,当我们 *** 作很多目录之前不知道当前目录所在时就可以用这个命令来查看。

 

图3:查看文件目录命令

第三个命令:三个管理时钟的命令

时钟分为硬件时钟和系统时钟,两个时间很可能不一致。date命令看到的是系统时钟,而其他两个则是硬件时钟。

 

图4:时钟命令

第四个命令:help

可以进行命令的执行帮助,还可以用man命令,直接查看命令的手册,不过help命令更加常用。

 

图5:帮助命令

第五个命令:passwd

用来修改当前的密码,输入这个密码后换行,然后重复输入两次新的密码即可完成密码的修改,如果不想修改了用快捷键Ctrl+c可以终止命令。

 

图5:密码命令

第六个命令: shutdown -h now

表示立即关机,这样我们就可以直接关闭Linux系统啦。

 

图6:关闭系统

以上就是给大家介绍的在Xshell中 *** 控Linux的常用命令,希望可以帮助大家更好地借助终端模拟器来控制Linux系统。

Shell是什么任何发明都具有供用户使用的界面。UNIX供用户使用的界面就是Shell(DOS的command熟悉吧,但UNIX的要强大的多)。Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。为了不同的需要,UNIX提供了不同的Shell。现在的UNIX大部分都支持BourneShell,以下教程就以BourneShell(Bsh)为例,一步步的领略UNIX Shell的强大功能,占先其强大魅力,达到更方便灵活的管理、应用UNIX的目的。1UNIX内核和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的autoexecbat 或configsys文件)当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 所要运行的程序2Shell的功能和特点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 PATHprofile中shell的环境变量意思如下:CDPATH 执行cd命令时使用的搜索路径HOME 用户的home目录IFS 内部的域分割符,一般为空格符、制表符、或换行符MAIL 指定特定文件(信箱)的路径,有UNIX邮件系统使用PATH 寻找命令的搜索路径(同dos的configsys的 path)PS1 主命令提示符,默认是"$"PS2 从命令提示符,默认是">"TERM 使用终端类型2>Bsh里特殊字符及其含义在Bsh中有一组非字母字符。这些字符的用途分为四类:作为特殊变量名、产生文件名、数据或程序控制以及引用和逃逸字符控制。他们可以让用户在Shell中使用最少的代码完成复杂的任务。> Shell变量名使用的特殊字符$# 传送给命令Shell的参数序号$- 在Shell启动或使用set命令时提供选项$ 上一条命令执行后返回的值$$ 当前shell的进程号$! 上一个子进程的进程号$@ 所有的参数,每个都用双括号括起$ 所有参数,用双括号括起$n 位置参数值,n表示位置$0 当前shell名>产生文件名的特殊字符包括"","","[]",上面讲过,不再多说。>数据或程序控制使用的特殊字符>(file) 输出重定向到文件中(没有文件则创建,有则覆盖)>>(file) 输出重定向到文件中(没有则创建,有则追加到文件尾部)<(file) 输入重定向到文件 ; 命令分割符| 管道符 & 后台运行(例如:sleep 10 &) ` ` 命令替换,重定向一条命令的输出作为另一命令的参数。>对于引用或逃逸的特殊字符Bsh用单引号' '和双引号" "将特殊字符或由空白分隔的字引用起来组成一个

以记事本为例:ShellExecute(NULL, TEXT("open"), TEXT("c:\\windows\\notepadexe"), NULL, NULL, SW_HIDE);这条语句在后台启动了一个记事本程序,它是没有窗口的,但在进程管理器中可以看到notepadexe的存在。将第三个参数改成你的程序即可。关键是最后一个参数,SW_HIDE指定了启动的程序是没有窗口的。

以上就是关于shell 脚本中执行重启完成后继续执行其它的命令全部的内容,包括:shell 脚本中执行重启完成后继续执行其它的命令、什么是shell命令windows系统也有shell命令吗、LIUNX中常用的shell *** 作命令有什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9591426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存