shell函数

Shell脚本编写

我与影子孤独终老i 提交于 2019-11-27 07:03:46
1. 什么是 Shell 脚本 Shell脚本是利用 shell 的功能所写的一个程序 program,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。 Shell 脚本可以简单的被看成是批处理文件, 也可以被说成是一个程序语言,且这个程序语言由于都是利用 shell 与相关工具指令, 所以不需要编译即可执行,且拥有不错的除错 (debug) 工具,所以,shell可以帮助系统管理员快速的管理好主机。 2.Shell 脚本特性 自动化常用命令 追踪与管理系统的重要工作 简单入侵检测功能 连续指令单一化 简易的数据处理 跨平台支持与学习历程较短 3.创建 shell 脚本 第一步:使用文本编辑器(vim)来创建文本文件 第一行必须包括shell 声明序列:#! #!/bin/bash (告诉系统执行的时候要调用什么解释器) 添加注释 注释以# 开头 (# 都是批注用途,加在#后面的数据都被当做批注文字) 第二步:运行脚本 给予执行权限,在命令行上指定脚本的绝对或相对路径 直接运行解释器,将脚本作为解释器程序的参数运行 例:计算/etc/passwd文件中的第10个用户和第20个用户的ID之和 #!/bin/bash #Filename:ID.sh 文件名:ID.sh

Shell总结2

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 07:03:09
1---------->>sed命令用来取指定范围行。 2.--------------->>>>“$?“返回值的用法 (1)判断命令、脚本或函数等程序是否执行成功。 (2)若在脚本中调用"exit 数字",则会返回这个数字给"$?"变量。 (3)如果实在函数里,则通过"return 数字"把这个数字以函数返回值的形式传给"$?" 来源: https://www.cnblogs.com/wqs-Time/p/11349679.html

shell的编程原理

佐手、 提交于 2019-11-27 05:50:23
一、编程介绍 1、早期编程 (1)驱动 硬件默认是不能用的; (2)不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译”; (3)更趋近于硬件开发的工程师需要学习“汇编语言”,而“汇编语言”被厂家所限制,C、C++的底层就是汇编语言 2、现在编程 基于高级和超高级语言,使程序员能够更好的实现编程功能 3、编程语言的分类 根据服务的重心不同分为: (1)面向过程:侧重于指令 (2)面向对象:侧重于数据 根据程序翻译成二进制指令的方式不同分为: (1)低级语言:汇编语言 (2)高级语言:根据编译方式的不同分为:         (1)解释型:逐行翻译,逐行执行。例:shell、python、JAVA         (2)编译型:一次编译,全部执行。例:C、C++、C#、JAVA 4、顺序执行无逻辑关系   循环执行 -- *for* while until   选择执行 -- 分支 if case* 二、shell脚本语言的介绍 1、优缺点   优点:调用os(操作系统)的命令行,来实现所有功能;   缺点:没有库调用(区分python) 2、Shell脚本包括:(1)*命令*(非常重要)          (2)变量(全局变量、局部变量、本地变量、传参)          (3)逻辑关系 3、Shell的第一句话(必须写) #!/bin/bash –定义脚本解释器

shell脚本8-13

天大地大妈咪最大 提交于 2019-11-27 05:38:55
一、文本处理工具 wc命令 wc(Word count)用于统计文本文件中的字符个数 15是行数 78是字符个数 805是文件大小(字节)【1字节等于8比特】 2、参数:-l(统计行数)、-w(统计单词数)、-c(统计字节数) cut(切片)命令 1 、指定分隔符,切割文件 2、常见参数:-d(指定分割符)、-f(指定提取哪一列)、--output-delimiter=‘’(将输出的分隔符,替换为自己想用的分隔符) 示例:cut -d” ” -f1 /etc/fstab(取第一列) cut -d” ” -f1,3 /etc/fstab(取第1、3列) cut -d” ” -f1-3 /etc/fstab(取第1到3列) cut -d[:] -f1d /etc/fstab(指定分隔符为空格和冒号)([ ]代表括号里的 任意字符都匹配) 3、 cut 无法指定多个分隔符, awk 可以指定多个分隔符 【 cut 的局限性: 1 、 -d 指定分隔符,不能同时指定多个 2 、不能做高级的格式 化输出;所以要掌握 awk 命令】 sort命令 1、sort命令根据 ASCII 码来进行排序,并不是数值大小 2、常用参数:-r(逆序)、 -f (忽略字符的大小写)       -t(指定字段分隔符)、 -n (以数值大小排序)        -u(排序去除重复,重复的不显示)        

