Linux:《通配符》《压缩、打包、解压缩》《VIM编辑器基础》

Linux 第四天

内容提要
  • 通配符
  • 压缩、打包、解压缩
  • VIM编辑器基础
提问

1.如何创建新用户? 答:[sudo] useradd -g /home/用户文件夹 -mg 组名 用户名

2.如何给新用户设置密码? 答:管理员:sudo passwd 用户名,当前用户:passwd

通配符

*:匹配任意单个多个字符

举例:

?:匹配任意单个字符

举例:
在这里插入图片描述

[..]:匹配[]范围中的任意单个字符

举例:

在这里插入图片描述

权限说明

| 权限的类型 | 权限的数字 |普通文件|目录
|r:读|4|
|  |  |

压缩与解压缩

指令

压缩指令:gzip

说明:Linux压缩文件为 .gz 格式,只能压缩文件,不能压缩目录;只能压缩,不能打包。

执行者:所有用户

语法:

gzip [] 文件路径

选项:

-r:可以将目录下的文件地柜压缩(绕过文件目录找文件进行压缩)

-l:显示已经压缩文件的压缩信息

-d解压缩

范例:

gzip demo01.c
解释:压缩当前路径下的demo01.c文件,压缩后的名称默认:demo01.c.gz,压缩后源文件(demo01.c)会被删除
    
gzip -d demo01.c.gz
解释:解压缩当前路径下的demo01.c.gz,解压后源文件(demo01.c.gz)会被删除
    
    
gzip -r chapter01
解释:压缩chapter01目录中的文件,此时会地柜压缩,在目录中文件同级别的位置显示压缩后的文件
举例:原始文件: chapter01/demo01.c  压缩后:chapter01/demo01.c.gz
    
gzip -d chapter01/demo01.c.gz
解释:解压缩chapter01/demo01.c.gz
    
    
 gzip demo01.c demo02.c
解释:批量压缩demo01.c,demo02.c,压缩后删除源文件
    
gzip -d demo01.c.gz demo02.c.gz    
解释:批量解压demo01.c.gz,demo02.c.gz,解压后删除.gz文件    

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:如果已经是.gz文件,就不支持再次压缩

另一种解压:

  • 语法:

    gunzip [] 文件/目录
    

选项:

  • -r:可以将目录下的文件递归解压缩

范例:

gunzip demo01.c.gz
解释:解压demo01.c.gz
    
gunzip -r chapter01
解释:绕过指定目录递归解压demo01.c.gz,等价于gzip -rd chapter01    

更高的压缩效率指令:bzip2

说明:压缩文件为 .bz2 格式,同样这种压缩可不提供打包功能。

执行者:所有用户

语法:

bzip [] 文件路径

选项:

-k:保留源文件,支持保留源文件

-d:解压缩

-f:覆盖式压缩/解压缩(目录中存在同名文件,用压缩或者解压缩后的同名文件直接覆盖)

范例:

bzip2 demo01.c
解释:压缩当前路径下的demo01.c,压缩后默认的名称为demo01.c.bz2,源文件会被删除
bzip2 -d demo01.c.bz2
解释:解压缩当前路径下的demo01.c.bz2,解压缩后源文件会被删除
----------------------------------------------------------------------
bzip2 -k demo02.c
解释:压缩当前路径下的demo02.c,压缩后默认的名称为demo02.c.bz2,源文件(.c)会保留
bzip2 -kdf demo02.c.bz2
解释:解压缩当前路径下的demo02.c.bz2,解压缩后,源文件(.bz2)会保留,解压后的同名文件会覆盖原有文件

------------------------------------------------------------------------------------
bzip2 -kf demo01.c demo02.c
解释:批量压缩多个文件,压缩后的名称分别为:demo01.c.bz2,demo02.c.bz2(针对每个文件单独压缩),压缩后
的文件会覆盖同名文件
bzip2 -df demo01.c.bz2 demo02.c.bz2
解释:批量解压多个文件,解压后分别为:demo01.c,demo02.c,解压后的文件会覆盖同名文件,不保留源文件
(.bz2)    

