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脚本代码实例,需要的朋友可以参考下 ...
随机推荐
- Python3 Selenium自动化web测试 ==> 第九节 WebDriver高级应用 -- 操作select 和 alert
学习目的: 掌握页面常规元素的定位方法 场景: 网页正常的select元素下拉框常规方法和select专属方法 正式步骤: step1:常规思路select页面元素定位 处理HTML代码截图 # -* ...
- linux 系统函数 basename和dirname
在linux系统中有这样两个系统函数,basename 和 dirname 1.basename 用于 获取文件名, 1.1 当给定扩展名作为参数之后,甚至可以直接获取文件名 2.与basename ...
- Leetcode之动态规划(DP)专题-123. 买卖股票的最佳时机 III(Best Time to Buy and Sell Stock III)
Leetcode之动态规划(DP)专题-123. 买卖股票的最佳时机 III(Best Time to Buy and Sell Stock III) 股票问题: 121. 买卖股票的最佳时机 122 ...
- robots.txt文件
网站通过一个符合Robots协议的robots.txt文件来告诉搜索引擎哪些页面可以爬取.Robots.txt协议全称“网络爬虫排除标准”.一般情况下,该文件以一行或多行User-agent记录开始, ...
- 【miscellaneous】海康相机RTSP连接代码分析
海康相机RTSP连接代码分析 最近在做海康相机rtsp连接获取音视频的工作,现在介绍一下分析过程和源码. [源码在我上传的共享资料中: http://download.csdn.net/detail/ ...
- 【DSP开发】gel文件编写
以下转载自:http://blog.csdn.net/henhen2002/article/details/4573447 GEL--通用扩展语言,无类型语言,只有int类型,当CCS运行时首先执行这 ...
- 配置nginx直接使用webpack生成的gz压缩文件,而不用nginx自己压缩
参考链接:https://blog.csdn.net/ywl570717586/article/details/100011721
- hbase增量和全量备份
1.星期五全量备份星期四23:59:59的数据,星期一全量备份到星期日23:59:59的数据,其他的增量备份,备份前一天00:00:00 - 23:59:59的数据 * * /opt/prodfu ...
- [转帖]LINUX网络配置---nmtui&nmcli
LINUX网络配置---nmtui&nmcli https://blog.51cto.com/13625527/2151853?source=dra 两年前曾经打打印过 几页命令 里面就有 n ...
- linux yum 使用epel源
由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题. ...