kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp

mysql 查看连接数

查看当前所有连接的详细资料:

1
mysqladmin -uadmin -p processlist

只查看当前连接数(Threads就是连接数.):

1
mysqladmin -uadmin -p status

连接进程

1
2
3
4
5
6
7
8
9
10
11
mysql -uroot -p

mysql> show full processlist 查看所有连接进程,注意查看进程等待时间以及所处状态 是否locked


mysql> show variables like '%_connections';

max_user_connections  这个就是单用户的连接数
max_connections       这个是全局的限制连接数

mysql> set global max_connections = 152;

CI使用cookie

第一种设置cookie的方式:采用php原生态的方法设置的cookie的值

1
2
3
4
setcookie("user_id",$user_info['user_id'],86500);
setcookie("username",$user_info['username'],86500);
setcookie("password",$user_info['password'],86500);
//echo $_COOKIE['username'];

第二种设置cookie的方式:通过CI框架的input类库设置cookie的值

1
2
3
4
5
6
7
$this->input->set_cookie("username",$user_info['username'],60);
$this->input->set_cookie("password",$user_info['password'],60);
$this->input->set_cookie("user_id",$user_info['user_id'],60);
//echo $this->input->cookie("password");//适用于控制器
//echo $this->input->cookie("username");//适用于控制器
//echo $_COOKIE['username'];//在模型类中可以通过这种方式获取cookie值
//echo $_COOKIE['password'];//在模型类中可以通过这种方式获取cookie值

第三种设置cookie的方式:通过CI框架的cookie_helper.php辅助函数库设置cookie的值

1
2
3
4
set_cookie("username",$user_info['username'],60);
set_cookie("password",$user_info['password'],60);
set_cookie("user_id",$user_info['user_id'],60);
//echo get_cookie("username");

删除cookie:通过CI框架的cookie_helper.php辅助函数删除cookie

1
2
3
4
delete_cookie("username");
delete_cookie("password");
delete_cookie("user_id");
header("location:".site_url("common/login"));

ubuntu 18.04增加/etc/rc.local

https://blog.csdn.net/qq_41782149/article/details/89001226

ubuntu18.04不再使用 inited 管理系统,改用 systemd

1.实现原理

systemd 默认会读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接 /lib/systemd/system/ 下的文件。一般系统安装完 /lib/systemd/system/ 下会有 rc-local.service 文件,即我们需要的配置文件。

2.将 /lib/systemd/system/rc-local.service 链接到 /etc/systemd/system/ 目录下面来

1
2
3
4
5
6
7
8
9
10
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

修改文件内容

sudo vim /etc/systemd/system/rc-local.service

在文件末尾增加
[Install]
WantedBy=multi-user.target
Alias=rc-local.service

3. 创建/etc/rc.local文件

1
2
3
4
sudo vim /etc/rc.local

#!/bin/bash
...

ubuntu dns覆盖写入127.0.0.53

https://blog.csdn.net/evanxuhe/article/details/90229597

/etc/resolve.conf 一直是 nameserver 127.0.0.53,无法修改,因为 ubuntu17.0之后特有,systemd-resolvd服务会一直覆盖

解决办法

1
2
3
4
5
6
7
8
9
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo apt install unbound
sudo rm -rf /etc/resolv.conf
sudo vim  /etc/NetworkManager/NetworkManager.conf
在 [main] 下面添加
dns=unbound
将dns服务替换为unbound
reboot 开机查看resolve.conf发现nameserver自动配置

负数的取模运算

https://www.cnblogs.com/ppboy_dxh/archive/2011/02/18/1958175.html

在不同的语言中,对负数执行取模运算,结果有可能会是不同的。例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1。

truncate除法 && floor除法

 在大多数编程语言中,如果整数a不是整数b的整数倍数的话,那么a、b做除法产生的实际结果的小数部分将会被截除,这个过程称为截尾(truncation)。如果除法的结果是正数的话,那么一般的编程语言都会把结果趋零截尾,也就是说,直接把商的小数部分去除。但是如果除法的结果是负数的话,不同的语言通常采用了两种不同的截尾方法:一种是趋零截尾(truncate toward zero),另一种是趋负无穷截尾(truncate toward negative infinity);相应的,两种除法分别被称为truncate除法和floor除法。

 事实上,可以认为不管除法的结果是正是负,truncate除法都是趋零结尾;而floor除法都是趋负无穷结尾。

取模运算

 取模运算实际上是计算两数相除以后的余数。假设q是a、b相除产生的商(quotient),r是相应的余数(remainder),那么在几乎所有的计算系统中,都满足a=b*q+r,其中|r|<|a|。因此r有两个选择,一个为正,一个为负;相应的,q也有两个选择。如果a、b都是正数的话,那么一般的编程语言中,r为正数;或者如果a、b都是负数的话,一般r为负数。但是如果a、b一正一负的话,不同的语言则会根据除法的不同结果而使得r的结果也不同,并且一般r的计算方法都会满足r=a-(a/b)*b

常见语言

 (1)C/Java语言

  C/Java语言除法采用的是趋零截尾(事实上,C89对于除数或被除数之一为负数情况的结果是未定义的;C99才正式确定了趋零截尾),即truncate除法。它们的取模运算符是%,并且此运算符只接受整型操作数。一个规律是,取模运算的结果的符号与第一个操作数的符号相同(或为0)。因此(-11)%5=-11-[(-11)/5]*5=-11-(-2)*5=-1

 (2)C++语言

  C++语言的截尾方式取决于特定的机器。如果两个操作数均为正,那么取模运算的结果也为正数(或为0);如果两个操作数均为负数,那么取模运算的结果为负数(或为0);如果只有一个操作数为负数,那么取模运算的结果是取决于特定实现的。

 (3)Python语言

  Python语言除法采用的是趋负无穷截尾,即floor除法。它的取模运算符也是%,并且此运算符可以接受浮点操作数。一个类似的规律是,取模运算的结果的符号与第二个操作数的符号相同。因此(-11)%5=-11-[(-11)/5]*5=-11-(-3)*5=4

  这里需要注意的是,Python 3.x中"/“运算符的意义发生了变化,”/“产生的结果将不会再进行截尾;相应的”//“运算符的结果才会进行截尾。