一、shell介绍

1、什么是shell

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

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

二、shell功能

1、解析你的命令

[root@localhost ~]# echo "helloword"
helloword

2、启动程序

[root@localhost ~]# redis-server /myredis/redis.conf
[root@localhost ~]# 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、输入输出重定向

[root@localhost ~]# wc -c < testmail.txt
27
[root@localhost ~]# echo "helloworld" >> test0716.txt

4、管道连接

[root@localhost ~]# echo "hello world" | sed 's/world/亲/'
hello 亲

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

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

6、变量维护

[root@localhost ~]# echo $USER #当前用户
root

[root@localhost ~]# echo $USER #当前用户
root

 

7、环境控制

[root@localhost ~]# echo $HOME #用户登录的目录
/root
[root@localhost ~]# 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 "\r \r" #清除本行文字
done
echo "done!"

输出倒计时15秒

三、shell脚本精髓

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

举例示范:

[root@localhost 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
[root@localhost test0717]# chmod +x nginx_intall.sh
[root@localhost 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'
[root@localhost test0717]# cd /usr/local/nginx/
[root@localhost nginx]# ls
conf html logs sbin
[root@localhost nginx]# ./sbin/nginx
[root@localhost 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

shell脚本(1)-shell介绍的更多相关文章

  1. shell脚本编程基础介绍

    Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...

  2. shell脚本学习—Shell执行脚本

    Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命 ...

  3. shell脚本的函数介绍和使用案例

    #前言:今天我们来聊聊shell脚本中的函数知识,看一下函数的优势,执行过程和相关的使用案例,我们也来看一下shell和python的函数书写方式有什么不同 #简介 .函数也具有别名类似的功能 .函数 ...

  4. linux crontab定时任务运行shell脚本(shell执行sql文件)

    https://www.cnblogs.com/tiankongjava/p/6106743.html 今天做个linux定时任务(每晚12点把表汇总). 顺便写个博客记录一下~~ 为什么用linux ...

  5. (十四)、shell脚本之shell基础(上)

    一.shell脚本介绍 1.使用脚本的原因 其中使用脚本的一个最主要的原因是因为一个字"懒",在处理自动循环或者大的任务方面可以偷懒且省时间,如果有处理一个任务的命令清单,一个任务 ...

  6. Mac 上使用 Shell 脚本 + adb shell 实现简单的 Android 模拟点击自动化测试

    需求 在 A 界面,点击跳转到 B 界面(该界面会执行一些业务),再点击返回键出现 Dialog 弹窗,点击确认退出按钮,返回 A 界面.不断循环. 思路 一开始想到的就是按键精灵,下了 mac 版使 ...

  7. 【shell脚本】shell脚本实现的 函数差集查找

    文本地址 点击关注微信公众号 wenyuqinghuai 分享提纲: 1. 问题背景 2. 代码实现 1.问题背景 在做公司的测试的自动化测试时,覆盖了一些开发代码的函数,但是那些还没有做,使用一个函 ...

  8. Shell脚本、Shell脚本结构、date命令的用法、变量

    1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构:   #!/bin/bash  以#!/bin/bash开头,即以/bin/ba ...

  9. gitlab webhook php exec 调用 shell 脚本。shell 脚本中调用 git pull 命令无法执行。

    情况如下: 我在ubuntu server 14.04 上面安装了gitlab,来托管项目代码.然后想通过gitlab的web hook 功能来做测试服务器代码自动化更新代码功能.现在遇到一个问题:就 ...

  10. [Android]Recovery调用外部Shell脚本,Shell脚本使用ui_print方法

    busybox_bin=/sbin/busybox # 获取PIPE get_outfd(){ | $busybox_bin grep -q 'pipe'; then else local all_p ...

随机推荐

  1. [ABC267F] Exactly K Steps

    Problem Statement You are given a tree with $N$ vertices. The vertices are numbered $1, \dots, N$, a ...

  2. 【UniApp】-uni-app-CompositionAPI传递数据

    前言 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-传递数据 那么了解完了uni-app-传递数据之后,这篇文章来给大家介绍一下 uni-app-CompositionAPI传递数据 首 ...

  3. 『UniApp』uni-app-打包成App

    前言 大家好,我是 BNTang, 在上一节文章中,我给大家详细的介绍了如何将我开发好的项目打包为微信小程序并且发布到微信小程序商店 趁热打铁,在来一篇文章,给大家详细的介绍如何将项目打包成APP. ...

  4. ElasticSearch之cat datafeeds API

    命令样例如下: curl -X GET "https://localhost:9200/_cat/ml/datafeeds?v=true&pretty" --cacert ...

  5. Kafka 万字精讲|工作五年这些你都知道吗?

    目录 前言 一.Kafka 简介 1.1 事件流平台 1.2 Kafka 主要概念和术语 1.3 Zookeeper 二.Kafka 集群搭建和使用 2.1 使用 Docker Compose 搭建 ...

  6. 细说GaussDB(DWS)的2种查询优化技术

    本文分享自华为云社区<GaussDB(DWS)查询优化技术大揭秘>,作者: 胡辣汤. 大数据时代,数据量呈爆发式增长,经常面临百亿.千亿数据查询场景,当数据仓库数据量较大.SQL语句执行效 ...

  7. “绝影”机器狗如何利用ModelArts强化学习算法更改导航轨迹

    摘要:利用ModelArts平台云端协同进行强化学习AI能力部署,导航机器狗绕开火焰关闭可燃气体开关灭火. 在刚刚结束的HC Keynote中,为大家演示了基于华为ModelArts和Atlas 20 ...

  8. 华为云API中心:汇聚千行百业API资产,打造API全生命周期极致体验

    摘要:2022年11月9日,华为云全球生态部总裁康宁在华为全联接大会2022上发表"共创新价值,一切皆服务"主题演讲,并发布全新的华为云API中心. 本文分享自华为云社区<华 ...

  9. Python 没有函数重载?如何用装饰器实现函数重载?

    摘要:Python 不支持函数重载.当我们定义了多个同名的函数时,后面的函数总是会覆盖前面的函数,因此,在一个命名空间中,每个函数名仅会有一个登记项(entry). 本文分享自华为云社区<为什么 ...

  10. 一文搞定Matplotlib 各个示例丨建议收藏

    摘要:Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用 ,Matplotlib也是深度学习的常用绘图库,主要是将训练的成果进行图形化,因为这样更直观,更方便发现训练中的 ...