
正文
linux脚本命令顺序 linux中脚本怎么写
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
linux开机启动会依次加载哪些脚本?
1、相关基础知识点\x0d\x0a 1)redhat的启动方式和执行次序是: \x0d\x0a加载内核 \x0d\x0a执行init程序 \x0d\x0a /etc/rc.d/rc.sysinit # 由init执行的第一个脚本 \x0d\x0a /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式 \x0d\x0a /etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)\x0d\x0a /sbin/mingetty # 等待用户登录 \x0d\x0a\x0d\x0a在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括: \x0d\x0a调入keymap以及系统字体 \x0d\x0a启动swapping \x0d\x0a设置主机名 \x0d\x0a设置NIS域名 \x0d\x0a检查(fsck)并mount文件系统 \x0d\x0a打开quota \x0d\x0a装载声卡模块 \x0d\x0a设置系统时钟 \x0d\x0a\x0d\x0a等等。 \x0d\x0a /etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用 /etc/rc.d/rc3.d/下的脚本。 \x0d\x0a\x0d\x0a值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。 \x0d\x0a init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的 \x0d\x0a action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。 \x0d\x0a\x0d\x0a至此,LINUX的启动结束。\x0d\x0a 2、init运行级别及指令\x0d\x0a\x0d\x0a一、什么是INIT: \x0d\x0ainit是Linux系统操作中不可缺少的程序之一。 \x0d\x0a所谓的init进程,它是一个由内核启动的用户级进程。 \x0d\x0a内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 \x0d\x0a内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。\x0d\x0a二、运行级别 \x0d\x0a那么,到底什么是运行级呢? \x0d\x0a简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。 \x0d\x0a不同的运行级定义如下 \x0d\x0a# 0 - 停机(千万不能把initdefault 设置为0 ) \x0d\x0a# 1 - 单用户模式 # s init s = init 1\x0d\x0a# 2 - 多用户,没有 NFS \x0d\x0a# 3 - 完全多用户模式(标准的运行级) \x0d\x0a# 4 - 没有用到 \x0d\x0a# 5 - X11 多用户图形模式(xwindow) \x0d\x0a# 6 - 重新启动 (千万不要把initdefault 设置为6 ) \x0d\x0a这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6) \x0d\x0a 3):chkconfig 命令(redhat 操作系统下)\x0d\x0a\x0d\x0a不像DOS 或者 Windows,Linux 可以有多种运行级。常见的就是多用户的2,3,4,5 ,很多人知道 5 是运行 X-Windows 的级别,而 0 就\x0d\x0a是关机了。运行级的改变可以通过 init 命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用 init 1 来切换。在 Linux 的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K 和 S 开头的文件,按后面的数字顺序,执行这\x0d\x0a些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux 提供了chkconfig 命令用来更新和查询不同运行级上的系统服务。 \x0d\x0a\x0d\x0a语法为: \x0d\x0a chkconfig --list [name] \x0d\x0a chkconfig --add name \x0d\x0a chkconfig --del name \x0d\x0a chkconfig [--level levels] name \x0d\x0a chkconfig [--level levels] name \x0d\x0a chkconfig 有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。 \x0d\x0a chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回 true,否则返回false。 --level 选项可以指定要查看的运行级而不一定是当前运行级。 \x0d\x0a\x0d\x0a如果在服务名后面指定了on,off 或者 reset,那么 chkconfig 会改变指定服务的启动信息。on 和 off 分别指服务在改变运行级时的启动和停止。reset 指初始化服务信息,无论有问题的初始化脚本指定了什么。 \x0d\x0a\x0d\x0a对于 on 和 off 开关,系统默认只对运行级 3,4, 5有效,但是 reset 可以对所有运行级有效。指定 --level 选项时,可以选择特定的运行级。 \x0d\x0a \x0d\x0a需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init 不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。 \x0d\x0a\x0d\x0a选项介绍: \x0d\x0a --level levels \x0d\x0a\x0d\x0a指定运行级,由数字 0 到 7 构成的字符串,如: \x0d\x0a --level 35 表示指定运行级3 和5。 \x0d\x0a\x0d\x0a要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:chkconfig --level 345 nfs off \x0d\x0a --add name \x0d\x0a\x0d\x0a这个选项增加一项新的服务,chkconfig 确保每个运行级有一项启动(S) 或者 杀死(K) 入口。如有缺少,则会从缺省的init 脚本自动\x0d\x0a建立。 \x0d\x0a --del name \x0d\x0a\x0d\x0a用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。 \x0d\x0a --list name \x0d\x0a\x0d\x0a列表,如果指定了name 那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。 \x0d\x0a\x0d\x0a运行级文件 \x0d\x0a\x0d\x0a每个被chkconfig 管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。 \x0d\x0a\x0d\x0a第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。 \x0d\x0a\x0d\x0a第二行对服务进行描述,可以用 跨行注释。 \x0d\x0a\x0d\x0a例如,random.init 包含三行: \x0d\x0a # chkconfig: 2345 20 80 \x0d\x0a # description: Saves and restores system entropy pool for \x0d\x0a # higher quality random number generation. \x0d\x0a\x0d\x0a表明 random 脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为20,停止优先权为 80。 \x0d\x0a\x0d\x0a好了,介绍就到这里了,去看看自己目录下的/etc/rc.d/init.d 下的脚本吧。 \x0d\x0a\x0d\x0a设置自启动服务:chkconfig --level 345 nfs on \x0d\x0a2. 实例介绍:\x0d\x0a 1、在linux下安装了apache 服务(通过下载二进制文件经济编译安装、而非rpm包)、apache 服务启动命令: /server/apache/bin/apachectl start 。让apache服务运行在运行级别3下面。\x0d\x0a命令如下: \x0d\x0a 1)touch /etc/rc.d/init.d/apache\x0d\x0a vi /etc/rc.d/init.d/apache\x0d\x0a chown -R root /etc/rc.d/init.d/apache\x0d\x0a chmod 700 /etc/rc.d/init.d/apache\x0d\x0a ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache #S 是start的简写、代表启动、K是kill的简写、代表关闭。60数字\x0d\x0a代表启动的顺序。(对于iptv系统而言、许多服务都是建立在数据库启动的前提下才能够正常启动的、可以通过该数字就行调整脚本的启动顺序)) \x0d\x0a apache的内容:\x0d\x0a #!/bin/bash\x0d\x0a #Start httpd service\x0d\x0a /server/apache/bin/apachectl start\x0d\x0a\x0d\x0a至此 apache服务就可以在运行级别3下 随机自动启动了。(可以结合chkconfig 对启动服务进行相应的调整)。\x0d\x0a由于相关变量定义不同, 所以以下启动顺序仅供参考\x0d\x0a在Redhat Redflag centos fc linux系统里面脚本的启动\x0d\x0a先后:\x0d\x0a第一步:通过/boot/vm进行启动 vmlinuz\x0d\x0a第二步:init /etc/inittab\x0d\x0a第三步:启动相应的脚本,并且打开终端\x0d\x0arc.sysinit\x0d\x0arc.d(里面的脚本)\x0d\x0arc.local\x0d\x0a第四步:启动login登录界面 login\x0d\x0a第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执行的\x0d\x0a/etc/profile.d/file\x0d\x0a/etc/profile\x0d\x0a/etc/bashrc\x0d\x0a/root/.bashrc\x0d\x0a/root/.bash_profile\x0d\x0a编者注:\x0d\x0aNtsysv命令也可以实现根据不同运行级别启动不同的服务,但是一定要注意,使用ntsysv命令,默认采用图形的方式管理服务的启动,但是在这种情况下设置的服务,只对当前的运行级别有效果!因此,建议最好还是使用 chkconfig 来进行服务的管理。
相关问答
Q1: 如何写脚本文件
问题一:怎样用文本文档写命令脚本文件linux脚本命令顺序? 有例子最好 很简单linux脚本命令顺序,我给你一个很简单的例子,用记事本做一个批处理脚本文件:新建个记事本,打开,输入“shutdown -s -t 1”保存,然后你把这个文件的*.txt后缀改为*.bat后缀。你点击下,很奇伐的事会发生。
问题二:脚本是什么?怎么编写脚本? 脚本:写剧本的人,也叫故事构成。
脚本英文为Script。实际上脚本就是程序,一般都是有应用程序提供的编程语言。应用程序包括浏览器(JavaScript、VBScript)、多媒体创作工具,应用程序的宏和创作系统的批处理语言也可以归入脚本之类。脚本同我们平时使用的VB、C语言的区别主要是:
1、脚本语法比较简单,比较容易掌握linux脚本命令顺序;
2、脚本与应用程序密切相关,所以包括相对应用程序自身的功能;
3、脚本一般不具备通用性,所能处理的问题范围有限。
脚本,英文名为Script,简单地说,脚本就是指通过记事本程序或其它文本编辑器(如Windows Script Editor,EditPlus等)创建,并保存为特定扩展名(如.reg , .vbs, .js, .inf等)的文件,对于注册表脚本文件就是利用特定的格式编辑的.reg文件;对于VBScript脚本编程语言来说,脚本文件扩展名就是.vbs;对于JScript脚本编程语言来说,脚本文件扩展名就是.js;另外,.wsf格式是Microsoft定义的一种脚本文件格式,即Window Script File.
具体地说,脚本通过利用应用程序或工具的规则和语法来表达指令,以控制应用程序(包括注册表程序)中各种元素的反应,也可以由简单的控制结构(例如循环语句和If/Then语句)组成,这些应用程序或工具包括网页浏览器(支持VBScript,Jscript),多媒体制作工具,应用程序的宏(比如Office的宏)以及我们熟悉的注册表工具(regedit.exe)等.操作系统中的批处理也可以归入脚本之列,批处理程序也经常由Windows环境中的脚本替换,所以又称脚本是Windows时代的批处理.
脚本的作用在每一种应用程序中起的作用都是不一样的,比如在网页中可以实现各种动态效果,各种特效处理,实现各种HTML不能实现的功能.而在Office组件中,我们会经常看到宏这个工具,它其实就是一系列命令和指令可以实现任务执行的自动化.
脚本多以“vbs”、“bat”结尾。可以用“记事本”或“按键精灵”编辑。
问题三:怎么编写一个linux脚本文件 Shell终端解释器形容是人与计算机硬件的“翻译官”,它作为用户与Linux系统内部通讯的媒介,除了允许了各种变量与参数外还提供了诸如循环、分支等高级语言才有的控制结构特性,如何正确的使用这些功能,准确下达命令就显得尤为重要。Shell中脚本命令的工作方式有两种,首先是咱们前面所接触的交互方式(Interactive),即当用户每输入一条命令就执行一次,而批处理(Batch)则是由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。因此在Shell脚本中不仅需要用到很多前面学习过的Linux命令以及正则表达式、管道符、数据流重定向等语法规则,还需要将内部功能模块化后通过逻辑语句进行加工,最终才能成为咱们日常所见的Shell脚本程序。先来查看下系统中所有可用的Shell解释器:
[[email protected] ~]# cat /etc/shells
/bin/sh
/bin/bash
/ *** in/nologin
/usr/bin/sh
/usr/bin/bash
/usr/ *** in/nologin
/bin/tcsh
/bin/csh
另外查看到bash已经是咱们目前的终端解释器了:
[[email protected] ~]# echo $SHELL
/bin/bash
估计读者看完上面对Shell脚本如此复杂的描述都有一种心累想放弃的感觉了吧,但这仅指的是一个高深Shell脚本的编写原则,其实当咱们使用vim编辑器将linux命令按照顺序依次写入文件就是编写完成一个最简单的脚本啦。例如咱们想查看当前所在工作路径并列出当前目录下所有文件及属性信息,编写一个脚本来完成的话是这样:
[[email protected] ~]# vim example.sh
#!/bin/bash
#For Example BY linuxprobe
pwd
ls -al
Shell脚本文件的名称是可以任意起,但为了避免其linux脚本命令顺序他同事误以为是普通文件,咱们应该符合运维行业人员大众的规范将.sh后缀写上,这样让其他人一看就知道是个脚本文件,与人方便自己方便。在这个脚本中实际上出现了三种不同的元素,第一行脚本声明(#!)是用来告知系统用何种shell解释器来执行本脚本程序,第二行注释信息(#)是对程序功能和某些命令的介绍信息,使得自己或他人再次看到这个脚本内容时可以快速知道这些功能的作用或一些警告信息,第三、四行可执行语句也就是咱们平时执行的Linux命令啦~什么?你不相信这么简单就编写出来了一个脚本程序,那咱们来执行看一看吧:
[[email protected] ~]# bash example.sh
/root/Desktop
total 8
drwxr-xr-x. 2 root root 23 Jul 23 17:31 .
dr-xr-x---. 14 root root 4096 Jul 23 17:31 ..
-rwxr--r--. 1 root root 55 Jul 23 17:31 example.sh
第二种运行脚本程序的方法是以输入完整路径的方式来执行,但默认会因为权限不足而提示报错信息,这种情况只需要为脚本文件增加执行权限即可(在第五章会详细讲到):
[[email protected] ~]# .......
问题四:什么是脚本文件,脚本文件是什么格式???? 脚本英文为Script。实际上脚本就是程序,一般都是有应用程序提供的编程语言。应用程序包括浏览器(javascript、VBScript)、多媒体创作工具,应用程序的宏和创作系统的批处理语言也可以归入脚本之类。脚本(Script),就是含有bind和alias等命令的 *** ,你可以把这个 *** 存为一个独立的文件然后在需要的时候执行,这样就可以方便你在CS中的使用。脚本同我们平时使用的VB、C语言的区别主要是:1、脚本语法比较简单,比较容易掌握;2、脚本与应用程序密切相关,所以包括相对应用程序自身的功能;3、脚本一般不具备通用性,所能处理的问题范围有限。脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。脚本程序相对一般程序开发来说比较接近自然语言,可以不经编译而是解释执行,利于快速开发或一些轻量的控制。现在的脚本语言是比较多的,一般的脚本语言的执行只同具体的解释执行器有关,所以只要系统上有相应语言的解释程序就可以做到跨平台。
问题五:怎样编写注册表导入脚本文件 比如我要快速的修改一台机子的机器名,我做的一个注册表文件如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\puterName]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\puterName\puterName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\puterName\ActiveputerName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters]
NV Hostname=205
Hostname=205
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\puterName\puterName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip\Parameters]
NV Hostname=205
Hostname=205
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\puterName]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\puterName\puterName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\puterName\ActiveputerName]
puterName=205
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
NV Hostname=205
Hostname=205
[HKEY_USERS\S-1-5......
问题六:如何编写一个shell脚本 如何编写一个shell脚本
本文结合大量实例阐述如何编写一个shell脚本。
为什么要进行shell编程
在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。
下面,让我们一起来看看shell是如何工作的:
建立一个脚本
Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在bash的大姐,bourne shell中运行)。
如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit、kedit、emacs、vi
等来编写我们的shell程序。
程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
要使脚本可执行:
chmod +x filename
然后,您可以通过输入: ./filename 来执行您的脚本。
注释
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
变量
在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:
变量名=值
取出变量值可以加一个美元符号($)在变量前面:
#!/bin/sh
#对变量赋值:
a=hello world
# 现在打印变量a的内容:
echo A is:
echo $a
在您的编辑器中输入以上内容,然后将其保存为一个文件first。之后执行chmod +x first
使其可执行,最后输入./first执行该脚本。
这个脚本将会输出:
A is:
hello world
有时候变量名很容易与其他文字混淆,比如:
num=2
echo this is the $numnd
这并不会打印出this is the 2nd,而仅仅打印this is the ,因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:
num=2
echo this is the ${num}nd
这将打印: this is the 2nd
有许多变量是系统自动设定的,这将在后面使用这些变量时进行讨论。
如果您需要处理数学表达式,那么您需要使用诸如expr等程序(见下面)。
除了一般的仅在程序内有效的shell变量以外,还有环境......
问题七:matlab脚本怎么写 15分 脚本文件其实就跟在命令窗里写指令是一样的
在命令窗里一般是一句执行一次,而脚本文件是执行一段代码
写脚本文件是一个好习惯,矗有比较简单的代码,在命令创立运行是合适的
最后保存一下,起一个文件名,就OK了。
问题八:如何编写简单的Shell脚本文件之Linux的基本操作 编写shell脚本 首先你要有Linux命令的基础,怎么进入文件,怎么执行文件,有什么命令等等。
我们的shell 类型有很多,常见的shell环境有sh,bash,csh,zsh等等。在Linux的脚本中可以最常见的就是 sh或者shell。在shell脚本中最开始 要指定shell环境。于是乎我们有了shell的沙邦:
/bin/sh 或者/bin/bash
shell脚本的格式:shell脚本一般是以*.sh 为名字,在权限上面是有可执行权限x的也就是chmod u+x *.sh
命令的执行:3种:
sh 脚本路径/脚本名
cd 脚本路径 ./脚本名
soure 脚本路径/脚本
写一个最简单的脚本吧:
[[email protected] ~]#vim 1.sh
/bin/sh
echo this is my frist scripts,more and more linux ,you can read 《Linux就该这样学》
[[email protected] ~]#chmod u+x 1.sh
[[email protected] ~]#./1.sh
this is my frist scripts,more and more linux ,you can read 《Linux就该这样学》
学习Linux需要多学多练
问题九:如何写R语言脚本 如何写R语言脚本
method 1
1.创建file.R文件
2.文件首行
#!/path/to/Rscript
3.在下面的行中键入R代码
4.保存(如果有png(),jpeg()等函数代码最后一定要dev.off())
5.在file.R的工作目录下,在终端中输入以下命令
R CMD BATCH --args file.R
method 2
1.创建R脚本
2.文件首行
#!/usr/bin/env Rscript
3.终端输入以下命令
R CMD BATCH --args file.R
或者 Rscript file.R
chmod 755 file.R
./file.R
method 3
1.在file.sh文件中键入:
#!/bin/sh
R --slave [other option]source(/homeR/file.R)
问题十:matlab中的脚本程序怎么编写 在matlab的mand window 的窗口中,输入edit 文件名(文件名一般以字母开头),如下:
edit main
再回车,就会在左侧的current folder里面新建一个名为mian的.m文件,弹出编辑窗口,在编辑窗口输入你要编写的程序即可。
也可以直接点击matlab左上角的新建按钮,新建一个文件,即New script,在里面编写程序,并保存在你指定的位置,这时候也可以修改文件名。
希望能够帮到你哈~
Q2: linux中.sh脚本文件中命令的执行顺序
每条命令后如果不加的话就是依次一行一行的顺序执行,只有前面一行执行完成后再执行下一行,如果希望多个命令在一个shell内执行可在一行写入多条命令,用符号间隔
Q3: linux shell脚本执行命令详解
在Linux下,如果你需要执行shell脚本,那么应该使用那个命令呢?下面由我为大家整理了linux shell脚本执行命令的相关知识,希望对大家有帮助!
linux shell脚本执行
linux shell脚本执行方法一: 切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:
cd /data/shell
./hello.sh
./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。
linux shell脚本执行方法二: 以绝对路径的方式去执行bash shell脚本:
/data/shell/hello.sh
linux shell脚本执行方法三: 直接使用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路径自然也好理解了啊。
linux shell脚本执行方法四: 在当前的shell环境中执行bash shell脚本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。
Q4: Linux 开机(脚本)启动顺序
Linux 使用的是基于运行级( run-levels )概念的称为 SysVinit 的专用启动工具。 它在不同的系统上可能是完全不一样的, 所以不能认为一个脚本在某个 Linux 发行版上工作正常。
SysVinit 以运行级的模式来工作,一般有 7 (从 0 到 6)个运行级 (实际上可以有更多的运行级,但都是用于特殊情况而且一般使用不到。 参见 init(8)以获得更多信息),每个运行级对应于一套设定好的任务, 当启动一个运行级的时候, 计算机就需要执行相应的任务。
默认的运行级是 3,下面是对不同运行级的描述:
可以使用 runlevel 命令查看:
也可以在 /etc/inittab 文件中看到以下:
也就是说我们系统的运行级别目前是3,那么需要看的就是 /etc/rc3.d 下的内容,其实里面都是软连接,所有的软链指向 /etc/init.d/ 中的脚本文件,命名规范如下:
因此我们如果需要定义一个服务启动的优先级(顺序),则需指定脚本的 number 即可。
Q5: 关于linux命令参数顺序的有关问题怎么解决
linux shell脚本中用$1 $2 ... $9表示接收的参数,对应运行脚本时的参数顺序如./test.sh 参数1 参数2 参数3 ...
示例:
test.sh 内容:
#!/bin/sh
echo $1 $2 $3
运行命令: ./test.sh a b c
命令中的a b c分别对应脚本里的 $1 $2 $3
关于linux脚本命令顺序和linux中脚本怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






