一些学习中的随笔小记(二)
记录一些平时学习中零碎的知识点,一篇记录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服务重新创建得到它。因为服务器在启动时重新创建它。
6.Goland设置ssh终端为utf-8编码
在IDE的设置中搜索encoding。
这个是设置文件的编码的,ssh终端的编码在下面。
不仅goland,同理其他如pycharm,idea都是这样设置的。
7.MySQL解除输入的安全模式
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and reconnect.
这是因为MySql运行在safe-updates模式下,该模式会导致非主键条件下无法执行update或者delete命令。
1、show variables like ‘SQL_SAFE_UPDATES’;查看开关状态。
2、执行命令SET SQL_SAFE_UPDATES = 0;修改下数据库模式
8.更改windows上的远程桌面RDP的侦听端口
适用于:Windows 10、Windows 8.1、Windows 8、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2008 R2
通过远程桌面客户端连接到计算机(Windows 客户端或 Windows Server)时,计算机上的远程桌面功能会通过定义的侦听端口(默认情况下为 3389)“侦听”连接请求。 可以通过修改注册表来更改 Windows 计算机上的侦听端口。
- 启动注册表编辑器。 (在“搜索”框中键入 regedit。)
- 导航到以下注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
tip:直接按下 Ctrl+f 搜索 RDP-Tcp 即可 - 查找端口号
- 单击“编辑”>“修改” ,然后单击“十进制” 。
- 键入新端口号,然后单击“确定” 。
- 关闭注册表编辑器,然后重新启动计算机。
下次使用远程桌面连接连接到此计算机时,必须键入新端口。 如果正在使用防火墙,请确保将防火墙配置为允许连接到新端口号。
9.Wireshark 设置显示端口号
在Wireshark中,打开编辑->首选项设置->列->按“添加”按钮->在字段类型中选择“Dest port(unresolved)”即可。
10.增加 WordPress 上传附件大小的限制
我们需要上传尺寸比较大的附件到 WordPress 站点,可是上传的时候,WordPress 却提示我们「最大上传文件大小: 2 MB。其实很多时候,这个限制不是 WordPress 干的,而是我们的服务器锅,为了安全和性能考虑,服务器软件会有一些默认的限制。
我们知道,PHP 服务器的主要设置一般都在 php.ini 文件里面,想要增大 PHP 允许上传的最大附件尺寸,我们首先需要找到 php.ini 的位置,然后编辑这个文件里面对应的设置项。
找到 php.ini 文件,在服务器上,运行下面的命令,可以很容易的找到 php 文件的位置。
php -i | grep 'php.ini'
上面的命令运行之后,其中的 /usr/local/etc/php/7.3/php.ini 就是我们需要找的 php.ini 文件的位置。编辑这个文件,修改或加入以下设置。
upload_max_filesize = 128M post_max_size = 128M memory_limit 256M max_execution_time 300 max_input_time 300
这些设置项都有各自的作用。
- upload_max_filesize: 最大上传尺寸
- post_max_size: POST 请求最大尺寸
- memory_limit: PHP 进程可以使用的内存限制
- max_execution_time:PHP 程序的最大执行时间
- max_input_time:最大输入时间
其中影响最大上传尺寸的设置项是 upload_max_filesize
和 post_max_size
,其他几个选项主要是为了防止上传程序使用过多的内存和因为网络原因造成的执行时间过长,导致网站速度变慢。然后执行
php-fpm restart
刷新一下页面,再打开附件上传页面看看,我们会发现,最大上传文件的尺寸已经变成了 128MB,这说明我们的设置已经生效了。
11.npm换源
npm 全称Node Package Manager,是node.js的模块依赖管理工具。由于npm的源在国外,所以国内用户使用起来各种不方便。
镜像举例:1.临时使用npm --registry https://registry.npm.taobao.org install express
2.持久使用
npm config set registry https://registry.npm.taobao.org
// 配置后可通过下面方式来验证是否成功
npm config get registry
// 或npm info express
3.通过cnpm使用
npm install -g cnpm –registry=https://registry.npm.taobao.org
// 使用cnpm install expresstall express
12.给git设置代理
这里以v2ray作为前置代理为例。
# socks5协议,1080端口修改成自己的本地代理端口
git config –global http.proxy socks5://127.0.0.1:1080
git config –global https.proxy socks5://127.0.0.1:1080
# http协议,1081端口修改成自己的本地代理端口
git config –global http.proxy http://127.0.0.1:1081
git config –global https.proxy https://127.0.0.1:1081
13.Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
解决办法:# vi /etc/sysctl.conf
或者# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务# systemctl restart network
查看是否修改成功# sysctl net.ipv4.ip_forward
如果返回为“ net.ipv4.ip_forward = 1 ”则表示成功了
这时,重启容器即可。
14.Windows查看最近访问的文件目录或文件夹
1.Windows+R
2.输入Recent
就能看到最近访问的文件了
15.Python的pip版本降级
更新了pip版本后有一堆报错,故选择降级。
使用命令:
python -m pip install pip==19.2.3
其中,-m参数的解释:
run library module as a script (terminates option list)
将库中的python模块用作脚本去运行。
16.使用Python 3.6.5 稳定版
不想在版本上踩坑就用这个,用其他版本总有些莫名其妙的错误。
17.高版本的pip使用代理会报错,降低pip版本就可以了
18.windows 禁用密码复杂度
19.windows下cmd命令行显示UTF8字符设置(CHCP命令)
在中文windows系统中,如果一个文本文件是utf-8编码的,那么在cmd.exe命令行窗口中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。
如果想正确显示UTF-8字符,可以按照以下步骤操作:
1、打开CMD.exe命令行窗口,通过 chcp命令改变代码页,UTF-8的代码页为65001
chcp 65001
执行该操作后,代码页就被变成UTF-8了。但是,在窗口中仍旧不能正确显示UTF-8字符。
3、修改窗口属性,改变字体。在命令行标题栏上点击右键,选择”属性”->”字体”,将字体修改为True Type字体”Lucida Console”,然后点击确定将属性应用到当前窗口。时使用type命令就可以显示UTF-8文本文件的内容了:type filename.txt
4、通过以上操作并不能完全解决问题,因为显示出来的内容有可能不完全。可以先最小化,然后最大化命令行窗口,文件的内容就完整的显示出来了。另外提供一些chcp命令的参考:
- chcp 65001 就是换成UTF-8代码页
- chcp 936 可以换回默认的GBK
- chcp 437 是美国英语
20.Base64,Base32,Base16编码的区别
Base64:
包含大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/;使用64个可见字符来表示一个二进制数组,编码后数据大小变成原来的4/3,也即3个字符用4个可见字符来表示。
Base32:
而Base32中只有大写字母(A-Z)和数字234567;使用32个可见字符来表示一个二进制数组,编码后数据大小变成原来的8/5,也即5个字符用8个可见字符表示,但是最后如果不足8个字符,将用=来补充。
Base16:
hex也称为base16,而Base16就是16进制,他的范围是数字(0-9),字母(ABCDEF);
用base编码之后,原本的体积都会变大。但是相比较 base64编码的体积增长率变小。
赞赏微信赞赏支付宝赞赏
发表评论