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 ...
随机推荐
- k8s安装Dashboard出现了 pod 状态为CrashLoopBackOff
1.问题现象 2.解决办法 (1) 先看一下pods日志信息 kubectl logs -f -n kubernetes-dashboard kubernetes-dashboard-658485d5 ...
- 超轻量级MP4封装方法介绍
liwen01 2023.12.17 前言 MP4是目前非常常用的一种视频封装格式,关于MP4的介绍资料也非常多.我们常用的封装库或工具有:ffmpeg,libmp4v2,GPAC,MP4.js,它们 ...
- ElasticSearch之Get index API
获取指定索引的基本信息. 命令样例如下: curl -X GET "https://localhost:9200/testindex_001?pretty" --cacert $E ...
- Ubuntu apt-get 的使用
在Ubuntu中,可以使用apt-get命令来管理软件包.下面是一些常见的apt-get命令及其用法: 安装软件包: sudo apt-get install <package> 其中,& ...
- 2024-01-06:用go语言,在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧 在桥上有一些石子,青蛙很讨厌踩在这些石子上 由于桥的长度和青蛙一次跳过的距离都是正整数 我们可以把独木桥
2024-01-06:用go语言,在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧 在桥上有一些石子,青蛙很讨厌踩在这些石子上 由于桥的长度和青蛙一次跳过的距离都是正整数 我们可以把独木桥 ...
- springmvc内嵌tomcat、tomcat整合springmvc、自研国产web中间件
springmvc内嵌tomcat.tomcat整合springmvc.自研国产web中间件 这是由于公司老项目转化springboot存在太多坑,特别是hibernate事务一条就坑到跑路,你又不想 ...
- Luogu P4592 [TJOI2018]异或 做题记录
随机跳的. 树上维护序列,显然树剖.维护异或,显然 01trie. 01trie 维护区间异或,显然可持久化一下. 看到时限很大,显然可以双 log. 于是跑一边树剖,再根据 id 暴力建一个 可持久 ...
- 2023-08-26:请用go语言编写。开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A、B、C、D四个球队,且每个村民只会喜欢其中的一支球队, 但是说
2023-08-26:请用go语言编写.开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A.B.C.D四个球队,且每个村民只会喜欢其中的一支球队, 但是说 ...
- Flutter定时器
代码 const timeout = Duration(seconds: 3); var t=Timer.periodic(timeout, (timer) { print('afterTimer=' ...
- Cesium案例解析(十)——CZML点
目录 1. 概述 2. 案例 3. 结果 1. 概述 CZML是Cesium中用于描述动态图形场景的JSON格式,它们的关系类似于Google Earth与KML之间的关系,一般会认为KML是一种矢量 ...