我的朗科运维第五课(2)
bash的特性之多命令执行:
当我们想要多个命令同时执行时,我们可以使用以下做法:
1.利用 `` 把我们要执行的第二个命令给引起,或者用 $() 把我们要执行的第二个命令给括起来;
格式: ~]# COMMAND1 $(COMMAND2)
2.利用管道把多个命令给连起来,从而实现进程之间的通信,一并实现了多命令同时执行;
格式: ~]# COMMAND1 | COMMAND2 ...
3.利用 ; 把每个要执行的命令分开,按顺序执行;
格式: ~]# COMMAND1 ; COMMAND2 ; ...
4.利用逻辑运算符,把多个命令连起来,进行选择执行;
常用的逻辑运算符:
与:逻辑乘法,&&
或:逻辑加法,||
非:逻辑取反,!
shell脚本编程:
编程:编写程序源代码。为了能够让用户在使用计算机的时候,可以以非交互式的方式完成某些任务,需要将这些人物编制成为一个文件,让计算机顺序读取,从而实现功能;
编程语言:
高级语言:
根据源代码的处理方式:
编译运行语言:源代码 --> 编译器(编译) --> 汇编器(汇编) --> {连接器(库的链接)} --> 可以直接执行的二进制文件;
解释运行语言:源代码 --> 直接启用跟源代码对应的解释器程序,有解释其边解释边执行;
根据其编程过程中的功能的实现是调用库还调用外部程序文件;
完整编程语言:利用库或编程组件进行编程;
脚本编程语言:shell脚本(调用shell程序,其次调用需要的外部命令文件;命令解释器提供了单一功能的编程接口,过程式编程逻辑的支持;
根据程序的编写方式:程序=指令+数据 程序=算法+数据结构过程是编程语言:
以指令为中心,围绕指令(算法)的实现设计数据和数据结构,数据为指令服务的;
算法或指令的实现形式:顺序执行、选择执行、循环执行
对象是编程语言:以数据为中心,将数据实例化为类,围绕着数据的需求来部署指令类、属性、方法
低级语言:汇编语言
shell脚本编程:过程式编程语言,解释云心,依赖于外部程序文件运行;
shell脚本到底是什么?
1.纯文本文档--文件中所存储的数据都是以字符为单位进行存储的;
2.根据用户需求来解决用户问题的大量命令的组合体;
3.“执行幂等性”--任何命令多次执行的结果是一致的;
很多命令都不具备“执行幂等性”,在shell脚本中就需要使用大量的程序逻辑来判断某个命令是否满足其运行条件,以避免在运行过程中出现严重错误;
shell脚本中的代码内容:
1.首行必须是shebang,解释器路径,必须占据绝对行首;在执行时,启动相应的解释器以解释脚本内诸多的命令;
#!/bin/bash
#!/bin/sh
#!/usr/bin/puthon
#!/usr/bin/per1
2.在shell脚本中,除了shebang之外,以#占据绝对行首的内容,均为注释行;解释器会忽略这样的行的内容;
3.解释器会忽略脚本中所有的空白行;
4.大量的命令和关键字(if,else,then,do,while,for,...)
注意:shell脚本一旦运行,实在当前的shell中根据shebang的指示,开启一个解释器(子shell)解释执行代码内容,shell脚本的内容是在一个子shell进程中实现的;
我们可以利用文本编辑工具来编写shell脚本;
nano、vi、vim、emacs、pico
推荐使用vim约定下,脚本文件名的后缀为.sh,也可以不加:
脚本的运行方法:
1.为脚本文件赋予执行权限,直接运行此文件;
chmod +x /PATH/TO/SCRIPT_FILE
~]# /PATH/TO/SCRIPT_FILE
如果在执行脚本时,只写脚本文件名不给出路径的话,必须确保PATH变量中保存的路径下,能找到该脚本文件;
2.直接使用解释器运行脚本,将脚本作为解释器命令的参数,
bash /PATH/TO/FILE
转载于:https://blog.51cto.com/gt520/1912737
我的朗科运维第五课(2)相关推荐
- 我的朗科运维第五课(1)
为了更好地保护系统的安全,linux系统中采用了用户权限管理. 其中用户的权限分为:普通权限.特殊权限.文件的特殊权限.FACL. 普通权限: 进程安全上下文: 1.判断进程的所有者是否为想要操作的属 ...
- 我的朗科运维第六课(2)
文本三剑客 grep系:grep.egrep.fgrep,文本搜索工具,基于"PATTERN"对于给定的文本进行模糊搜索: sed:Stream EDitor,流编辑器,行编辑器, ...
- 我的朗科运维第六课(1)
文本处理三剑客 grep系:grep.egrep.fgrep,文本搜索工具,居于"PATTERN"对于给定的文本进行模糊搜索. sed:tream EDitor,流编辑器,行编辑器 ...
- 我的朗科运维第四课(2)
用户和组的管理 所采用的认证为Cisco开发的AAA认证体系: Authetication:认证,核实身份是否正确: Authorization:授权,对已经核实身份的用户进行资源分配: Accoun ...
- 我的朗科运维第四课(1)
bash特性之变量: 变量名:一段连续的内存空间名. 变量值:变量名中存储的数据. 命名规则: 1.只能以字母或"_"开头,不能使用数字,后面可以是任意字母.数字和下划线: 2.大 ...
- Linux云自动化运维第三课
Linux云自动化运维第三课 一.正则表达式 1.匹配符 * ###匹配0到任意字符 ? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 ...
- Linux云自动化运维第六课
Linux云自动化运维第六课 第九单元 openssh-server 一.openssh-server 功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell 二.客户端连接方式 ss ...
- Ansible自动化运维(五)----Ansible剧本
Ansible自动化运维(五)----Ansible剧本 Ansible核心的功能,作用就是进行配置管理. Ansible需要编写的 playbook 剧本需要遵循一定的规则,格式,这个格式就称之为y ...
- 一线运维 DBA 五年经验常用 SQL 大全
一线运维 DBA 五年经验常用 SQL 大全(一) 1.查看表空间使用率. set line 220 select total.tablespace_name,round(total.MB, 2) a ...
最新文章
- 经典C语言程序100例之九零
- 解决IE10以下对象不支持“bind“属性或方法
- CF204E-Little Elephant and Strings【广义SAM,线段树合并】
- Vue系列Vue-cli 4配置别名(六)
- ResNet论文笔记
- PostgreSQL 如何实现网络压缩传输或加密传输(openssl)
- 【Linux文件系统监控的Java类库 inotify-java】
- opencv 学习第二课 摄像头、外部视频读取、处理、显示、写入 代码注释版 保证你每一行都能读懂
- CSMA/CA与CSMA/CD
- 汇编语言王爽实验17
- Android Lint 代码检查工具的使用
- win10安装Visual Studio 2019失败
- python normalize函数_Python Pandas Series.dt.normalize用法及代码示例
- iPad网游输入优化
- Jmeter录制手机app脚本
- 搭建SRS直播服务器
- 深圳超美海边烧烤场 深圳户外烧烤攻略
- YYText-显示富文本
- 模式识别实验matlab报告,西安交大模式识别实验报告.doc
- 静态网页如何上传附件
热门文章
- android功耗iphone,android和iPhone比起来哪个更耗电
- vue项目打包成apk安装包详细步骤
- html递归遍历,图的深度遍历是一个递归过程
- leetcode雕虫小技medium 5. Longest Palindromic Substring
- 2022-2028全球与中国在线服装租赁市场现状及未来发展趋势
- StringBuffer 和String常用方法
- Latex + overleaf(一)
- python 实现贪心算法
- Gitflow分支管理策略
- ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区