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的更多相关文章

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

    shell脚本编程:        编程语言的分类:        根据运行方式            编译运行:源代码-->编译器(编译)-->程序文件                优 ...

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

    文本处理工具:    egrep:        支持扩展的正则表达式实现类似于grep文本过滤功能:grep -E        egrep [OPTIONS] PATTERN [FILE...]  ...

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

    文本处理工具:    linux上文本处理三剑客        grep,egrep,fgrep:文本过滤工具(模式:pattern)工具            grep:默认支持的是基本正则表达式: ...

  4. shell脚本学习指南-grep文本搜索命令-学习(3)

    1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全 ...

  5. [linux] grep 文本搜索工具

    grep [option] pattern file Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular ...

  6. shell脚本-基础

    shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...

  7. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  8. Shell脚本基础学习

    Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...

  9. 什么是Shell?Shell脚本基础知识详细介绍

    这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...

随机推荐

  1. —Entity Framework实例详解

    Entity Framework Code First的默认行为是使用一系列约定将POCO类映射到表.然而,有时候,不能也不想遵循这些约定,那就需要重写它们.重写默认约定有两种方式:Data Anno ...

  2. JavaScript(4)——CSS选择的艺术

    CSS选择的艺术 常用常见的选择器: 类选择器[ .class ],id选择器[ #id ],全局选择器[ * ],元素选择器[ element ] 根据层次关系定位: (1) element, el ...

  3. 一些php常用函数积累

    本文链接 <?php // id: ecffe70d3af54df9bad97b61918ace7d global $ct_path, $ct_log_path; $log_path = &qu ...

  4. 架构模式: Saga

    架构模式: Saga 上下文 您已应用每服务数据库模式.每个服务都有自己的数据库.但是,某些业务事务跨越多个服务,因此您需要一种机制来确保服务之间的数据一致性.例如,假设您正在建立一个客户有信用额度的 ...

  5. 【转帖】linux sort,uniq,cut,wc,tr,xargs命令详解

    linux sort,uniq,cut,wc,tr,xargs命令详解 http://embeddedlinux.org.cn/emb-linux/entry-level/201607/21-5550 ...

  6. 理解twisted中的reactor和deferred(二)

    Deferred可以添加多个回调函数,每个回调函数的结果作为下一个回调函数的参数 代码实例(可在pycharm中运行,摘自 https://twistedmatrix.com/documents/cu ...

  7. 基于Opencv快速实现人脸识别(完整版)

    无耻收藏网页链接: 基于OpenCV快速实现人脸识别:https://blog.csdn.net/beyond9305/article/details/92844258 基于Opencv快速实现人脸识 ...

  8. 从入门到自闭之Python--虚拟环境如何安装

    Windows下创建虚拟环境virtualenv ​ 如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版 ...

  9. spark内核篇-task数与并行度

    每一个 spark job 根据 shuffle 划分 stage,每个 stage 形成一个或者多个 taskSet,了解了每个 stage 需要运行多少个 task,有助于我们优化 spark 运 ...

  10. X86逆向13:向程序中插入Dll

    本章我们将学习Dll的注入技巧,我们将把一个动态链接库永久的插入到目标程序中,让程序在运行后直接执行这个Dll文件,这一章的内容也可以看作是第八课的加强篇,第八课中我们向程序中插入了一个弹窗,有木有发 ...