Linux中的sh命令的详细解释

Linux中的sh命令的详细解释,第1张

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创建不可被关闭的程序

1、在需要运行程序的位置创建一个 process.sh 文件

使用 vim ./process.sh 命令点开编辑

将下面脚本复制到文件中保存

#!/bin/bash

#这里可替换为你自己的执行程序,其他代码无需更改

APP_NAME=./backend-1.8.0.jar

#使用说明,用来提示输入参数。如:./process.sh restart

usage() {

echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"

exit 1

}

#检查程序是否在运行

is_exist(){

pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `

#如果不存在返回1,存在返回0

if [ -z "${pid}" ]then

return 1

else

return 0

fi

}

#启动方法

start(){

is_exist

if [ $? -eq "0" ]then

echo "${APP_NAME} is already running. pid=${pid} ."

else

#不输出日志

#nohup java -jar $APP_NAME >/dev/null 2>&1 &

#输出日志

nohup java -jar $APP_NAME >processes.log 2>&1 &

fi

}

#停止方法

stop(){

is_exist

if [ $? -eq "0" ]then

kill -9 $pid

else

echo "${APP_NAME} is not running"

fi

}

#输出运行状态

status(){

is_exist

if [ $? -eq "0" ]then

echo "${APP_NAME} is running. Pid is ${pid}"

else

echo "${APP_NAME} is NOT running."

fi

}

#重启

restart(){

stop

start

}

#根据输入参数,选择执行对应方法,不输入则执行使用说明

case "$1" in

"start")

start

"stop")

stop

"status")

status

"restart")

restart

*)

usage

esac

登录后复制

2、使用 chmod 777 process.sh 为文件授权

3、

./process.sh start 开启程序

./process.sh restart重启程序

./process.sh stop 关闭程序

./process.sh status 查看状态

在linux中编写一个*.sh的文件提示找不到命令是设置错误造成的,解决方法为:

1、下载您要安装的软件。必要的文件通常将被压缩为.tar,.tgz或.zip文件。

2、打开一个终端窗口。输入cd ~/path/to/the/extracted/folder并按 Enter。用包含install.sh文件的文件夹的完整路径替换“ path / to / the / extracted / folder”。

3、输入chmod +x install.sh并按 Enter。如果安装程序的名称不是“ install.sh”,则键入其名称。这使安装程序文件可执行。您将不会从该命令中看到任何确认消息。

4、输入sudo bash install.sh并按 Enter。同样,如有必要,请用.sh文件的名称替换“ install.sh”。

5、输入root密码,然后按 Enter。这将开始安装您的应用程序。


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

原文地址:https://54852.com/yw/7301638.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存