脚本开发目前了解一下就行,有兴趣自己学
演示案例:
➢ Windows&Linux-脚本开发-Bat&Shell
➢ Windows&Linux-权限差异-文件&用户
#系统命令集合
在线参考:https://book.shentoushi.top/
#Windows Cmd&PowerShell
CMD命令终端:
BAT格式文件(全是系统命令写的)
echo
@字符放在命令前将关闭该命令回显,无论此时echo是否为打开状态
@echo off
@echo on
echo “hello”
echo “hello” “world”
常见:
pause 将dos界面暂停关闭(执行后控制台会暂停,提示按任意键继续,防止bat脚本运行完毕后窗口自动关闭)
:: 注释
chcp 65001 乱码解决
变量
set x=hello
set y=world
echo %x% %y%
set /p input=请输入:/p代表接收用户键盘输入,把输入内容存入input变量
%cd% 打印当前路径
函数 :fun_main
start 调用其他程序,如可执行文件exe
goto 用于函数跳转,其中特别的是goto :eof 直接跳到脚本末尾,终止当前代码段,等价于return
call 用于调用函数,也可以调用别的bat脚本
for
dir /b 指定目录 这个语法可以用于获得指定目录下的所有文件和文件夹
for /f 遍历指定目录下所有的文件和文件夹
for /d 遍历指定目录下所有的文件夹
for /r 遍历指定目录下所有的文件和子文件夹中的文件
for /l 是Windows批处理脚本中的一种循环语句,用于按数字范围和步长进行循环
%%i 则是声明的变量,可以是任意的变量名,但变量名前面必须加上两个百分号%%
for 进阶 delims(分隔符),读取的字符串会以这些分隔符进行拆分成多个子字符串
FIND
/V 显示所有未包含指定字符串的行。
/C 仅显示包含字符串行的次数。
/N 显示行号。
/I 搜索字符串时忽略大小写。
/OFF[LINE]:不要跳过具有脱机属性集的文件。
“string”:指定要搜索的文本字符串。
[drive:][path]filename:指定要搜索的文件
bat中 比较符号
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
Linux-> ; | || & && ``
;:命令分隔符,无论前一个命令执行成功或失败,都会执行后一个命令。
|:管道符,将前一个命令的输出作为后一个命令的输入。
||:逻辑或,前一个命令执行失败时,执行后一个命令,如果前一个命令执行成功,后一个命令会被跳过。
&:后台任务符,将前一个命令放入后台执行,立即执行下一个命令。
&&:逻辑与,前一个命令执行成功时,执行后一个命令,如果前一个命令执行失败,后一个命令就不会执行。
`:命令替换符,将反引号内的命令执行结果作为字符串替换到当前命令中。
Windows->|| && |和Linux的用法一样。&是命令分隔符,无论前一个命令成功还是失败,后一个命令都执行。
简易案例:
1、获取目录下所有文件目录
dir /b
2、用Ping获取网段存活主机
for l %%i in (1,1,255) do ping -n 1 192.168.1.%%i | find “TTL” && echo 192.168.1.%%i 在线(这里重点:%i是在cmd中敲,%%i是在.bat批处理文件里面)
3、获取计算机信息筛选补丁(省略)
#Linux Shell编程入门
基础命令:首先,你需要熟悉一些基本的Linux命令,如ls、cd、cp、mv、rm等,这些是编写脚本的基础。
文件系统:了解Linux文件系统结构和权限管理,知道如何使用chmod(修改权限)、chown(修改文件归属者)等命令。
环境变量:理解环境变量的概念和用法,以及如何使用export、echo $VAR_NAME等命令。
重定向和管道:学习如何使用输入输出重定向(>(覆盖输入)、<(读取文件作为命令输入)、>>(追加输入))和管道(|)。
脚本基础:脚本的创建和执行。
脚本的第一行(shebang,如#!/bin/bash)。
脚本的注释(以#开头)。
变量:如何定义和使用变量。
特殊变量(如$0(当前脚本名)、$1(第一个传入参数)、$@(所有传入参数)、$#(传入参数的总个数)等)。
条件语句:学习如何使用if、elif、else和fi来编写条件逻辑。
循环:掌握for循环和while循环的用法。
函数:了解如何定义和调用函数。
文本处理:学习使用文本处理工具,如grep、sed、awk等。
参考学习:https://mp.weixin.qq.com/s/qXZkKrF1vYtJv07L0-hkAA
简易案例:
1、统计登录日志中SSH爆破事件
2、统计Web日志中的SQL攻击事件
这些也省略,感兴趣自己查,等到红蓝队我准备再系统学一下
#Windows权限
文件和目录权限
完全控制,修改,读取和执行,列出文件夹内容,读取,写入,拒绝等
完全控制(Full Control):允许用户对文件夹、子文件夹、文件进行全权控制,包括修改资源的权限、获取资源的所有者、删除资源的权限等。
修改(Modify):允许用户修改或删除资源,同时拥有写入及读取和运行权限。
读取和运行(Read & Execute):允许用户拥有读取和列出资源目录的权限,另外也允许用户在资源中进行移动和遍历。
列出文件夹目录(List Folder Contents):允许用户查看资源中的子文件夹与文件名称。
读取(Read):允许用户查看该文件夹中的文件及子文件夹,也允许查看该文件夹的属性、所有者和拥有的权限等。
写入(Write):允许用户在该文件夹中创建新的文件和子文件夹,也可以改变文件夹的属性、查看文件夹的所有者和权限等。
用户和用户组权限
Windows用户组
内置用户组:如管理员组(Administrators)、普通用户组(Users)、备份操作组(Backup Operators)等。这些组根据预设的权限执行任务。
特殊权限用户:系统还设有如System、TrustedInstaller、Everyone等特殊权限用户,这些用户不属于任何内置用户组,具有独立的权限。
#Linux权限
uid分配原则
0:管理员
1-999:系统内部账号,维护系统服务
1000-65534:普通账号,可以登录
/etc/passwd文件解读
root:登录的用户名
x:登录该用户时是否需要输入密码,x表示需要使用密码,空代表不需要密码
0:uid,用户ID,系统识别用户的唯一标识
0:gid,组ID,
root:用户描述信息,可以自定义
/root:用户的家目录,存放个人文件,登录该用户时默认进入该目录
/bin/bash:用户的登录shell,登录系统以后所执行的shell文件,登录此用户时默认打开的shell类型bash shell
/etc/group文件解读
erik:组名
x:登录该组时是否需要密码,x表示需要密码,空表示不需要密码
1000:组ID
:erik 表示组内的成员erik
某个文件或者目录的权限
d:表示目录
-:表示普通文件,二进制文件、文本文件、压缩包等
l:表示链接文件,快捷方式
c:表示字符设备,键盘鼠标等设备
b:表示块设备,存数据的设备
rwx:表示文件拥有人的权限
r-x:表示文件拥有组的权限,即为组内用户的权限
r-x:表示其他人的权限
2:如果是文件则表示文件硬链接数量;如果是目录则表示该目录下有几个子目录
root:表示文件的拥有人
root:表示文件的拥有组
文件的权限
r:read,查看文件内容
w:write,编辑文件内容
x:execute,执行该文件
目录的权限
r:能够列出目录下面的文件
w:能够在该目录下创建和删除文件(能否删除文件取决于用户对该文件所在目录的权限)
x:能进入该目录