Ls、cd、cat、more、tail、cp、rm、top、ps、grep、ifconfig、netstat、awk、sort、fdisk、mount、dmesg、find、whereis.Echo、vi
这些是Linux系统中的常见命令,它们各自有不同的用途:
ls:列出目录内容,可以显示文件和目录的信息。
cd:改变当前工作目录,允许你在文件系统中导航。
cat:显示或合并文件内容,常用于查看文本文件。
more:分页显示文件内容,适合查看大型文件。
tail:显示文件的末尾部分,通常用于监控日志文件。
cp:复制文件或目录。
rm:删除文件或目录(使用时需谨慎)。
top:显示当前系统的进程状态和资源使用情况,实时更新。
ps:显示当前运行的进程信息。
grep:在文件中搜索匹配特定模式的行。
ifconfig:配置和显示网络接口信息。
netstat:显示网络连接、路由表、接口统计信息等。
awk:强大的文本处理工具,可以处理行和字段。
sort:对文件中的行进行排序。
fdisk:磁盘分区管理工具,用于创建、删除和修改分区。
mount:挂载文件系统,使你可以访问存储设备上的数据。
dmesg:显示内核消息,常用于启动过程中的错误诊断。
find:查找文件系统中的文件或目录,基于各种条件。
whereis:查找命令、源代码或手册页的位置。
echo:输出字符串到标准输出或文件,常用于脚本中。
vi:一个强大的文本编辑器,用于创建和修改文本文件。
这些命令是Linux系统管理员和用户的日常工作中不可或缺的工具。
碰到有url的加密 ,使用urlencode -d
如何写shell脚本
基本语法
1. 注释
单行注释使用#开头。
# 这是一条注释
2. 变量
定义变量时,不需要声明类型,直接赋值即可。
使用变量时,需要在变量名前加$符号。
name="John" echo $name
3. 命令替换
使用反引号`或$()包围命令,可以将命令的输出作为值赋给变量。
currentTime=`date` currentTime=$(date)
4. 条件判断
使用if语句进行条件判断。
if [ condition ]; then # commands elif [ another_condition ]; then # more commands else # even more commands fi
5. 循环
for循环。
for i in {1..5}; do echo $i done
while循环。 count=1 while [ $count -le 5 ]; do echo $count count=$((count + 1)) done
6. 函数
定义函数。
function_name() { # function body }
调用函数。
function_name
进阶技巧
1. 数组
定义数组。
array=(item1 item2 item3)
访问数组元素。
echo ${array[0]}
2. 字符串操作
字符串长度。
str="Hello, World!" echo ${#str}
子字符串。
substr=${str:7:5} echo $substr
3. 正则表达式
使用grep、sed、awk等工具处理正则表达式。
# 使用grep匹配文本 echo "Hello, World!" | grep -o '[A-Za-z]*'
4. 文件操作
检查文件是否存在。
if [ -e filename ]; then echo "File exists" fi
读取文件内容。
while IFS= read -r line; do echo "$line" done < filename
5. 调试脚本
使用set -x开启调试模式。
#!/bin/bash set -x echo "Debugging mode on"
6. 信号处理
使用trap命令捕捉信号。
#!/bin/bash trap 'echo "Signal caught"' SIGINT sleep 10
7. 脚本参数
使用$1, $2, ... 访问脚本参数。
#!/bin/bash echo "First argument: $1" echo "Second argument: $2"
.
8. 环境变量
设置环境变量。
export VARNAME=value
使用环境变量。
echo $VARNAME
这些是Shell脚本的一些基本和进阶语法。编写复杂的脚本时,你可能还需要了解更多的概念和技术,如管道、重定向、进程控制等。不断实践和学习将帮助你成为一名熟练的Shell脚本开发者。
题外话
写一个burp插件
编写Burp Suite插件使用Python,你需要借助于Burp Suite的Extender API,特别是其对Java和Python交互的支持功能。从Burp Suite 2.0开始,它原生支持Python插件开发。以下是一个简单的指南,介绍如何开始编写一个基本的Python Burp插件。
准备工作
安装Jython: 因为Burp Suite是用Java编写的,它通过Jython(Python的Java实现)来运行Python插件。确保你已经安装了Jython。你可以从 Jython官网下载并安装适合你系统的版本。
设置Burp Suite: 确保你的Burp Suite版本支持Python插件。打开Burp Suite,进入“Extender”标签页,点击“Options”,确保“Python environment”已被正确设置,并且路径指向你的Jython安装目录。
创建Python插件: 创建一个新的Python文件,比如my_burp_plugin.py。这个文件将包含你的插件逻辑。
编写基本插件
下面是一个非常基础的示例插件,该插件简单地打印出通过Burp Suite发送的所有HTTP请求的URL。
1from burp import IBurpExtender, IHttpListener 2 3class BurpExtender(IBurpExtender, IHttpListener): 4 5 def registerExtenderCallbacks(self, callbacks): 6 # 获取Burp提供的回调对象 7 self._callbacks = callbacks 8 self._helpers = callbacks.getHelpers() 9 10 # 设置插件名 11 self._callbacks.setExtensionName("My Simple Python Burp Plugin") 12 13 # 注册为HTTP监听器 14 callbacks.registerHttpListener(self) 15 16 def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo): 17 if messageIsRequest: 18 # 解码HTTP请求 19 request = self._helpers.analyzeRequest(messageInfo) 20 url = request.getUrl().toString() 21 print(f"[{toolFlag}] Request to: {url}")
部署插件
打包插件: 将你的Python脚本放在一个Burp Suite可以识别的目录下。通常,你可以直接在Burp Suite的Extender -> Options界面指定或添加Python插件的目录。
加载插件: 在Burp Suite的Extender标签页,点击“Add”按钮,然后从列表中选择你刚刚创建的.py文件。如果一切配置正确,你的插件应该会被加载并开始工作。
注意事项
确保熟悉Burp Suite的API文档,了解如何使用IBurpExtender,IHttpListener等接口。
开发复杂插件时,你可能需要处理更多细节,比如处理响应、动态修改请求、构建UI等。
考虑到性能和兼容性,对于高性能需求的插件,Java可能仍然是首选。
编写Burp插件是一个实践性很强的过程,随着实践经验的积累,你会逐渐掌握更多高级功能的开发技巧。