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中执行的。