• 周五. 10月 7th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

shell脚本(1)-shell介绍

admin

11月 28, 2021

一、shell介绍

1、什么是shell

shell是c语法编写的,是用户和liunx内核沟通的桥梁,即是命令语法,也是解释性编程语言。

内核处理的都是二进制,而用户处理的都是高级语法,系统开发人员可以通过shell快速操作计算机。

 

二、shell功能

1、解析你的命令

[[email protected] ~]# echo "helloword"
helloword

2、启动程序

[[email protected] ~]# redis-server /myredis/redis.conf 
[[email protected] ~]# ps -ef | grep redis
root       2111      1  0 01:13 ?        00:00:28 redis-server *:6379
root       2501   2469  0 05:53 pts/0    00:00:00 grep --color=auto redis

3、输入输出重定向

[[email protected] ~]# wc -c < testmail.txt 
27
[[email protected] ~]# echo "helloworld" >>  test0716.txt

4、管道连接

[[email protected] ~]# echo "hello world" | sed 's/world/亲/'
hello 亲

5、文件名置换(echo /*)

[[email protected] ~]# echo ${user-root}
root
[[email protected] ~]# user="bktest"
[[email protected] ~]# echo $? #判断上一条命令是否执行成,0代表成功
0

6、变量维护

[[email protected] ~]# echo $USER #当前用户
root

[[email protected] ~]# echo $USER #当前用户
root

 

7、环境控制

[[email protected] ~]# echo $HOME #用户登录的目录
/root
[[email protected] ~]# echo $UID #用户标识
0

8、shell编程

#!/bin/sh

seconds_left=15

echo "请等待${seconds_left}秒……"
while [ $seconds_left -gt 0 ];do
  echo -n $seconds_left
  sleep 1
  seconds_left=$(($seconds_left - 1))
  echo -ne "     " #清除本行文字
done
echo "done!"

输出倒计时15秒

 

三、shell脚本精髓

 shell脚本就是将完成一个任务的所有命令按照执行的先后顺序,自上而下写入一个文本文件中,然后给予执行权限。

举例示范:

[[email protected] test0717]# vim nginx_intall.sh #写入shell脚本
#!/usr/bin/bash
#下载依赖 yum
-y install wget gcc pcre-devel zlib-devel
#下载nginx wget http:
//nginx.org/download/nginx-1.16.0.tar.gz
#解压缩 tar xf nginx-1.16.0.tar.gz
#进入目录 cd nginx
-1.16.0
#配置安装
./configure --prefix=/usr/local/nginx make make install
[[email protected] test0717]# chmod +x nginx_intall.sh
[[email protected] test0717]# ./nginx_intall.sh

nginx安装成功,验证并启动

... ... 
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs' 
    || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' 
    || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' 
    || cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' 
    || mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory `/root/test0717/nginx-1.16.0'
[[email protected] test0717]# cd /usr/local/nginx/
[[email protected] nginx]# ls
conf  html  logs  sbin
[[email protected] nginx]# ./sbin/nginx 
[[email protected] nginx]# ps -ef|grep nginx
root     109211      1  0 06:41 ?        00:00:00 nginx: master process ./sbin/nginx
nobody   109212 109211  0 06:41 ?        00:00:00 nginx: worker process
root     109214 103997  0 06:41 pts/0    00:00:00 grep --color=auto nginx

 

发表回复

您的电子邮箱地址不会被公开。