随笔分类 -  SHELL

shell相关内容
摘要:12.21 FTP下载文件 #!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $0 filename" fi dir=$(dirname $1) file=$(basename $1) ftp -n -v << EOF # -n 自动登录 open 192 阅读全文
posted @ 2020-03-21 11:08 流氓徐志摩 阅读(289) 评论(0) 推荐(0)
摘要:14.11 屏蔽网站访问频繁的IP 1)屏蔽每分钟访问超过200的IP 方法1:以Nginx日志作为测试 DATE=$(date +%d/%b/%Y:%H:%M) ABNORMAL_IP=$(tail -n5000 access.log |grep $DATE |awk '{a[$1]++}END{ 阅读全文
posted @ 2020-03-21 11:04 流氓徐志摩 阅读(261) 评论(0) 推荐(0)
摘要:1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格;多加注释说明 3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。 4)默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。 5)有两个命令能帮助我调试脚本:set -e 遇到执行非 阅读全文
posted @ 2020-03-21 11:00 流氓徐志摩 阅读(353) 评论(0) 推荐(0)
摘要:13.31 wget 功能:非交互式网络下载,类似于HTTP客户端 常用选项: -b, --background 后台运行 日志记录和输入文件: -o, --output-file=FILE 日志写到文件 -a, --append-output=FILE 日志追加到文件 -d, --debug 打印 阅读全文
posted @ 2020-03-16 15:22 流氓徐志摩 阅读(414) 评论(0) 推荐(0)
摘要:本章节学习一些在编写Shell时的常用命令或工具及使用技巧。有人说Shell脚本是命令堆积的一个文件,按顺序去执行。还有人说想学好Shell脚本,要把Linux上各种常见的命令或工具掌握了,这些说法都没错。由于Shell语言本身在语法结构上比较简单,是面向过程编程,想实现复杂的功能有点强人所难!而且 阅读全文
posted @ 2020-03-16 15:15 流氓徐志摩 阅读(313) 评论(0) 推荐(0)
摘要:12.1 Linux系统目录结构 / 根目录,所有文件的第一级目录 /home 普通用户家目录 /root 超级用户家目录 /usr 用户命令、应用程序等目录 /var 应用数据、日志等目录 /lib 库文件和内核模块目录 /etc 系统和软件配置文件 /bin 可执行程序目录 /boot 内核加载 阅读全文
posted @ 2020-03-16 15:08 流氓徐志摩 阅读(221) 评论(0) 推荐(0)
摘要:11.1 Linux信号类型 信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数。 进程可以通过三种方式来响应一个信号: 1)忽略信号,即对信号不做任何处理,其中有两个信号不能忽略:SIGKILL及SIGSTOP。 2)捕捉信号。 3)执行缺省操 阅读全文
posted @ 2020-03-16 15:06 流氓徐志摩 阅读(568) 评论(0) 推荐(0)
摘要:文件描述符(fd):文件描述符是一个非负整数,在打开现存文件或新建文件时,内核会返回一个文件描述符,读写文件也需要使用文件描述符来访问文件。 内核为每个进程维护该进程打开的文件记录表。文件描述符只适于Unix、Linux操作系统。 8.1 标准输入、输出和错误 文件描述符 描述 映射关系 0 标准输 阅读全文
posted @ 2020-03-16 14:55 流氓徐志摩 阅读(443) 评论(0) 推荐(0)
摘要:awk awk是一个处理文本的编程语言工具,能用简短的程序处理标准输入或文件、数据排序、计算以及生成报表等等。 在Linux系统下默认awk是gawk,它是awk的GNU版本。可以通过命令查看应用的版本:ls -l /bin/awk 基本的命令语法:awk option 'pattern {acti 阅读全文
posted @ 2020-03-16 14:46 流氓徐志摩 阅读(186) 评论(0) 推荐(0)
摘要:sed,流编辑器,过滤和替换文本 工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并清空模式空间,然后再将下一行读入模式空间进行处理,以此类推,直到最后一行,还有一个空间叫保持空间,又称暂存空间,可以暂时存放一些处理的数据,但不能直接输出,只能放到模式空间输出。 这两个空间 阅读全文
posted @ 2020-03-16 14:29 流氓徐志摩 阅读(256) 评论(0) 推荐(0)
摘要:grep是过滤来自一个文件或标准输入匹配模式内容。 除了grep外,还有egrep,fgrep。 egrep是grep的扩展,相当于grep -E 。fgrep相当于grep -f,用的少 用法:grep [OPTION]......PATTERN[FILE]..... 参数详解: -E 模式是扩展 阅读全文
posted @ 2020-03-14 11:33 流氓徐志摩 阅读(252) 评论(0) 推荐(0)
摘要:正则表达式在某种语言中都会有,功能就是匹配符合您预期要求的字符串 shell正则表达式有两种: 基本正则表达式:BRE(基本正则表达式) 扩展正则表达式:ERE(扩展正则表达式),扩展的表达式有+,?,|和() 符号 描述 示例 。 匹配除换行符(\n)之外的任意字符 匹配123: echo -e 阅读全文
posted @ 2020-03-14 10:34 流氓徐志摩 阅读(192) 评论(0) 推荐(0)
摘要:5.1函数 格式: func (){ command } 示例1: #!/bin/bash func(){ echo "this is a function" } func #执行结果 bash test.sh this is a function Shell函数很简单,函数名后跟双括号,再跟双大括 阅读全文
posted @ 2020-03-12 15:21 流氓徐志摩 阅读(127) 评论(0) 推荐(0)
摘要:4.1、if语句 4.1.1单分支 if 条件表达式;then 命令 fi #!/bin/bash N=10 if [ $N -gt 5 ]; then echo yes fi 执行结果 bash test.sh yes 4.1.2双分支 if 条件表达式;then 命令 else 命令 fi 示例 阅读全文
posted @ 2020-03-12 15:17 流氓徐志摩 阅读(177) 评论(0) 推荐(0)
摘要:3.1、条件表达式 表达式 示例 [expression] [ 1 -eq 1 ] `expression` ` 1 -eq 1 ` test expression test 1 -eq 1 ,等同于[] 3.2整数比较符 比较符 描述 示例 -eq, equal 等于 [ 1 -eq 1]为tru 阅读全文
posted @ 2020-03-12 09:53 流氓徐志摩 阅读(423) 评论(0) 推荐(0)
摘要:上一章节讲解了为什么要用${}引用变量,${}还有一个重要的功能,就是文本处理,单行文本基本上可以满足你所有需求。 2.1、获取字符串长度 [root@localhost ~]# VAR='HELLO WORLD!' [root@localhost ~]# echo $VAR HELLO WORLD 阅读全文
posted @ 2020-03-11 08:16 流氓徐志摩 阅读(403) 评论(0) 推荐(0)
摘要:1、简介 shell是一个c语言编写的脚本语言,他是用户与linux的桥梁,用户输入命令交给shell处理,shell将相应的操作传递给内核(kernel),内核把处理的结果输出给用户。 下面是处理的流程图: shell既然是工作在linux内核之上,那我们也有必要知道下linux相关知识。 lin 阅读全文
posted @ 2020-03-05 17:19 流氓徐志摩 阅读(335) 评论(0) 推荐(0)