学shell的第三天

折月煮酒 提交于 2019-11-27 05:31:01
编程原理: 1.编程介绍   早期编程      驱动 硬件默认是不能使用的;      不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行翻译;      更趋近与硬件开发的工程师,要学习“汇编语言”;而“汇编语言”被厂家限制    现在编程     基于高级语言,以及超高级语言,更好的让程序员能够的实现编程功能   编程语言的分类:     高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)     解释型--逐行翻译,逐行执行 shell     编译型--一次编译,全部执行 c语言 c++ c#     程序 = 指令 + 数据     面向对象--侧重于数据的编程语言     面向过程--侧重于指令   编程语言的执行方式:     1、顺序执行     2、循环执行--for(遍历) while(循环条件) until(和while相反)     3、选择执行--分支if *case* 2、shell脚本语言介绍   优点:调用os(操作系统)的命令行,来实现所有功能;    缺点:没有库调用   shell脚本包括:1、*命令*(非常重要)2、变量(全局变量、局部变量、本地变量、传参)3、逻辑关系   shell的第一句话!!!   #!/bin/bash --定义脚本解释器   /etc/shells --- 查看当前系统支持的shell程序

delphi 文件夹操作(监控)

天涯浪子 提交于 2019-11-27 05:04:38
delphi 监控文件系统 delphi 监控文件系统 你是否想为你的Windows加上一双眼睛,察看使用者在机器上所做的各种操作(例如建立、删除文件;改变文件或目录名字)呢? 这里介绍一种利用Windows未公开函数实现这个功能的方法。 在Windows下有一个未公开函数SHChangeNotifyRegister可以把你的窗口添加到系统的系统消息监视链中,该函数在Delphi中的定义如下: Function SHChangeNotifyRegister(hWnd,uFlags,dwEventID,uMSG,cItems:LongWord; lpps:PIDLSTRUCT):integer;stdcall;external 'Shell32.dll' index 2; 其中参数hWnd定义了监视系统操作的窗口得句柄,参数uFlags dwEventID定义监视操作参数,参数uMsg定义操作消息,参数cItems定义附加参数,参数lpps指定一个PIDLSTRUCT结构,该结构指定监视的目录。 当函数调用成功之后,函数会返回一个监视操作句柄,同时系统就会将hWnd指定的窗口加入到操作监视链中,当有文件操作发生时,系统会向hWnd发送uMsg指定的消息,我们只要在程序中加入该消息的处理函数就可以实现对系统操作的监视了。 如果要退出程序监视

shell 学习笔记7-shell-函数

