文档名称  Shell 从入门到精通 
作者信息 李振良(阿良)
技术博客 http://blog.51cto.com/lizhenliang
说明 本文档均为个人经验总结,转发请保留出处,抵制不道德行为。
文档会不定期修改或新增知识点,请关注群动态或微信公众号获取 最新文档。
最后更新时间 2019-2-1

​第一章 Shell基础知识​​ 1.1 简介Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。下面是处理流程示意图:Shell既然是工作在Linux内核之上,那我们也有必要知道下Linux相……

​第二章 Shell字符串处理之${}​

上一章节讲解了为什么用【Shell编程】Shell从入门到精通_shell脚本{}还有一个重要的功能,就是文本处理,单行文本基本上可以满足你所有需求。2.1 获取字符串长度# VAR=‘hello world!’ # echo $VAR hello world! # echo KaTeX parse error: Expected '}', got '#' at position 2: {#̲VAR} 122.2 字符串切…{parameter:offset}${pa

​第三章 Shell表达式与运算符​​​ 3.1 条件表达式表达式示例[ expression ][ 1 -eq 1 ] ​​expression `` 1 -eq 1​​test expressiontest 1 -eq 1 ,等同于[]3.2 整数比较符比较符描述示例-eq,equal等于[ 1 -eq 1 ]为true-ne,not equal不等于[ 1 -ne 1 ]为false-gt,greater tha

​第四章 Shell流程控制​​ 流程控制是改变程序运行顺序的指令。4.1 if语句4.1.1 单分支if 条件表达式; then 命令 fi示例:#!/bin/bash N=10 if [ $N -gt 5 ]; then echo yes fi

​第五章 Shell函数与数组​​ 5.1 函数格式:func() { command }示例1:#!/bin/bash func() { echo “This is a function.” } func # bash test.sh This

​第六章 Shell正则表达式​​ 正则表达式在每种语言中都会有,功能就是匹配符合你预期要求的字符串。Shell正则表达式有两种:基础正则表达式:BRE(basic regular express)扩展正则表达式:ERE(extend regular express),扩展的表达式有+、?、|和()下面是一些常用的正则表达式符号,我……

​第七章 Shell文本处理三剑客之grep​​ 7.1 grep过滤来自一个文件或标准输入匹配模式内容。除了grep外,还有egrep、fgrep。egrep是grep的扩展,相当于grep -E。fgrep相当于grep -f,用的少。Usage: grep [OPTION]… PATTERN [FILE]…支持的正则描述-E,–extended-regexp模式是扩展正则表达式(ERE)-

​第七章 Shell文本处理三剑客之sed 荐​​ 本章大纲:7.2 sed流编辑器,过滤和替换文本。工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并清空模式空间。然后再将下一行读入模式空间进行处理输出,以此类推,直到最后一行。还有一个空间叫保持空间,又称暂存空间,可以暂时

​第七章 Shell文本处理三剑客之awk 荐​​ 上节讲了grep、sed工具,已经能满足常见的文本处理需求,但有些需求对于他们来说心有余而力不足,今天所讲的工具就能完成他们大多数的功能,它就是三剑客中的老大AWK,我相信一定不会让你失望,下面一起看看吧!本章大纲:8.3 awkawk是一个处理文本的编程语言

​第八章 Shell标准输入、输出和错误​​ 文件描述符(fd):文件描述符是一个非负整数,在打开现存文件或新建文件时,内核会返回一个文件描述符,读写文件也需要使用文件描述符来访问文件。内核为每个进程维护该进程打开的文件记录表。文件描述符只适于Unix、Linux操作系统。8.1 标准输入、输出和错误文

​第九章 Shell信号发送与捕捉​​ 9.1 Linux信号类型信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数。进程可以通过三种方式来响应一个信号:1)忽略信号,即对信号不做任何处理,其中有两个信号不能忽略:SIGKILL及SIGSTOP。2)捕捉信

​第十章 Shell编程时常用的系统文件​​ 10.1 Linux系统目录结构/根目录,所有文件的第一级目录/home普通用户家目录/root超级用户家目录/usr用户命令、应用程序等目录/var应用数据、日志等目录/lib库文件和内核模块目录/etc系统和软件配置文件/bin可执行程序目录/boot内核加载所需的文件,grub引导/dev设备文

​第十一章 Shell常用命令与工具(一)​​ 本章节学习一些在编写Shell时的常用命令或工具及使用技巧。有人说Shell脚本是命令堆积的一个文件,按顺序去执行。还有人说想学好Shell脚本,要把Linux上各种常见的命令或工具掌握了,这些说法都没错。由于Shell语言本身在语法结构上比较简单,是面向过程编程,想

​第十一章 Shell常用命令与工具(二) 荐​​ 本章涉及命令如下:11.31 wget功能:非交互式网络下载,类似于HTTP客户端常用选项:-b, --background 后台运行日志记录和输入文件:-o, --output-file=FILE 日志写到文件-a, --append-output

​第十二章 Shell脚本编写及常见面试题(一)​​ 注意事项1)开头加解释器:#!/bin/bash2)语法缩进,使用四个空格;多加注释说明。3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。4)默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。5)有两个命令能帮

​第十二章 Shell脚本编写及常见面试题(二)​​​ 本章目录:12.11 屏蔽网站访问频繁的IP1)屏蔽每分钟访问超过200的IP方法1:以Nginx日志作为测试DATE=【Shell编程】Shell从入门到精通_文本处理_02(tail -n5000 access.log |grep $DATE |awk '{a[$1]++}END{for(i in

​第十二章 Shell脚本编写及常见面试题(三)​​​ 本章目录:12.21 FTP下载文件#!/bin/bash if [ $# -ne 1 ]; then echo "Usage: 【Shell编程】Shell从入门到精通_正则表达式_03(dirname 【Shell编程】Shell从入门到精通_shell脚本_04(basename $1) ft