xshell连接不上
/sbin/iptables -I INPUT -p tcp --dport 3306 -jACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables status
service iptables stop
chkconfig iptables off
永久性切换命令行方法
打开/etc/inittab文件
将id:5:initdefault:修改为id:3:initdefault:保存文件并重启即可
5表示图形化界面,设置为5后表示每次启动系统进入的是图形化界面
3表示命令行界面,设置为3后表示每次启动系统进入的是命令行界面
其他指定系统运行级别
0:关机
1:单用户模式
2:多用户模式但是没有网络
3:多用户模式并且有网络,即命令行界面
4:系统未使用保留给用户
5:X11模式即进入图形界面模式
6:重启
chkconfig iptables off
ps -ef |grep perl
debian 或者 ubuntu : sudo apt-get install wget
centos : sudo yum -y install wget
LeetCode Problems
https://leetcode-cn.com/
linux安装mysqli/mysql 扩展
yum install php-mysql
Shift + F2 可以快速跳到错误行
查看CentOS版本命令:
[root@localhost ~]# cat /etc/redhat-release
phpstorm
ctrl+shift+S->inspections->SQL-> NO data source configured /SQL dialect detection
这些是我认为比较有帮助的一些资料:
http://blog.gainlo.co
http://horicky.blogspot.com
https://www.hiredintech.com/classrooms/system-design/lesson/52
http://www.lecloud.net/tagged/scalability
http://tutorials.jenkov.com/software-architecture/index.html
http://highscalability.com/
multi-process of php-message-queue the timing-task
远程桌面:mstsc
settings 里搜索injected language fragment,去掉背景色 mysql
inspect->sql
linux 命令
find / -name httpd.conf
killall -9 /usr/bin/perl
chmod 0775 /usr/sniffer/
//crontab
service crond start //启动服务?
service crond stop //关闭服务?
service crond restart //重启服务?
service crond reload //重新载入配置
service crond status? //查看crontab服务状态
date命令将日期设置为2014年6月18日---- date -s 06/18/14
将时间设置为14点20分50秒 ---- date -s 14:20:50
将时间设置为2014年6月18日14点16分30秒(MMDDhhmmYYYY.ss----date 0618141614.30
查看系统硬件时钟
hwclock --show 或者 clock --show
设置硬件时间
hwclock --set --date="06/18/14 14:55" (月/日/年时:分:秒)
或者# clock --set --date="06/18/14 14:55" (月/日/年时:分:秒)
硬件时钟与系统时钟同步:
# hwclock --hctosys 或者 # clock --hctosys hc代表硬件时间,sys代表系统时间,即用硬件时钟同步系统时钟
系统时钟和硬件时钟同步:
# hwclock --systohc或者# clock --systohc 即用系统时钟同步硬件时钟
tzselect:
执行tzselect命令-->选择Asia-->选择China-->选择east China - Beijing, Guangdong, Shanghai, etc-->然后输入1。过程如下图:
执行完tzselect命令选择时区后,时区并没有更改,只是在命令最后提示你可以执行TZ='Asia/Shanghai'; export TZ 并将这行命令添加到.profile中,然后退出并重新登录。参考下图中date命令看到的结果,最终时区显示为CST,即中国标准时间。
修改配置文件来修改时区1、修改/etc/sysconfig/clock ZONE=Asia/Shanghai
2、rm /etc/localtime3、链接到上海时区文件
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
执行完上述过程后,重启机器,即可看到时区已经更改。
出现Message from syslogd解决方法
/etc/init.d/rsyslog stop
[root@localhost init.d]# lsmod | grep edac
i3200_edac 9545 0
edac_mc 26513 1 i3200_edac
[root@localhost init.d]# rmmod i3200_edac
[root@localhost init.d]# rmmod edac_mc
再开启syslog:
/etc/init.d/syslog start
查看日志 more、tail、cat、都可以查看日志
tail -f /var/log/messages
grep '查找关键字段' /var/log/messages|head -n 行数
grep '查找关键字段' /var/log/messages|tail -n 行数
通常这些日志信息被记录在系统文件中,而这些系统文件又被保存在专用于此目的的目录中。它可能是/usr/adm或/var/log目录。对一个典型的Linux安装来说,文件 /var/log/messages包含所有系统信息,/var/log/mail包含来自邮件系统的其他日志信息,/var/log/debug可能包 含调试信息。你可以通过查看/etc/syslog.conf文件来检查系统配置。
LOG_EMERG 紧急情况
LOG_ALERT 高优先级故障,例如数据库崩溃
LOG_CRIT 严重错误,例如硬件故障
LOG_ERR 错误
LOG_WARNING 警告
LOG_NOTICE 需要注意的特殊情况
LOG_INFO 一般信息
LOG_DEBUG 调试信息
sql命令: 用于清空某表的数据 且让自增的id重新从0开始
truncate table tablename;
bindec() 函数把二进制转换为十进制。
die("<script>alert('扫描报告ID不存在!');history.back();</script>");
安装.rpm包一般命令:
rpm -ivh *.rpm
安装.rpm包提示错误“Failed dependencies”
出现:error: Failed dependencies:....的安装命令:
rpm -ivh *.rpm --nodeps --force
vi /etc/sysconfig/network-scripts/ifcfg-eth0 //改IP
vi /etc/resolv.conf //dns
vi /etc/udev/rules.d/70-persistent-net.rules //MAC
vi /etc/sysconfig/network //GATEWAY
vi /etc/resolv.conf //文件
(另外网卡里面如果设置了DNS也会用网卡里面的DNS地址)
有的系统的resolv.conf文件配置显示的是DNS1 和DNS2 如果设置不成功
建议按照下图设置,把dns1改成 nameserver
更改内核启动顺序
centos 6.x是通过/etc/grub.conf
http://www.jb51.net/article/105684.htm
http://php.net/manual/zh/book.image.php
http://www.5idev.com/p-php_imageline_imagearc.shtml
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh [目录名] 返回该目录的大小
du -sm [文件夹] 返回该文件夹总M数
du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
MYSQL--------------------------------
CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为:
CHAR[(N)] 字符型
DATE 日期型
DATETIME 日期和时间型
DECIMAL float型
SIGNED int
TIME 时间型
通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
示例: Sql代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;" |mysql cloudmap ;
mysqldump -u root -p abc >abc.sql
查看存储引擎
show variables like '%storage_engine%' ;
查看支持的引擎
show engines ;
rm [options] name...
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
cp [options] source... directory
参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
du -sh * 文件占用
df -h 文件占用
1.apache:
如果采用RPM包安装,安装路径应在/etc/httpd目录下
apache配置文件:/etc/httpd/conf/httpd.conf
Apache模块路径:/usr/sbin/apachectl
web目录:/var/www/html
如果采用源代码安装,般默认安装在/usr/local/apache2目录下
2.php:
如果采用RPM包安装,安装路径应在/etc/目录下
php的配置文件:/etc/php.ini
如果采用源代码安装,般默认安装在/usr/local/lib目录下
php配置文件:/usr/local/lib/php.ini
或/usr/local/php/etc/php.ini
3.mysql:
如果采用RPM包安装,安装路径应在/usr/share/mysql目录下
mysqldump文件位置:/usr/bin/mysqldump
mysqli配置文件:
/etc/my.cnf或/usr/share/mysql/my.cnf
mysql数据目录在/var/lib/mysql目录下
如果采用源代码安装,般默认安装在/usr/local/mysql目录下
4.如何查看Apache安装路径:
①tarball等安装:
whereishttpd //查看httpd的位置,或者可以用whichhttpd查看。
②rpm包形式
rpm-aq|grephttp //查看是否安装了apache包,若已安装,则会打印出包名
rpm-qi输入获取到的包名 //查看该apache包信息
rpm-ql输入包名 //查看apache包中所有文件的安装位置
上传失败:
文件权限
文件大小
升级脚本
文件错误
inet_aton:将ip地址转换成数字型
inet_ntoa:将数字型转换成ip地址
group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符'] )
以id分组,把price字段的值在同一行打印出来,逗号分隔(默认)
select id, group_concat(price) from goods group by id;
以id分组,把price字段的值打印在一行,逗号分隔,按照price倒序排列
select id,group_concat(price order by price desc) from goods group by id;
以id分组,把price字段的值在一行打印出来,分号分隔
select id,group_concat(price separator ';') from goods group by id;
以id分组,把去除重复冗余的price字段的值打印在一行,逗号分隔
select id,group_concat(distinct price) from goods group by id;
$t1 = microtime(true);
// ... 执行代码 ...
$t2 = microtime(true);
echo '耗时'.round($t2-$t1,3).'秒<br>';
echo 'Now memory_get_usage: ' . memory_get_usage() . '<br />';();
php 对象转 数组
json_decode( json_encode( $obj ), true )
查看上报的违规报警
./httpClient -list violationbuffer -type status
./httpClient -list violationbuffer -type view -data (具体位置)
非学,无以致疑;非问,无以广识
function randomColor() {
return Math.floor(255 * Math.random()) + "," + Math.floor(255 * Math.random()) + "," + Math.floor(255 * Math.random())
}
tar -C /var/www/html/7dscan/ -cvf cc.tar Download_report
https://jingyan.baidu.com/article/4d58d54137d2a19dd5e9c050.html
1.图形模式->命令行
Ctrl+Alt+F1--F6
2.启动默认
2.1 启动进入命令行
修改/etc/inittab文件 最后一行3是无图形模式,重启生效
"id:3:initdefault"
2.2 启动进入图形界面 最后一行5是带网络的图形界面模式,重启生效
修改/etc/inittab文件
"id:5:initdefault"
1、27寸标准显示器,适用于:1920x1080的最佳分辨率。
2、27寸2K显示器,适用于:2560x1440的最佳分辨率。
3、27寸4K显示器,适用于:3840x2160的最佳分辨率。
1、27寸标准显示器,适合使用:3840x2160@60Hz的最佳分辨率。
2、27寸4K显示器,用DP线连接,适合使用:1920x1080@60Hz的最佳分辨率。
3、27寸4K显示器,用HDMI线连接,适合使用:3840x2160@30Hz的最佳分辨率。
水星:Mercury 金星:Venus 地球:Earth 火星:Mars 木星: Jupiter 土星:Saturn 天王星:Uranus 海王星:Neptune 冥王星:Pluto
计算机“端口”可以认为是计算机与外界通讯交流的出口。
其中硬件领域的端口又称接口,如:USB端口、串行端口等。
软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。
按端口号可分为3大类:
(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始
这是黑夜的儿子,
沉浸于冬天,
倾心死亡不能自拔,
热爱着空虚而寒冷的乡村那里的谷物高高堆起,
遮住了窗子它们一半而于一家六口人的嘴,
吃和胃一半用于农业,
他们自己繁殖大风从东吹到西,
从北刮到南,
无视黑夜和黎明,
你所说的曙光究竟是什么意思
——海子《春天,十个海子》
网友纷纷表示:“愿下一个他能透过灵魂爱上你。”
“我爱你始于颜值,忠于灵魂。”
“好看的皮囊太多了有趣的灵魂才是万里挑一!”
世界上有快速获得钱的方法吗???有!!!都写在《刑法》里
#!/usr/bin/perl
$string = "welcome to runoob site.";
$string =~ m/run/;
print "匹配前的字符串: $`\n";
print "匹配的字符串: $&\n";
print "匹配后的字符串: $'\n";
echo "*/15 * * * * cd /usr/local/Leakscanserver/script;./available_change302.pl >/dev/null
*/15 * * * * cd /usr/local/Leakscanserver/script;./modify_checklink.pl >/dev/null" >>/var/spool/cron/root
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:EA:BA:54"
IPADDR=192.168.2.162
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=114.114.114.114
DNS2=8.8.8.8
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="83f87fb8-161b-4841-99d6-0ad1f839eb7d"
DNS1=127.0.0.1
PEERDNS=no
八个魔术常量
__LINE__
文件中的当前行号。
__FILE__
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
__DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) =
__FUNCTION__
函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__CLASS__
类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。
__TRAIT__
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
__METHOD__
类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
__NAMESPACE__
当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
php 流程控制代替语法
<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>
<?php
if ($a == 5):
echo "a equals 5";
echo "...";
elseif ($a == 6):
echo "a equals 6";
echo "!!!";
else:
echo "a is neither 5 nor 6";
endif;
?>
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch ?>
@_与@ARGV
@_是子过程默认的参数列表,在子过程内使用。shift 默认参数。
@ARGV是整个程序的默认参数列表,在子过程外使用。
restructure
[perl]代码库
#-----------------------------
# iterate over elements of array in $ARRAYREF
foreach $item (@$ARRAYREF) {
# do something with $item
}
for ($i = 0; $i <= $#$ARRAYREF; $i++) {
# do something with $ARRAYREF->[$i]
}
#-----------------------------
@fruits = ( "Apple", "Blackberry" );
$fruit_ref = \@fruits;
foreach $fruit (@$fruit_ref) {
print "$fruit tastes good in a pie.\n";
}
Apple tastes good in a pie.
Blackberry tastes good in a pie.
#-----------------------------
for ($i=0; $i <= $#$fruit_ref; $i++) {
print "$fruit_ref->[$i] tastes good in a pie.\n";
}
#-----------------------------
$namelist{felines} = \@rogue_cats;
foreach $cat ( @{ $namelist{felines} } ) {
print "$cat purrs hypnotically..\n";
}
print "--More--\nYou are controlled.\n";
#-----------------------------
for ($i=0; $i <= $#{ $namelist{felines} }; $i++) {
print "$namelist{felines}[$i] purrs hypnotically.\n";
}
#-----------------------------
压缩
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
解压jdk到指定文件夹:
tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java
root@ubuntu:~# tar --help
用法: tar [选项...] [FILE]...
GNU 'tar' saves many files together into a single tape or disk archive, and can
restore individual files from the archive.
Examples:
tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.
tar -tvf archive.tar # List all files in archive.tar verbosely.
tar -xf archive.tar # Extract all files from archive.tar.
主操作模式:
-A, --catenate, --concatenate 追加 tar 文件至归档
-c, --create 创建一个新归档
-d, --diff, --compare 找出归档和文件系统的差异
--delete 从归档(非磁带!)中删除
-r, --append 追加文件至归档结尾
-t, --list 列出归档内容
--test-label 测试归档卷标并退出
-u, --update 仅追加比归档中副本更新的文件
-x, --extract, --get 从归档中解出文件
操作修饰符:
--check-device 当创建增量归档时检查设备号(默认)
-g, --listed-incremental=FILE 处理新式的 GNU 格式的增量备份
-G, --incremental 处理老式的 GNU 格式的增量备份
--ignore-failed-read
当遇上不可读文件时不要以非零值退出
--level=NUMBER 所创建的增量列表归档的输出级别
-n, --seek 归档可检索
--no-check-device 当创建增量归档时不要检查设备号
--no-seek 归档不可检索
--occurrence[=NUMBER] 仅处理归档中每个文件的第 NUMBER
个事件;仅当与以下子命令 --delete,
--diff, --extract 或是 --list
中的一个联合使用时,此选项才有效。而且不管文件列表是以命令行形式给出或是通过
-T 选项指定的;NUMBER 值默认为 1
--sparse-version=MAJOR[.MINOR]
设置所用的离散格式版本(隐含
--sparse)
-S, --sparse 高效处理离散文件
ID归零 truncate table 表名
查看CPU信息 #cat /proc/cpuinfo
查看内存信息 #cat /proc/meminfo
查看硬盘分区情况 #df -lh
shopt -s extglob
rm -rf !(db.conf|t_file|*.pl|*.txt|*.conf|*.sh)
ps aux | grep black_word.pl | grep -v "grep" | wc -l
killall -9 /usr/bin/perl
yum install perl-CGI
getconf LONG_BIT
top -d 5 |grep "Cpu(s)"
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断
st: 实时
cat /etc/issue linux 版本
vmstat -n 3 (每个3秒刷新一次)
Linux显示查看您拥有的仓库 ~$ yum repolist all
如何在perl里取得毫秒级的时间
use Time::HiRes qw( gettimeofday );
my ($seconds, $microseconds) = gettimeofday;
perl 模块版本
perl -MIO::Socket::IP -e "print IO::Socket::IP->VERSION"
peel 模块列表
perldoc perllocal
instmodsh
cpan Socket #安装模块儿
perl -E'say for @INC' #perl相关路径列表
DNS域名解析为IPv6地址杂集
nslookup -query=AAAA betax.cc
#service NetworkManager stop #关掉NetworkManager服务
#chkconfig NetworkManager off #设置NetworkManager服务开机不启动
#service network restart #重启network服务
ip -6 addr show eth0 #ipv6 ip地址
cpan Socket
perl -E'say for @INC'
文件夹不存在则创建
if [ ! -d "/data/" ];then
mkdir /data
else
echo "文件夹已经存在"
fi
文件存在则删除
if [ ! -f "/data/filename" ];then
echo "文件不存在"
else
rm -f /data/filename
fi
判断文件夹是否存在
if [ -d "/data/" ];then
echo "文件夹存在"
else
echo "文件夹不存在"
fi
判断文件是否存在
if [ -f "/data/filename" ];then
echo "文件存在"
else
echo "文件不存在"
fi
文件比较符
-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
-O 判断对象是否存在,并且属于当前用户
-G 判断对象是否存在,并且属于当前用户组
-nt 判断file1是否比file2新 [ "/data/file1" -nt "/data/file2" ]
-ot 判断file1是否比file2旧 [ "/data/file1" -ot "/data/file2" ]