linux脚本

shell脚本基础和grep文本处理工具企业应用3

梦想与她 提交于 2019-12-02 16:15:57
文本处理工具: linux上文本处理三剑客 grep,egrep,fgrep:文本过滤工具(模式:pattern)工具 grep:默认支持的是基本正则表达式;-E支持扩展正则表达式,-F不支持正则表达式 egrep:默认支持的是扩展正则表达式;-G支持基本正则表达式,-F不支持正则表达式 fgrep:默认不支持正则表达式;-G支持基本正则表达式,-E支持扩展正则表达式 sed:stream editor,流编辑器,文本编辑工具 awk:linux上的实现为gawk,文本报告生成器(格式化文本) 正则表达式:Regual Expression,REGEXP 由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能 分两类: 基本正则表达式:BRE 扩展正则表达式:ERE 元字符:\(hello[[:space:]]\+\)\+ grep:Global search REgular expression and Print out the line 作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查;打印匹配到的行 模式:由正则表达式的元字符及文本字符所编写出的过滤条件 正则表达式引擎: grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f

Shell脚本基础学习

江枫思渺然 提交于 2019-12-02 14:58:30
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会这个东西, 你可以说入行了. 高级程序员不会这个, 是怎么回事, 我鄙视你, 所以我要学习, 记不住怎么办, 请看各种shell文件, 如 Go语言编译 ! 参考: 这里 从第一行开始 我们可以使用任意一种文字编辑器,比如gedit、kedit、emacs、vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bin/bash 此行称为 shebang (就是 sharp (#) + bang (!) 的意思),会指引操作系统使用接下来指定的程序运行此文件。此处用 /bin/bash 执行我们的文件。 一些人使用 #!/bin/sh 来让 sh 执行文件,按照习惯这表示任何支持 POSIX shell 命令语言的 sh 程序。为了用上我们所喜欢的 bash 拓展语法功能,我们就不这么用了。如果你使用别的脚本,例如 /bin/tcsh ,照着样子加个 #! 就行。 编辑结束并保存后,如果直接要执行该脚本,必须先使其具有可执行属性: chmod +x filename 此后在该脚本所在目录下,输入 ./filename 即可执行该脚本。 变量

shell脚本规范与变量运用

早过忘川 提交于 2019-12-02 13:52:05
前言 随着Linux系统在企业中应用的越来越多,服务器自动化管理也变得越来越重要。Linux服务器自动化维护工作中,除了计划任务的设置外,shell脚本的应用也是非常重要的一部分。 什么是shell脚本 Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。 shell脚本的应用场景: 重复性操作 批量事务处理 自动化运维 服务运行状态监控 定时任务执行 ...... 注意!shell脚本必须是可执行文件(chmod +x ...) shell的作用——命令解释器,翻译官 /bin/bash支撑shell脚本的运行 Linux压缩内核放在/boot/目录下 编写shell脚本代码 使用vi文本编辑器 每行一条Linux命令,按执行顺序一次编写 执行脚本文件啊 用source执行命令会切换路径执行,用sh 不会切换路径 “ . / ” 的执行方式和sh一样 重定向与管道操作 交互式硬件设备 标准输入:从该设备接收用户输入的数据 标准输出:通过该设备向用户输出数据 标准错误:通过该设备报告执行出错信息 重定向操作 管道操作符号" | " Shell变量的作用、类型

Linux 脚本控制和计划任务

守給你的承諾、 提交于 2019-12-02 11:15:13
脚本控制 在我们使用脚本做备份时 可能不希望用户对脚本做终端操作 这就需要我们做脚本捕获信号后的处理    trap "命令" signal 可以让脚本接受到signal信号时 执行""里面的命令     trap "echo sig15" 15 代表收到15号信号时 执行echo sig15   9号信号 kill 终止进程不可被阻塞 计划任务 当在某个固定时间自动执行脚本时 就用到了计划任务 有一次性计划任务和周期性计划任务 执行的任务不会用到标准输入输出 必须要重定向到文件   一次性计划任务: 只需要执行一次的任务 使用 at +时间 +命令(输入输出要重定向到文件) 使用atq 可查看待执行一次性任务列表   计划性周期任务: 需要周期性执行的任务 使用 crontab -c 编辑任务 任务的格式为 分钟 小时 日期 月份 星期 命令 使用crontac -l 查看现有计划任务   注意命令的路径要完整 输入输出要重定向 延时计划任务 当到了计划任务的执行时间 但是系统并未开机 可以开机后延时执行 anacron 脚本加锁 当一个脚本同时智能执行一份的时候 可以使用 flock 为脚本加锁执行 来源: https://www.cnblogs.com/kkcoolest/p/11742859.html

Linux shell脚本笔记

青春壹個敷衍的年華 提交于 2019-12-02 09:38:55
shell 命令解释器 是用来解释用户对系统的操作 使用 cat /etc/shells 可以查看 系统安装的shell Linux 启动过程 : BIOS -> MBR -> BootLoader(grub) -> kernel -> systemd -> 系统初始化 -> shell   BIOS 基本 输入输出 系统 选择U盘启动还是硬盘启动;MBR 硬盘里 可引导 的部分;BootLoader(grub) 启动内核工具 选择启动的内核;   kernel 启动内核;systemd 1号进程 其余所有进程派生于它;然后才是系统初始化 启动shell 执行脚本 的四种方式   1 bash ./filename.sh    2 ./filename.sh   3 souce ./filename.sh   4 . ./filename.sh   1和2 执行脚本时 会创建一个 新的进程 来执行 3和4执行脚本时会用 当前进程 来执行(环境变量是当前系统的环境变量) (不产生新进程执行的命令叫做 内建命令   1 3 4 执行脚本时脚本可以不拥有 执行权限 2 执行脚本时必须有可执行权限 管道 '|' 两个 进程 之间的 通信 第一个进程的输出当作第二个进程的输入 a|b|c a的输出当作b的输入 b的输出当作c的输入 (管道应该 规避内建命令 重定向

脚本运行控制

Deadly 提交于 2019-12-02 07:25:21
Linux通过信号在运行在系统的进程之间通信,用信号来停止启动及无条件终止进程。同样也可以用信号来控制shell脚本的运行。 1.Linux系统信号 Linux系统和应用程序可以生成30多个信号,最常见的有: 信号 值 描述 1 SIHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL 无条件终止进程 15 SIGTERM 可能的话终止进程 17 SIGSTOP 无条件停止,但不是终止进程 18 SIGTSTP 停止或暂停,但不终止 19 SIGCONT 继续运行停止的进程 bash shell 会忽略信号3和15,会处理1和2. 1.1产生信号 bash shell 允许键盘上的组合生成两种基本linux信号: Ctrl+C会生成SIGINT信号——终止进程 Ctrl+Z会生成SIGTSTP信号——暂停进程 注: shell中每个运行的进程称为作业,每个作业有唯一的作业号,shell会给第一个作业分配作业号1,第二个2,以此类推。 1.2捕捉信号trap trap可以捕获Linux的信号,并从shell中拦截。 trap命令格式:trap command signals 其中command是捕获信号后想要执行的命令,singals是一组用空格分开的信号,可以用数值或信号名来指定。 eg:trap “echo 'Sorry! I have

MySQL5.7脚本自动安装

耗尽温柔 提交于 2019-12-02 06:07:04
脚本里面没有把同步时间写进去,这个写在最前面 yum install -y ntp ntpdate cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 执行下列语句之前,请详细了解ntp和ntpdate的区别,由于我这里是测试环境,所以ntpdate并无问题,正式环境请慎用ntpdate (ntp是逐渐校正时间,ntpdate是跳跃式的直接修改时间,可能会对应用造成不良影响) (另外,在虚拟机上测试时,ntpd不是太明显) service ntpdate start /sbin/chkconfig --add ntpd /sbin/chkconfig --level 234 ntpd on 在阿里CentOS7环境下,会存在缺少libaio.so.1的报错 yum install -y libaio #!/bin/bash # FlyDido # V1.0 2018.6.4 # 部署MySQL5.7,请提前为数据存储路径"/data"划分好空间 # V1.1 2018.9.11 # 将V1.0版本的固定下载部署5.7.22版本更新为自动识别5.7最新版本 #关闭SeLinux sed -i 's/enforcing/disabled/g' /etc/sysconfig/selinux setenforce 0

Shell——你只需要了解这么多

烂漫一生 提交于 2019-12-02 06:05:09
一.Shell简介 Shell是一个用C语言编写的程序,通过Shell用户可以访问操作系统内核服务,类似于DOS下的command和后来的cmd.exe。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量、参数、函数、流程控制等等。它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。 二.两类程序设计语言 我经常说道shell脚本,其实是因为Shell是一种脚本语言,也就是解释性语言。程序设计语言可以分为两类:编译型语言和解释型语言。 语言 区别 编译型语言 需要预先将我们写好的源代码转换成目标代码,这个过程被称作“编译”。运行程序时,直接读取目标代码。由于编译后的目标代码非常接近计算机底层,因此执行效率很高,这是编译型语言的优点 解释型语言 也叫做脚本语言。执行这类程序时,解释器需要读取我们编写的源代码,并将其转换成目标代码,再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降 三.Shell脚本解释器 Linux的Shell脚本解释器种类众多,一个系统可以存在多个shell脚本解释器,可以通过cat /etc

CICD-Jenkins笔记2014-2018

て烟熏妆下的殇ゞ 提交于 2019-12-02 05:29:13
CICD-Jenkins笔记2014-2018 20141119 chenxin 20180726 chenxin update 四个环境,开发/测试/预发布/生产. 文中涉及的最新脚本,请查看西部战纪部署文档脚本备份文件. 涉及的脚本,如CI,CD等,除本文档外,其他部分参考备份文档. 安装Jenkins docker 镜像方式(不推荐) To use the latest LTS: docker pull jenkins/jenkins:lts (LTS为长期支持版,每12周发布1次) To use the latest weekly: docker pull jenkins/jenkins (每周发布) docker search jenkins docker pull jenkins docker run -d -p 10080:8080 jenkins 启动容器(会自动启动Jenkins服务) docker container exec -it 7b5cb169167c /bin/bash 进入容器 目录结构docker方式 /usr/local/bin/jenkins.sh #启动脚本 /usr/local/bin/jenkins-support /usr/share/jenkins/jenkins.war #war包存放位置 /var/jenkins_home/

SHELL学习笔记一

你说的曾经没有我的故事 提交于 2019-12-02 05:28:01
SHELL学习笔记一 使用变量 环境变量 $ cat test2 #!/bin/bash # display user information from the system. echo "User info for userid: $USER" echo UID: $UID echo HOME: $HOME $ echo "The cost of the item is $15" The cost of the item is 5 反斜线允许shell脚本将美元符解读为实际的美元符,而不是变量 $ echo "The cost of the item is \$15" The cost of the item is $15 用户变量 $ cat test3 #!/bin/bash # testing variables days=10 guest="Katie" echo "$guest checked in $days days ago" days=5 guest="Jessica" echo "$guest checked in $days days ago" $ 运行脚本会有如下输出。 $ chmod u+x test3 $ ./test3 Katie checked in 10 days ago Jessica checked in 5 days ago $ 命令替换