另一种解压:

  • 语法:
bunzip2 [] 文件名
  • 选项:

  • bunzip2 -f demo02.c.bz2
    解释:解压demo02.c.bz2,解压出demo02.c
    
    bunzip2 -f demo01.c.bz2 demo02.c.bz2
    解释:批量解压,解压出demo01.c,demo02.c
    

总结:

  • gzip和bzip2的区别:
    • gzip可以绕过目录递归压缩目录中的文件以及其子目录文件,bzip2不可以
    • 与gzip相比,bzip2有更高的压缩效率
  • gzip和bzip2压缩指令不能混合使用,主要通过压缩文件的扩展名区分
压缩文件或目录:zip

说明:文件的后缀名是.zip,同时支持打包和压缩

执行者:所有用户

补充:这个命令不是Linux自带的,如果需要使用,就需要额外的安装

安装命令:

[sudo] apt-get update
解释:更新软件源

[sudo] apt-get install zip
解释:安装zip工具

压缩语法:

zip [选项] 压缩后的文件名 文件/目录路径

解压语法:

unzip [选项] 压缩文件的文件名

选项:

-r:地柜压缩,用于对目录的操作(体现在压缩算法上,并不是真的生成多个压缩包)

注意:不带选项会保留源文件(默认保留源文件)

范例:

zip demo01.zip demo01.c
解释:压缩当前路径下的demo01.c文件,压缩后的文件名为demo01.zip,压缩后,保留源文件(.c)
unzip demo01.zip
解释:解压缩当前路径下的demo01.zip文件,如果出现同名文件,会提示用户选择性处理
----------------------------------------------------------------------------
zip chapter01.zip chapter01
解释:压缩当前路径下的chapter01目录,压缩后的文件名为chapter01.zip,压缩后,保留源文件
(chapter01),从外部整体压缩
unzip chapter01.zip
解释:解压缩当前路径下的chapter01.zip文件,如果出现同名文件,会提示用户选择性处理
----------------------------------------------------------------------------
zip -r chapter02.zip chapter01
解释:压缩当前路径下的chapter01目录,压缩后的文件名为chapter01.zip,压缩后,保留源文件
(chapter01),逐层递归压缩
unzip chapter02.zip
解释:解压缩当前路径下的chapter01.zip文件,如果出现同名文件,会提示用户选择性处理
----------------------------------------------------------------------------
zip -r all.zip chapter01/demo01.c chapter01.zip demo02.c
解释:批量压缩chapter01/demo01.c chapter01.zip demo02.c,压缩后的名字是all.zip,逐层递归压缩
unzip all.zip
解释:解压缩当前路径下的all.zip文件,如果出现同名文件,会提示用户选择性处理

解压时出现同名文件

在这里插入图片描述

当解压缩时,如果有同名的文件或者目录,会有提示让用户进行选择处理:

[y]es:输入y,表示覆盖文件,进行替换(单文件一个个交互处理)

[n]o:输入n,表示不覆盖文件(单文件一个个交互处理)

[A]ll:输入A,表示覆盖文件夹(多文件,统一处理)

[N]one:输入N,表示不覆盖文件夹(多文件,统一处理)

[r]ename:输入r,重命名解压后的文件

打包指令:tar

说明:打包一般结合压缩使用

执行者:所有用户

语法:

tar [选项] 产生文件的名称 被打包的文件或目录路径 (有多个,用空格隔开)

选项:

-c:打包

-v:显示命令执行的过程

-f:用于指定打包文件的名称

-z:打包时压缩/解包时解压缩,操作的文件拓展名为.gz,使用的是gzip算法

-x:解包,需要注意的是,-c和-x不能同时出现

-j:打包时压缩/解包时解压缩,操作的文件扩展名为.bz2,使用的是bzip2的算法,注意:-z和-j只能二选一

范例:

