一、shell介绍

1、什么是shell

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

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

二、shell功能

1、解析你的命令

  1. [root@localhost ~]# echo "helloword"
  2. helloword

2、启动程序

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

3、输入输出重定向

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

4、管道连接

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

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

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

6、变量维护

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

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

  1.  

7、环境控制

  1. [root@localhost ~]# echo $HOME #用户登录的目录
  2. /root
  3. [root@localhost ~]# echo $UID #用户标识
  4. 0

8、shell编程

  1. #!/bin/sh
  2.  
  3. seconds_left=15
  4.  
  5. echo "请等待${seconds_left}秒……"
  6. while [ $seconds_left -gt 0 ];do
  7. echo -n $seconds_left
  8. sleep 1
  9. seconds_left=$(($seconds_left - 1))
  10. echo -ne "\r \r" #清除本行文字
  11. done
  12. echo "done!"

输出倒计时15秒

三、shell脚本精髓

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

举例示范:

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

nginx安装成功,验证并启动

  1. ... ...
  2. cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
  3. test -d '/usr/local/nginx/logs' \
  4. || mkdir -p '/usr/local/nginx/logs'
  5. test -d '/usr/local/nginx/logs' \
  6. || mkdir -p '/usr/local/nginx/logs'
  7. test -d '/usr/local/nginx/html' \
  8. || cp -R html '/usr/local/nginx'
  9. test -d '/usr/local/nginx/logs' \
  10. || mkdir -p '/usr/local/nginx/logs'
  11. make[1]: Leaving directory `/root/test0717/nginx-1.16.0'
  12. [root@localhost test0717]# cd /usr/local/nginx/
  13. [root@localhost nginx]# ls
  14. conf html logs sbin
  15. [root@localhost nginx]# ./sbin/nginx
  16. [root@localhost nginx]# ps -ef|grep nginx
  17. root 109211 1 0 06:41 ? 00:00:00 nginx: master process ./sbin/nginx
  18. nobody 109212 109211 0 06:41 ? 00:00:00 nginx: worker process
  19. 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. k8s安装Dashboard出现了 pod 状态为CrashLoopBackOff

    1.问题现象 2.解决办法 (1) 先看一下pods日志信息 kubectl logs -f -n kubernetes-dashboard kubernetes-dashboard-658485d5 ...

  2. 超轻量级MP4封装方法介绍

    liwen01 2023.12.17 前言 MP4是目前非常常用的一种视频封装格式,关于MP4的介绍资料也非常多.我们常用的封装库或工具有:ffmpeg,libmp4v2,GPAC,MP4.js,它们 ...

  3. ElasticSearch之Get index API

    获取指定索引的基本信息. 命令样例如下: curl -X GET "https://localhost:9200/testindex_001?pretty" --cacert $E ...

  4. Ubuntu apt-get 的使用

    在Ubuntu中,可以使用apt-get命令来管理软件包.下面是一些常见的apt-get命令及其用法: 安装软件包: sudo apt-get install <package> 其中,& ...

  5. 2024-01-06:用go语言,在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧 在桥上有一些石子,青蛙很讨厌踩在这些石子上 由于桥的长度和青蛙一次跳过的距离都是正整数 我们可以把独木桥

    2024-01-06:用go语言,在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧 在桥上有一些石子,青蛙很讨厌踩在这些石子上 由于桥的长度和青蛙一次跳过的距离都是正整数 我们可以把独木桥 ...

  6. springmvc内嵌tomcat、tomcat整合springmvc、自研国产web中间件

    springmvc内嵌tomcat.tomcat整合springmvc.自研国产web中间件 这是由于公司老项目转化springboot存在太多坑,特别是hibernate事务一条就坑到跑路,你又不想 ...

  7. Luogu P4592 [TJOI2018]异或 做题记录

    随机跳的. 树上维护序列,显然树剖.维护异或,显然 01trie. 01trie 维护区间异或,显然可持久化一下. 看到时限很大,显然可以双 log. 于是跑一边树剖,再根据 id 暴力建一个 可持久 ...

  8. 2023-08-26:请用go语言编写。开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A、B、C、D四个球队,且每个村民只会喜欢其中的一支球队, 但是说

    2023-08-26:请用go语言编写.开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A.B.C.D四个球队,且每个村民只会喜欢其中的一支球队, 但是说 ...

  9. Flutter定时器

    代码 const timeout = Duration(seconds: 3); var t=Timer.periodic(timeout, (timer) { print('afterTimer=' ...

  10. Cesium案例解析(十)——CZML点

    目录 1. 概述 2. 案例 3. 结果 1. 概述 CZML是Cesium中用于描述动态图形场景的JSON格式,它们的关系类似于Google Earth与KML之间的关系,一般会认为KML是一种矢量 ...