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

bash特性及bash脚本编程初步:
用户要跟计算机交互就需要有终端,比如:显示器、键鼠等,在终端有附着的接口程序
GUI:KDE、GNome、Xfce
CLI:/etc/shells
bash
zsh
fish
bash的特性:
命令行展开:~,{}
命令别名:alias,unalias
命令历史:history
文件名通配:glob
快捷键:Ctrl+a,e,u,k,l
命令补全:$PATH
路径补全:
bash特性之:命令hash
缓存此前命令的查找结果:key-value
key:搜索键
value:值
hash命令:
hash:确定并记住每一个给定名称命令的完整路径,如果不提供参数,则显示已经记住的命令的信息
-d 忘记每一个已经记住的命令的位置
~]# hash -d cat
-r 忘记所有记住的位置
bash特性之:变量
程序:指令+数据
指令:由程序文件提供
数据:IO设备输入、文件、管道、变量
程序:算法+数据结构
变量名+指向的内存空间
变量赋值:name=value
变量类型:存储格式、表示数据范围、参与的运算
编程语言:
强类型变量
弱类型变量:
bash把所有变量统统视作字符型
bash中的变量无需事先声明;随用随取;相当于,把声明和赋值过程同时实现
声明:类型,变量名
变量替换:把变量名出现的位置替换为其所指向的内存空间中数据
变量引用:${var_name},$var_name
变量名:变量名只能包含数字、字母和下划线,而且不能以数字开头
变量名:见名知义,命名机制遵循某种法则;不能够使用程序的保留字,例如:if,else,then,while等等
例如:chicken_Total
bash变量类型:
本地变量:作用域仅为当前shell进程
环境变量:作用域为当前shell进程及其子进程
局部变量:作用域为某代码片断(函数上下文)
位置参数变量:当执行脚本的shell进程传递的参数
特殊变量:shell内置的有特殊功用的变量,例:$?,0表示成功,1-255表示失败
本地变量:
变量赋值:name=value
变量引用:$(name),$name
"":变量名会替换为其值
'':变量名不会替换为其值
查看变量:set
撤销变量:unset name
注意:此处非变量引用
环境变量:
变量赋值:
(1)export name=value
(2)name=value
export name
(3)declare -x name=value
(4)name=value
declare -x name
变量引用:$(name),$name
注意:bash内嵌了许多环境变量(通常为全大写字符),用于定义bash的工作环境,我们自己定义时尽量使用小写
PATH,HISTFILE,HISTSIZE,HISTFILESIZE,HISTCONTROL,SHELL,HOME,UID,PWD,OLDPWD
查看环境变量:
export
declare -x
printenv
env
撤销环境变量:unset name
只读变量:
declare -r name
readonly name
只读变量无法重新赋值,并且不支持撤销;存活时间为当前shell进程的生命周期,随shell进程终止而终止
bash特性之多命令执行:
~]# COMMAND1;COMMAND2;COMMAND3;...
逻辑运算:
运算数:真(true,yes,on,1)
假(false,no,off,0)
与:
1 && 1 = 1
1 && 0 = 0
0 && 1 = 0
0 && 0 = 0
或:
1 || 1 = 1
1 || 0 = 1
0 || 1 = 1
0 || 0 = 0
非:
! 1 = 0
! 0 = 1
短路法则:
~]# COMMAND1 && COMMAND2
COMMAND1为“假”,则COMMAND2不会再执行
COMMAND1为“真”,则COMMAND2必须执行
示例: ~]# touch /tmp/test.etc && ls /etc > /tmp/test.etc
~]# COMMAND1 || COMMAND2
COMMAND1为“真”,则COMMAND2不会再执行
COMMAND1为“假”,则COMMAND2必须执行
示例: ~]# id $username || useradd $username
shell脚本基础和grep文本处理工具企业应用1的更多相关文章
- shell脚本基础和grep文本处理工具企业应用2
shell脚本编程: 编程语言的分类: 根据运行方式 编译运行:源代码-->编译器(编译)-->程序文件 优 ...
- shell脚本基础和grep文本处理工具企业应用4
文本处理工具: egrep: 支持扩展的正则表达式实现类似于grep文本过滤功能:grep -E egrep [OPTIONS] PATTERN [FILE...] ...
- shell脚本基础和grep文本处理工具企业应用3
文本处理工具: linux上文本处理三剑客 grep,egrep,fgrep:文本过滤工具(模式:pattern)工具 grep:默认支持的是基本正则表达式: ...
- shell脚本学习指南-grep文本搜索命令-学习(3)
1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...
- [linux] grep 文本搜索工具
grep [option] pattern file Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular ...
- shell脚本-基础
shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- Shell脚本基础学习
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...
- 什么是Shell?Shell脚本基础知识详细介绍
这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...
随机推荐
- JavaScript(6)—— 返回特征数字
案例要求 根据业务情况,要把核心的东西变成一个模块便于复用,慢慢沉淀后,能够更快更高效地编程. 业务核心算法: /* 数字检测 @return 返回2,能被3和7整除 返回1,能够被3整除 返回0,不 ...
- Leetcode之动态规划(DP)专题-486. 预测赢家(Predict the Winner)
Leetcode之动态规划(DP)专题-486. 预测赢家(Predict the Winner) 给定一个表示分数的非负整数数组. 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端 ...
- python 配合 es 查询数据
1.python脚本 [root@do1cloud03 ~]# cat python-es.py #!/usr/bin/env python3 from elasticsearch import El ...
- 2019-07-30 C#基础知识学习
继承和多态 接口与抽象类的区别:1.在接口中仅能定义成员,但是不能有具体的实现:抽象类除了抽象成员以外,其他成员有具体的实现.2.在接口中不能声明字段,并且不能声明任何私有成员,成员不能包含任何修饰符 ...
- 第9章:LeetCode--算法:HASH表
哈希表(Hash table,也叫散列表),关键值K和内容的映射表,通过映射函数实现,hashtable(key,value) 进行查询的时候,就是使用哈希函数将关键码key转换为对应的数组下标,并定 ...
- Python【无引号、单引号、双引号、三引号】
无引号#数字和数学运算是标准化.有固定格式的>>> print(520) 520>>> print(1+1)2 单引号#文字却能够千变万化>>> ...
- Unknown custom element: <swiper>
刚开始使用VUE,一直提示这个,后来才发现是注册组件时注册反了:先新建VUE实例再注册组件是问题根源,调转一下顺序即可解决
- Win32汇编过程与宏调用
汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地 ...
- Java 时间不一致
1.new Date() 得到的时间?和系统相差 相差8个小时 2.eclipse控制台打印的时间与系统相差 相差8个小时 3.log4j日志的时间与与系统相差 相差8个小时 上述问题其实是同一个问题 ...
- imx8移植opencv(3.0以上版本)笔记
基本步骤参考我同事的博客:https://blog.csdn.net/hunzhangzui9837/article/details/89846928 以下是在移植到imx8平台时的笔记和遇到的问题及 ...