-- 打包(打包不会影响文件的大小,只会将多个文件整合到一块)
tar -cvf all.tar chapter01 chapter01.zip demo01.c
解释:打包chapter01 chapter01.zip demo01.c文件到all.tar,此时是未经过压缩,保留源文件
tar -xvf all.tar
解释:解包all.tar中的chapter01 chapter01.zip demo01.c
------------------------------------------------------------------------
-- 打包 + 压缩
tar -zcvf all.tar.gz chapter01 chapter01.zip demo01.c
解释:打包并压缩chapter01 chapter01.zip demo01.c文件到all.tar.gz,此时经过压缩,保留源文件,建议后
缀名:.tar.gz
tar -zxvf all.tar.gz
解释:解包并解压缩all.tar.gz中的chapter01 chapter01.zip demo01.c
------------------------------------------------------------------------
-- 打包 + 压缩
tar -jcvf all.tar.bz2 chapter01 chapter01.zip demo01.c
解释:打包并压缩chapter01 chapter01.zip demo01.c文件到all.tar.bz2,此时经过压缩,保留源文件,建议
后缀名:.tar.bz2
tar -jxvf all.tar.bz2
解释:解包并解压缩all.tar.bz2中的chapter01 chapter01.zip demo01.c

总结:

  1. *.tar:用tar -xvf解包
  2. *.gz:用gzip -d解压缩
  3. *.tar.gz:和*.tgztar -zxvf解压
  4. *.bz2:用bzip2 -d解压
  5. *.tar.bz2:用tar -jxvf解包
  6. *.zip:用unzip解压

总结:

实现打包压缩目前我们接触了三种用法:

① zip:打包并压缩

② tar + gzip:先打包,再压缩

③ tar + bzip2:先打包,再压缩

关于tar和gzip、bzip2实现混合使用的时候,一定是先打包,再压缩。

tar结合gzip、bzip2

自动调用gzip/bzip2程序完成相关操作

  • 打包时,tar自动在最后调用gzip/bzip2对包进行压缩。

  • 解包时,tar首先调用gzip/bzip2解压缩,然后再解开被gzip/bzip2处理过的.tar文件

Vim编辑器
Vim定义

本质上我们用Linux自带的编辑器叫做Vi编辑器(类似于window的记事本 ,我们一般用来进行文件的编辑),名字取自Visual,它是一个全屏幕文本编辑器(程序 )。在 Linux系统中Vi是最常用的编辑程序 ,它的文本编辑功能十分强大,但是使用起来比较复杂。Vim是Vi的增强版 ,所以Vi的功能Vim都有,而且 Vim新增Vi没有的功能,它比Vi更容易使用。这个工具不是Linux内置,需要额外的安装 。

Vim安装与卸载

本地安装

前提:系统中要存在下载好的安装包,并且可能还需要安装包的依赖包。

在线安装

语法:

sudo apt-get update
解释:更新软件源

sudo apt-get install vim
解释:安装vim,同理替换程序名,可以安装其他程序

卸载程序

语法:

sudo apt-get remove vim
解释:卸载vim,同理替换程序名,可以卸载其他程序
Vim的使用

启动(打开文件)

启动Vim后,此时Vim处于命令模式:

1.系统命令输入vim,就可以启动vim(不推荐)

st@st-virtual-machine:~$ vim

在这里插入图片描述

在vim中导入待编辑的文件: :r 待编辑文件名称

2.系统命令行输入 vim待编辑文件,启动vim同时打开待编辑文件(推荐 )

说明:默认打开文件后,光标处于文件开头(第1行第1列 ),建议:针对空文件

st@st-virtual-machine:~$ vim demo01.c

注意:如果待编辑文件不存在,就会创建,否则直接打开

3.系统命令行输入 vim待编辑文件,启动vim同时打开待编辑文件(推荐 )

说明:默认打开文件后,光标处于文件结尾(末行第1列 ),建议:针对非空的配置类文件

st@st-virtual-machine:~$ vim /etc/profile +

4.系统命令行输入 vim待编辑文件,启动vim同时打开待编辑文件(推荐 )

说明:默认打开文件后,光标处于指定行n(指定n行第1列 ),建议:这种打开方式一般用于定位错误

st@st-virtual-machine:~$ vim /etc/profile +4
退出(关闭文件)

