shell脚本(1)-shell介绍
一、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介绍的更多相关文章
- shell脚本编程基础介绍
Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
- shell脚本学习—Shell执行脚本
Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命 ...
- shell脚本的函数介绍和使用案例
#前言:今天我们来聊聊shell脚本中的函数知识,看一下函数的优势,执行过程和相关的使用案例,我们也来看一下shell和python的函数书写方式有什么不同 #简介 .函数也具有别名类似的功能 .函数 ...
- linux crontab定时任务运行shell脚本(shell执行sql文件)
https://www.cnblogs.com/tiankongjava/p/6106743.html 今天做个linux定时任务(每晚12点把表汇总). 顺便写个博客记录一下~~ 为什么用linux ...
- (十四)、shell脚本之shell基础(上)
一.shell脚本介绍 1.使用脚本的原因 其中使用脚本的一个最主要的原因是因为一个字"懒",在处理自动循环或者大的任务方面可以偷懒且省时间,如果有处理一个任务的命令清单,一个任务 ...
- Mac 上使用 Shell 脚本 + adb shell 实现简单的 Android 模拟点击自动化测试
需求 在 A 界面,点击跳转到 B 界面(该界面会执行一些业务),再点击返回键出现 Dialog 弹窗,点击确认退出按钮,返回 A 界面.不断循环. 思路 一开始想到的就是按键精灵,下了 mac 版使 ...
- 【shell脚本】shell脚本实现的 函数差集查找
文本地址 点击关注微信公众号 wenyuqinghuai 分享提纲: 1. 问题背景 2. 代码实现 1.问题背景 在做公司的测试的自动化测试时,覆盖了一些开发代码的函数,但是那些还没有做,使用一个函 ...
- Shell脚本、Shell脚本结构、date命令的用法、变量
1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构: #!/bin/bash 以#!/bin/bash开头,即以/bin/ba ...
- gitlab webhook php exec 调用 shell 脚本。shell 脚本中调用 git pull 命令无法执行。
情况如下: 我在ubuntu server 14.04 上面安装了gitlab,来托管项目代码.然后想通过gitlab的web hook 功能来做测试服务器代码自动化更新代码功能.现在遇到一个问题:就 ...
- [Android]Recovery调用外部Shell脚本,Shell脚本使用ui_print方法
busybox_bin=/sbin/busybox # 获取PIPE get_outfd(){ | $busybox_bin grep -q 'pipe'; then else local all_p ...
随机推荐
- [CF1844G] Tree Weights
题目描述 You are given a tree with $ n $ nodes labelled $ 1,2,\dots,n $ . The $ i $ -th edge connects no ...
- C++ Qt开发:StatusBar底部状态栏组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStatus ...
- 【Python】【OpenCV】【NumPy】图像数据的访问
接上一随笔,这次学习针对图像数据的访问(Numpy.array) 在OpenCV中,使用 imread() 方法可以访问图像,其返回值是一个数组,而根据传入的不同图像,将会返回不同维度的数组. 针对返 ...
- 部署堡垒机6——配置Nginx及其他组件
Lina部署 cd /opt wget https://github.com/jumpserver/lina/releases/download/v2.28.7/lina-v2.28.7.tar.gz ...
- 简易机器学习笔记(十)Windows下 PaddlePaddle配置CUDA加速环境
前言 大伙既然都来做这个了,那配个CUDA环境肯定是必不可少的了吧(笑) 最前面的最前面, 流程 确定当前设备支持的CUDA版本 安装CUDA Toolkit 和 GPU版的Paddlepaddle ...
- Java 并发编程(二 )Thread
线程状态 线程一般的状态转换图如下: 在线程生命周期中存在的状态解释如下: New(初始化)状态 此时线程刚刚被实例化,可以通过调用 start() 方法来启动这个实例化的的线程,使其状态转变成为 R ...
- 基于OpenCV的语音数据读取
1)进入http://yuyin.baidu.com/app,在弹出的界面中单击要针对哪个应用开通语音识别服务,个人测试可全选 (开通个人认证,白嫖) 注意: 1.百度语音识别API对于要 ...
- 开源云原生网关Linux Traefik本地部署结合内网穿透远程访问
开源云原生网关Linux Traefik本地部署结合内网穿透远程访问 前言 Træfɪk 是一个云原生的新型的 HTTP 反向代理.负载均衡软件,能轻易的部署微服务.它支持多种后端 (Docker ...
- Java中一些常用的方法实现(更新中)
一.数组 1.indexOf int targetIndex = indexOf(arr, targetValue); public static int indexOf(int[] arr,int ...
- MySQL篇:第五章_详解DDL语言
DDL语句 库和表的管理 库的管理: 一.创建库 create database 库名 二.删除库 drop database 库名 表的管理: 1.创建表 CREATE TABLE IF NOT E ...