linux命令 sh(linux安装sh文件命令)

今天给各位分享linux命令 sh的知识,其中也会对linux安装sh文件命令进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Linux中的sh命令的详细解释

linxu下的sh命令相当于是shell命令语言的解释器。下面由我为大家整理了linux的sh命令的详细解释的相关知识,希望对大家有帮助!

一、Linux中的sh命令的详细解释

sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!Bourne Again Shell(即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。

语法

bash [options] [file]

选项

-c string:命令从-c后的字符串读取。

-i:实现脚本交互。

-n:进行shell脚本的语法检查。

-x:实现shell脚本逐条语句的跟踪。

二、Linux中的sh命令的具体例子

使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:

[root@AY1307311912260196fcZ satools]# sh-x check_ssh_login.sh

+ DEFINE=30

+ cat/var/log/secure

+ awk'/Failed/{++ip[$(NF-3)]} END{for(i in ip) print i"="ip[i]}'

++ cat/root/satools/black.txt

+ for i in'`cat/root/satools/black.txt`'

++ echo 121.42.0.16=1427

++ awk-F='{print$1}'+ IP=121.42.0.16

++ echo 121.42.0.16=1427

++ awk-F='{print$2}'

+ NUM=1427

+'[' 1427-gt 30']'

+ grep 121.42.0.16/etc/hosts.deny

+'[' 1-gt 0']'

+ echo sshd:121.42.0.16

+ echo vsftpd:121.42.0.16

+ for i in'`cat/root/satools/black.txt`'

++ echo 121.42.0.72=276

++ awk-F='{print$1}'

+ IP=121.42.0.72

++ awk-F='{print$2}'

++ echo 121.42.0.72=276

+ NUM=276+'[' 276-gt 30']'

+ grep 121.42.0.72/etc/hosts.deny

+'[' 1-gt 0']'

+ echo sshd:121.42.0.72

+ echo vsftpd:121.42.0.72

三、Linux中对.sh文件的操作命令

1、创建test.sh文件

touch test.sh

2、编辑sh文件

vi test.sh

3、保存退出

敲击esc,然后输入:wq,回车退出

4、添加可执行权限,当然默认就是可执行的。

chmod+x test.sh

5、运行文件

(1)./test.sh

(2)sh test.sh

6、删除文件

rm test.sh

linux中source命令详解

linux系统中source命令用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。下面是source命令内容的具体介绍:

1、source命令简介:

source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令,使Shell读入指定的Shell程序文件并依次执行文件中的所有语句,用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

2、语法:

source filename或. filename

3、source filename与 sh filename及./filename执行脚本的区别:

当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别的。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。

sh filename重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。

source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

举例:

1.新建一个test.sh脚本,内容为:A=1

2.然后使其可执行chmod+x test.sh

3.运行sh test.sh后,echo$A,显示为空,因为A=1并未传回给当前shell

4.运行./test.sh后,也是一样的效果

5.运行source test.sh或者. test.sh,然后echo$A,则会显示1,说明A=1的变量在当前shell中

linux shell脚本执行命令

linux shell脚本执行命令主要有四种方式,具体介绍如下:

方式一:

切换到shell脚本所在的目录(也叫工作目录)执行shell脚本,具体代码是:

cd/data/shell

./hello.sh

方式二:

可以以绝对路径的方法去执行bash shell脚本,具体代码是:

/data/shell/hello.sh

方式三:

可以选择直接使用bash命令或者sh命令来执行bash shell脚本,具体代码是:

cd/data/shell

bash hello.sh

或者

cd/data/shell

sh hello.sh

方式四:

还可以选择在当前的shell环境中执行bash shell脚本,具体代码是:

cd/data/shell

. hello.sh

cd/data/shell

source hello.sh

说明:前三种方式执行shell脚本时都需要在当前shell(即父shell)开启的一个子shell环境中执行,完成之后就会关闭回到原来的shell中,但方式四是直接在当前的shell中执行的。

阅读剩余
THE END