本章目录:12.21 FTP下载文件#!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $0 filename" fi dir=$(dirname $1) file=$(basename $1) ft
本章目录:12.11 屏蔽网站访问频繁的IP1)屏蔽每分钟访问超过200的IP方法1:以Nginx日志作为测试DATE=$(date +%d/%b/%Y:%H:%M) ABNORMAL_IP=$(tail -n5000 access.log |grep $DATE |awk '{a[$1]++}END{for(i in
注意事项1)开头加解释器:#!/bin/bash2)语法缩进,使用四个空格;多加注释说明。3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。4)默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。 6)写脚本一定先测试再到生产上。本章目录:1
本章涉及命令如下:11.31 wget功能:非交互式网络下载,类似于HTTP客户端常用选项:-b, --background 后台运行日志记录和输入文件:-o, --output-file=FILE 日志写到文件-a, --append-output
本章节学习一些在编写Shell时的常用命令或工具及使用技巧。有人说Shell脚本是命令堆积的一个文件,按顺序去执行。还有人说想学好Shell脚本,要把Linux上各种常见的命令或工具掌握了,这些说法都没错。由于Shell语言本身在语法结构上比较简单,是面向过程编程,想实现复杂的功能有点强人所难!而且Shell本身又工作在Linux内核之上,在用户态调用Linux命令会很方面,所以大多数情况下我们都
10.1 Linux系统目录结构/根目录,所有文件的第一级目录/home普通用户家目录/root超级用户家目录/usr用户命令、应用程序等目录/var应用数据、日志等目录/lib库文件和内核模块目录/etc系统和软件配置文件/bin可执行程序目录/boot内核加载所需的文件,grub引导/dev设备文件目录,比如磁盘驱动/tmp临时文件目录/opt第三方软件安装目录10.2 环境变量文件系统级系统
9.1 Linux信号类型信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数。进程可以通过三种方式来响应一个信号:1)忽略信号,即对信号不做任何处理,其中有两个信号不能忽略:SIGKILL及SIGSTOP。2)捕捉信号。3)执行缺省操作,Linux对每种信号都规定了默认操作。Linux究竟采用上述三种方式的哪一个来响应信号呢?取决于传递给响应的
文件描述符(fd):文件描述符是一个非负整数,在打开现存文件或新建文件时,内核会返回一个文件描述符,读写文件也需要使用文件描述符来访问文件。内核为每个进程维护该进程打开的文件记录表。文件描述符只适于Unix、Linux操作系统。8.1 标准输入、输出和错误文件描述符描述映射关系0标准输入,键盘/dev/stdin -> /proc/self/fd/01标准输出,屏幕/dev/st
上节讲了grep、sed工具,已经能满足常见的文本处理需求,但有些需求对于他们来说心有余而力不足,今天所讲的工具就能完成他们大多数的功能,它就是三剑客中的老大AWK,我相信一定不会让你失望,下面一起看看吧!本章大纲:8.3 awkawk是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等等。在Linux系统下默认awk是gawk,它是awk的GNU版本。可以
本章大纲:7.2 sed流编辑器,过滤和替换文本。工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并清空模式空间。然后再将下一行读入模式空间进行处理输出,以此类推,直到最后一行。还有一个空间叫保持空间,又称暂存空间,可以暂时存放一些处理的数据,但不能直接输出,只能放到模式空间输出。这两个空间其实就是在内存中初始化的一个内存区域,存放正在处理的数据和临时存放的数据
7.1 grep过滤来自一个文件或标准输入匹配模式内容。除了grep外,还有egrep、fgrep。egrep是grep的扩展,相当于grep -E。fgrep相当于grep -f,用的少。Usage: grep [OPTION]... PATTERN [FILE]...支持的正则描述-E,--extended-regexp模式是扩展正则表达式(ERE)-F,--fixed-strings模式是换
正则表达式在每种语言中都会有,功能就是匹配符合你预期要求的字符串。Shell正则表达式有两种:基础正则表达式:BRE(basic regular express)扩展正则表达式:ERE(extend regular express),扩展的表达式有+、?、|和()下面是一些常用的正则表达式符号,我们先拿grep工具举例说明。符号描述示例.匹配除换行符(\n)之外的任意单个字符匹配123:echo
5.1 函数格式:func() { command }示例1:#!/bin/bash func() { echo "This is a function." } func # bash test.sh This i
流程控制是改变程序运行顺序的指令。4.1 if语句4.1.1 单分支if 条件表达式; then 命令 fi示例:#!/bin/bash N=10 if [ $N -gt 5 ]; then echo yes fi
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
上一章节讲解了为什么用${}引用变量,${}还有一个重要的功能,就是文本处理,单行文本基本上可以满足你所有需求。2.1 获取字符串长度# VAR='hello world!' # echo $VAR hello world! # echo ${#VAR} 122.2 字符串切片格式:${parameter:offset}${pa
1.1 简介Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。下面是处理流程示意图:Shell既然是工作在Linux内核之上,那我们也有必要知道下Linux相关知识。Linux是一套免费试用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号