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
启动直接点开机键就可以。
重启reboot 就可以了。
关机,init3、shutdown -f now、halt 都可以关机。
重启服务services 服务 restart。
停止服务services 服务 stop。
开始服务services 服务 start。
服务状态services 服务 status。
扩展资料:
常用命令及技巧:通用命令。
1、date :打印或者设置系统的日期和时间
2、 stty -a:可以查看或者打印控制字符(Ctrl-C、Ctrl-D、 Ctrl-Z等)
3、 passwd:用passwd -h查看
4、logout,login: 登录shell的登录和注销命令
5、 more, less, head tail: 显示或部分显示文件内容
6、 lp/lpstat/cancel, lpr/lpq/lprm: 打印文件
7、 chmod u+x:更改文件权限
8、 rm -fr dir:删除非空目录
9、cp -R dir:拷贝目录
10、 fg jobid :可以将一个后台进程放到前台
参考资料来源:百度百科-linux
最简单方法,kiil掉
kill -9 xxxxx
xxxxx是进程号
假如你不知道你程序进程号的话,你可以用
ps -ef|grep java 这个命令可以查找到相关的java进程号,其他类似
# resolve links - $0 may be a softlink
PRG="$0" --- 执行程序名
# 以下循环判断可执行文件是否是一个符号连接(symbolic link,也叫软连接),如果是符号连接,找到实际指向的文件位置
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*- \(.*\)$'`
if expr "$link" : '/.*' /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
# 此时,$PRG 指向实际的文件
PRGDIR=`dirname "$PRG"`
EXECUTABLE=catalina.sh
# Check that target executable exists
# 判断这个实际的目标文件是否存在且是可执行文件
if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
echo "Cannot find $PRGDIR/$EXECUTABLE"
echo "This file is needed to run this program"
exit 1
fi
# 执行目标文件
exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
这个脚本的目的是解决通过符号连接去执行一个程序的问题。如果是符号连接,需要找到实际指向的目标文件,然后再执行它的 stop 命令。