旧时模样 提交于 2019-11-27 05:01:44
一、函数   1、什么是shell函数     把相同程序段定义成函数,可以减少整个程序的代码量,提升开发效率     增加程序的可读性,易读性,提升管理效率     可以失效程序功能模块化,使程序具备可移植性     其实linux系统里面近2000个命令可以说都是shell的函数   2、语法      function 名称() 复合命令块[重定向] function 函数名 () { #function可以忽略不写 指令。。。 return n    #和exit类似,return是退出函数 }   3、基础实践     1)开发一个建立两个简单函数并调用执行 [root@web1 scripts]# cat test21.sh #!/bin/bash boy(){ echo "i am boy" } function girl(){ echo "i am girl" } boy girl [root@web1 scripts]# ./test21.sh i am boy i am girl [root@web1 scripts]# cat test21-1.sh #!/bin/bash boy(){ echo "i am boy" } function girl(){ echo "i am girl" } boy girl boy1 [root@web1 scripts]

Linux Shell编程

六眼飞鱼酱① 提交于 2019-11-27 00:16:33
在linux系统中,我们一般都是用C语言写服务端程序,但是一般我们不直接启动这个程序,而是通过一个shell脚本启动和关闭(需要设置一些环境变量和防止打开多个改程序,打开多个后需要找到pid才能关闭) 那么shell是什么呢? 说白了shell是操作系统提供给我们的一种语言,用来将用户的命令输送到内核中执行 shell编程 1首先我新建一个test2.sh,存放下面的一段shell代码 2保存后,修改这个shell为可执行文件 chmod +x test2.sh #! /bin/sh #定义变量 name=张三 echo $name echo "参数:$*" echo "参数个数$#" 输出结果: 下面分别介绍字段的含义 第一行 : 一般默认第一行都是上面这段#! /bin/sh, 通知系统用/bin/sh来执行下面的程序。 以“#”开头的行代表注释 echo代表输出后面一段话的到用户界面 $name代表使用了name这个变量(定义shell变量在下面介绍) $* 代表所有的参数(我们在shell命令后面加了hello 和world两个参数) $#代表参数的个数 有了初步的认识,我们就开始踏入shell编程吧! 1shell变量 定义shell变量:(注意等号左边右边不可以有空格) shellname=value 使用shell变量 $ shellname 2$数字 代表第几个参数

精通shell编程--最后的总结

故事扮演 提交于 2019-11-26 23:38:58
不得不说shell语法是丑陋的,操作是简单高效的,最后一次学习总结shell 字符串删除与替换等常见操作 ## 字符串长度 a=1234 echo "${#a}" expr length "${a}" ## 字符串 索引 expr index ${a} 23 # 拆分 2 3 一个个查找找到第一个匹配的就返回 ## 字符串 匹配 有问题? expr match ${a} 123 # 从头开始匹配 可以联想 match search findall ## substring echo ${a:2:3} #--> 3,4 echo ${a: -3} # --> 反向,特别注意冒号后有空格 或者写成 echo ${a:(-3)} echo ${a:(-3):2} # ${} 下标是从 0 开始, expr 却是从1开始,已经无力吐槽!!!丑陋的shell!!! expr substr ${a} 2 3 -->234 b="I love you! Do you love me?" echo "${b#*ove}" # 正向非贪婪 删除 到ove截止 --》 you! Do you love me? echo "${b##*ove}" # 正向贪婪 删除 到ove截止 --》 me? echo "${b%ove*}" # 反向也就是从右到左非贪婪到ove --》 I love you! Do

COBAIT STRIKE

吃可爱长大的小学妹 提交于 2019-11-26 23:22:45
原文地址: https://www.payload.com.cn/?m=201907 客户端攻击重定向设置 view —application 查看目标系统日志 attack—web-drive-by—site clone 在此之前需要先生成一段攻击代码 钓鱼邮件实施 的4个阶段 session传递 将cobait strike 的 session 传递给metasploit框架的兄弟 新建监听,主机和端口与metasploit 框架兄弟一致 spawn 将 session 传递给metasploit队友 浏览器转发 使用目标的身份进入网站,目前只支持IE浏览器 其实相当于我们直接使用目标应用在浏览网页,加入对方近期登陆过某些网站并且cookie信息还存在,我们无需密码就可以进入对方的博客、邮箱等。 设置浏览器代理 CS上可以看到事件日志信息 权限提升 cmd下输入 whoami /groups 查看用户所属系统等级信息 win vista 之后系统权限等级分为三个等级,高级(管理)、中级(普通)、低级(限制执行) powerup 权限提升 shell whoami /groups 查看用户和组信息 我们尝试使用powertools 下面的 powerup 来提权 mimikatz lsadump::cache 获取lasas中的明文口令 mimikatz misc::memssp