1.在编辑器模式下:ESC键,然后英文输入法下使用Shift+:组合键输入:

2.根据需求选择退出模式:

  • :q:文件不做任何修改直接退出(不保存)
  • :wq:保存并退出
  • :q!:强制退出,不保存
  • :wq!:强制退出,保存

3.输入完毕,按下回车键(Enter)处理

设置Vim模版

1.首先通过QQ群文件→01-开发工具,获取.vimic模版

2.在windows电脑使用记事本打开 .vimrc ,使用ctrl+f找到作者 冯鹏飞 | 粤嵌 ,将其替换成自己的名字后,保存

3.将 .vimrc 文件拷贝到windows端的Linux共享目录下(共享目录是在VMWare中设置的,如:G:/YQ/Code/linux

4.在Linux终端通过指令,将共享目录下的 .vimrc 拷贝至家目录:

在这里插入图片描述

5.重启终端

Vim的工作模式

1.命令模式:用户输入vim时当做指令处理,一般通过vim打开文件进入的时候,就处于这个模式

2.输入模式:编辑模式,用户输入vim时字符要写入到文件中

3.末行模式:文件保存和退出vim

在这里插入图片描述

命令模式下输入的快捷键解释:

  • i:在当前光标钱(光标左边)插入所要输入的内容

    插入的内容 + 光标
    
  • a:在当前光标后(光标右边)插入所要输入的内容

    光标 + 插入的内容
    
  • o:在当前光标所在行下新增一空行,并从行首开始输入文字

    光标
    插入的内容
    
  • I:插入行首,跳转到光标所在行的行首(光标所在行第1行)位置

    ...
    插入的内容 + 光标 + 行尾
    ...
    
  • A:插入行尾,跳转到光标所在行的行尾(光标所在行最后1列)位置

    ...
    行首 + 光标 + 插入的内容
    ...
    
  • O:在当前光标所在行上新增一空行,并从行首开始输入文字

    插入的内容
    光标
    
关于清理屏幕

快捷键:Ctrl+L:向下翻页,保留前面页,前面页中的内容不会被删除

指令:

  • clear:向下翻页,保留前面页,但是前面页中的内容被删除
  • reset:充值,不会保留前面的信息
常用快捷键

Ctrl+Alt+T:打开Linux终端(命令行工具)

Ctrl + Shift + + :对终端显示文本进行放大

Ctrl + - :对终端显示文本进行缩小

Ctrl + L :对终端当前屏幕进行清空,其实就是翻了一页,保留之前的记录

方向上/下 :在终端中,可以通过方向键切换历史指令。

Tab :对命令行中的命令进行补全,这里要注意,如果前缀在同级中有多个文件或者文件夹,会失效。

Ctrl + c :强制退出正在运行的进程,一般用于可执行程序的强制退出

Ctrl + S :对Linux终端进行锁定

  • 插入的内容

- `O`:在当前光标所在行上新增一空行,并从行首开始输入文字

```bash
插入的内容
光标
关于清理屏幕

快捷键:Ctrl+L:向下翻页,保留前面页,前面页中的内容不会被删除

指令:

  • clear:向下翻页,保留前面页,但是前面页中的内容被删除
  • reset:充值,不会保留前面的信息
常用快捷键

Ctrl+Alt+T:打开Linux终端(命令行工具)

Ctrl + Shift + + :对终端显示文本进行放大

Ctrl + - :对终端显示文本进行缩小

Ctrl + L :对终端当前屏幕进行清空,其实就是翻了一页,保留之前的记录

方向上/下 :在终端中,可以通过方向键切换历史指令。

Tab :对命令行中的命令进行补全,这里要注意,如果前缀在同级中有多个文件或者文件夹,会失效。

Ctrl + c :强制退出正在运行的进程,一般用于可执行程序的强制退出

Ctrl + S :对Linux终端进行锁定

Ctrl + Q :对锁定的Linux终端解锁

<think>好的,我现在需要帮助用户解决SQLi-Labs靶场第18关使用sqlmap进行SQL注入的问题。首先,我得回顾一下用户提供的引用内容,特别是引用[5],里面提到了第18关的解决方法。用户可能已经看过这个引用,但可能还需要更详细的步骤指导。 首先,我需要确认第18关的具体情况。根据引用[5],第18关是一个POST请求的注入点,涉及User-Agent头部的注入。用户需要使用sqlmap工具,并且需要先通过Burp Suite抓取数据包,保存为txt文件,然后在User-Agent字段中标记注入点。接着,使用sqlmap的-r参数指定数据包文件,并利用--current-db等参数获取数据库信息。 接下来,我需要将这个过程分解成清晰的步骤,确保用户能够一步步跟随。可能需要包括安装Burp Suite、配置代理、抓取数据包、保存文件、运行sqlmap命令等步骤。同时,用户可能需要知道如何设置代理,比如在浏览器中配置Burp Suite的监听地址和端口,以及如何处理HTTPS流量,如果需要的话。 另外,用户可能对sqlmap命令的参数不太熟悉,比如--tamper或--level等,需要解释这些参数的作用。如,--level 2会增加测试的等级,覆盖更多的注入点。而--tamper可能在某些情况下需要,但根据引用[5],第18关不需要tamper脚本,所以可能不需要用到这个参数。 还要注意用户可能遇到的常见问题,比如数据包保存的格式是否正确,User-Agent是否正确地标记了星号*,以及如何验证注入是否成功。如,用户可能需要检查sqlmap的输出,确认是否成功获取到数据库名或其他信息。 另外,引用中提到第18关的闭合方式是单引号',这可能意味着注入点是在User-Agent字段中使用单引号闭合的。因此,在构造payload时,sqlmap会自动处理这种闭合方式,用户不需要手动指定,但了解这一点有助于调试问题。 最后,用户可能需要一些额外的提示,比如如何提升注入的成功率,或者如何处理可能的WAF(Web应用防火墙)拦截。如,使用--delay参数来减缓请求速度,避免被检测到,或者使用代理来隐藏流量。 总结来说,回答需要结构清晰,分步骤指导用户从抓包到运行sqlmap命令,解释关键参数,并提供注意事项和常见问题解决方法,确保用户能够顺利通过第18关。</think>### SQLi-Labs 第18关sqlmap注入解决方案 根据引用[5]的描述,第18关属于HTTP头部User-Agent字段的POST请求注入,需通过以下步骤实现自动化注入: **步骤1:准备环境** 1. 安装Burp Suite并配置浏览器代理(默认监听127.0.0.1:8080) 2. 访问第18关页面`http://[靶机IP]/sqli-labs/Less-18/`,触发正常请求 **步骤2:抓取数据包** 1. 在Burp Suite的Proxy模块拦截HTTP请求 2. 在请求头中找到User-Agent字段,在值末尾添加`*`标记注入点 ```http User-Agent: Mozilla/5.0* # 添加*作为注入标识 ``` 3. 将完整请求包保存为`less18.txt` **步骤3:执行sqlmap命令** ```bash python sqlmap.py -r less18.txt --current-db --batch ``` - `-r`:指定包含HTTP请求的文件 - `--current-db`:获取当前数据库名 - `--batch`:自动选择默认选项 **步骤4:进阶利用** ```bash # 获取所有数据库 python sqlmap.py -r less18.txt --dbs --level=2 # 获取指定数据库表 python sqlmap.py -r less18.txt -D security --tables # 获取字段数据 python sqlmap.py -r less18.txt -D security -T users --dump ``` **关键参数说明**: - `--level=2`:增加检测强度(默认检测范围不包括HTTP头部) - `--risk=3`:启用高风险测试模式(需谨慎使用) - `--tamper`:本关不需要编码脚本,但复杂场景可配合`base64encode`等脚本[^3] **注意事项**: 1. 确保靶场环境配置正确,User-Agent字段存在注入漏洞 2. 若遇到过滤规则,可尝试`--tamper=space2comment`等绕过脚本 3. 数据包中的`*`必须紧接在User-Agent值之后,如:`User-Agent: payload*` 4. 推荐配合`--flush-session`参数避免缓存影响测试结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值