一些学习中的随笔小记(二)

一些学习中的随笔小记(二)

记录一些平时学习中零碎的知识点,一篇记录20个小知识点。

1.利用sql注入点判断网站和数据库是否站库分离

在注入点后加上:and exists(select * from admin where 1=(Select (case when host_name()=@@servername then 1 else 0 end)))
注意admin一定要是存在的表段,如果返回正常,说明网站和数据库是在同一服务器,如果不正常则说明是站库分离的。

2.shell如何输出每一行的最后几个字符

输出每一行的最后几个字符, 可以借助于awk,以及substr函数,awk没有分隔符时$0表示每一行

cat test.txt |awk ‘{print substr($0,length($0)-n)}’
其中的n表示字符长度,如果要输出每行最后10个字符,就把n改为10。

要输出每行的前n个字符,除了可以使用awk+substr,还可以使用cut

cat test.txt| cut -c1-n
其中n为你想输出的前几个字符,你想输出前5个,就把n改为5。

3.给 Windows /Linux 的终端配置代理

Windows在cmd下执行下面的命令

set http_proxy=http://127.0.0.1:1080 set https_proxy=http://127.0.0.1:1080

Linux下临时生效则终端直接执行即可

export http_proxy="http://localhost:port" export https_proxy="http://localhost:port"


永久生效则需要将上面的命令写入shell配置文件.bashrc

保存后执行下面命令使其生效
source ~/.bashrc

4./bin/bash^M: bad interpreter解决方法

在windows下保存了一个脚本文件,用ssh上传到centos,并执行。但执行的时候出现了这句错误。

如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A。如果你将这个脚本文件直接放到Linux上执行就会报/bin/bash^M: bad interpreter错误提示。

解决:1)在windows下转换:
比如notepad++


2)也可在Linux中转换:
首先要确保文件有可执行权限
#sh>chmod a+x filename
然后修改文件格式
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盘退出)
最后再执行文件
#sh>./filename

5.解决Can ‘t connect to local MySQL server through socket ‘/tmp/mysql.sock ‘(2) “;

由于把mysql的套接字文件不小心删除了。

root@zgao:~# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

需要明白mysql.sock这个文件有什么用?

连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。这可能发生在你的系统运行一个cron任务删除了/tmp下的临时文件。

如果你因为丢失套接字文件而不能连接,你可以简单地通过重启mysql服务重新创建得到它。因为服务器在启动时重新创建它。

zgao

如果有什么技术上的问题,可以加我的qq 1761321396 一起交流。