btmp是什么?它 是系统记录登陆失败的 日志文件，使用以下命令来清空此文件，切勿直接删除, 别忘了那个大于号!! > /var/log/btmp使用last 命令来查看所有登录成功的记录lastb来查看所有登陆失败的记录lastlog来查看最近登陆信息我们可以通过修改ssh端口号来减少暴力破解次数, 这样日志文件也会变小 Ubuntu系统清理系列: 使用脚本自动清理旧内核 清理btmp日志文件!(本篇) 清理系统上的一些文件&查看总大小
1 . 编辑 /etc/ssh/sshd_config 文件，找到Port 22 一栏，修改22为你想要的端口2. 使用下面这句 将新的端口加入允许列表，不然你登出后将无法登陆回来 ，xxxx替换成端口号ufw allow xxxx/tcp 3. 重启 ssh服务，service ssh restart 或者 /etc/init.d/ssh restart 即可
（把设置777权限的wordpress文件夹修改回来！）wordpress升级时如果出现问题，比如说提示update-core.php 权限不足然后设置权限后又蹦出一堆，我们使用这两句命令来提升他们的权限( 还有其他两个文件也要设置下, 根据提示设置为777 ), 从而完成升级( 还有其他两个文件也要设置下, 根据提示设置为777 ), 从而完成升级chmod -R 777 wp-adminchmod -R 777 wp-includes但是升级过后，不禁思考到，如果都是777权限会不会不安全呢，于是兰兰想在stack overflow 上找到了答案，使用以下两句来修正文件夹和文件的权限（ubuntu系统已测试很完美！）运行这两句前，要先cd到wordpress的根目录！find . -type d -exec chmod 755 {} \; # Change directory permissions rwxr-xr-x find . -type f -exec chmod 644 {} \; # Change file permissions rw-r--r--这两句让文件夹设置为755权限，让文件变为644权限（只需要输入#号前的）
水仙花数，n位数字，假设n为3，数字为153，那么1的3次方，加上5的三次方，加上3的三次方等于153，则称153为水仙花数。我们需要写出，输入n，输出其位数的所有水仙花数。代码在运行的时候比较慢，需要多等一会儿，代码实现：n位数的水仙花数，假设n为3，则水仙花数的范围是100到1000，在这个范围内，判定一个数，假设判定100，分割100，为，1，0，0然后分别计算分割出的字符串的n次幂（1的3次方，0的3次方，0的3次方），然后相加，对比是否等于原数字，如果是原数字，则为水仙花数，加入结果数组最后打印出结果数组最后！让代码说话！import java.util.ArrayList; import java.util.Scanner; /** * @Author: LanHao * @Website:https://lanhaoo.club/ * @Created_Date:8:15 PM_5/23/2019 * @Magic_Power_Of_Code! */ public class water_flower { public static void main (String[] args){ Scanner scanner=new Scanner(System.in); String n=scanner.nextLine(); int new_n=Integer.valueOf(n); //todo 判断是否为数字 String range_left="1"; String range_right="1"; String[] a; ArrayList result1=new ArrayList(); for (int i = 0; i<new_n-1;i++){ range_left=range_left+"0"; } for (int i = 0; i<new_n;i++){ range_right=range_right+"0"; } int new_range_l=Integer.valueOf(range_left); int new_range_r=Integer.valueOf(range_right); System.out.println(new_range_l); System.out.println(new_range_r); for(int ii=new_range_l;ii<new_range_r;ii++){ double final_answer=0; String i=String.valueOf(ii); a=i.split(""); for (int j=0;j<a.length;j++){ int cc=Integer.valueOf(a[j]); final_answer=final_answer+Math.pow(cc,new_n); } if(final_answer==ii){ result1.add(ii); } } System.out.println(result1); } }
/**@param {number[]} nums@param {number} target@return {number[]}*/var twoSum = function(nums, target) {for(var i=0;i<nums.length;i++){for(var j=i+1;j<nums.length;j++){if(nums[i]+nums[j]==target){return [i,j];}}}};nums=[1,2,3,4] target=6 应该返回的结果为[1,3]j=i+1保证计算不会重复，返回下标正确
js的一款五子棋算法这个五子棋算法是从一篇博客上看的，我解决了当五子棋下到两边时，数组越界的问题。过程：当一方棋子下到棋盘上时，判断左右，上下，左上右下，左下右上 的本方棋子个数，当为5时游戏结束，一方胜出。 function draw_board(){ var tmp=document.getElementById('canvas1'); var canva=tmp.getContext('2d'); canva.clearRect(0,0,600,600); for(var i=0;i<=15;i++){ canva.beginPath(); canva.fillText(i,30+i*30,15); canva.moveTo(30+i*30,30); canva.lineTo(30+i*30,480); canva.stroke(); if(i!=0){ canva.fillText(i,0,30+i*30); } canva.moveTo(30,30+i*30); canva.lineTo(480,30+i*30); canva.closePath(); canva.stroke(); } } function start(){ var over=false; var Chessboard=[];//-1 黑，0无，1白 var chess_num=0; var nownow=0; document.getElementById('canvas1').setAttribute("height","500px"); document.getElementById('canvas1').setAttribute("width","500px"); var tmp=document.getElementById('canvas1'); var canva=tmp.getContext('2d'); canva.fillStyle="#000"; for(var i=0;i<=15;i++){ canva.beginPath(); canva.fillText(i,30+i*30,15); canva.moveTo(30+i*30,30); canva.lineTo(30+i*30,480); canva.stroke(); if(i!=0){ canva.fillText(i,0,30+i*30); } canva.moveTo(30,30+i*30); canva.lineTo(480,30+i*30); canva.closePath(); canva.stroke(); } //初始化棋盘信息，将二维数组所有项全部初始化为0 for (var i = -1; i <= 16; i++) { Chessboard[i]=[]; for (var j = -1; j <= 16; j++) { Chessboard[i][j]=0; } } var now_chess=true; var drawChess=function(i,j){ canva.beginPath(); canva.arc(30+i*30,30+j*30,13,0,2*Math.PI,true); canva.closePath(); if(now_chess){ canva.fillStyle="#000000"; }else{ canva.fillStyle="#fff"; } canva.fill(); } $('#canvas1').mousemove(function(e){ // 悬浮事件 }); tmp.onclick=function(e){ if(over){ window.alert("本轮游戏已经结束了，请刷新浏览器重新开始！"); }else{ var x=e.offsetX; var y=e.offsetY; console.log(x+" "+y); var i=Math.floor(x/32); var j=Math.floor(y/30); if(Chessboard[i][j]===0){ if(i>=0&&j>=0&&i<=15&&j<=15){ drawChess(i,j); chess_num++; if(now_chess){ //黑子 Chessboard[i][j]=-1; nownow=-1; now_chess=false;//将下一步棋的颜色进行反转 }else{ Chessboard[i][j]=1; nownow=1; now_chess=true;//将下一步棋的颜色进行反转 } console.log(nownow); //遍历是否赢 if(chess_num>9){ var count1=0; var count2=0; var count3=0; var count4=0; console.log(chess_num); //横向，参考博客 陶伟基 for(var cc=i;cc>=0;cc--){ if(Chessboard[cc][j]!=nownow){ break; } count1++; }//左 for(var dd=i+1;dd<=15;dd++){ if(Chessboard[dd][j]!=nownow){ break; } count1++; }//右 console.log("横向："+count1); for(var ee=j;ee>=0;ee--){ if(Chessboard[i][ee]!=nownow){ break; } count2++; }//上 for(var ff=j+1;ff<=15;ff++){ if(Chessboard[i][ff]!=nownow){ break; } count2++; }//下 console.log("竖向："+count2); for(var gg=i,hh=j;gg>=0,hh>=0;gg--,hh--){ if(Chessboard[gg][hh]!=nownow){ break; } count3++; }//左上,todo 解决越界问题？ for(var jj=i+1,kk=j+1;jj<=15,kk<=15;jj++,kk++){ if(Chessboard[jj][kk]!=nownow){ break; } count3++; }//右下 console.log("左上右下："+count3); for(var ll=i,mm=j;ll>=0,mm<=15;ll++,mm--){ if(Chessboard[ll][mm]!=nownow){ break; } count4++; } for(var nn=i-1,oo=j+1;nn<=15,oo>=0;nn--,oo++){ if(Chessboard[nn][oo]!=nownow){ break; } count4++; } console.log("右上左下："+count4); if(count1>=5||count2>=5||count3>=5||count4>=5){ if(nownow==-1){ window.alert("黑棋赢了"); }else if(nownow==1){ window.alert("白棋赢了"); } over=true; } } } } } } } 有的地方缩进可能有点问题。写的着急了。效果可看兰兰想的五子棋网页：https://lanhaoo.club/lab/game_board33.html
使用js ( javascript ) 来计算html表格的中的数字function test() { var rows_c =document.getElementById("table1").getElementsByTagName("tr").length; //找到id为table1的表格 //alert(rows_c); //变量na是要跳过第一行的标题 var na=1; var magic_power=[]; var money=[] while(na < rows_c){ var rows = document.getElementsByTagName("table")[0].rows; var now = rows[na]; var cell = now.cells[1];//money //alert(cell.innerHTML) var money_sp = cell.innerHTML.split(" "); //alert(money_sp[0]) if(money_sp[0]=="￥"){ var cell2 = now.cells[4];//power var value = cell.innerHTML; var value2 = cell2.innerHTML; var hi = parseFloat(money_sp[1]); //js tracking https://lanhaoo.club/; money.push(hi); hi=hi/169.02; }else if(money_sp[0]=="$"){ var cell2 = now.cells[4];//power var value = cell.innerHTML; var value2 = cell2.innerHTML; var hi = parseFloat(money_sp[1]); //alert(hi); hi=hi*6.7; hi=hi.toString().substr(0,4); cell.innerHTML=cell.innerHTML+' 换算￥'+hi+' '; hi= parseFloat(hi); money.push(); hi=hi/169.02; } hi=hi*100; hi=hi.toString().substr(0,5); hi=parseFloat(hi); magic_power.push(hi); cell2.innerHTML="+"+hi+"%"; //alert(cell.innerHTML); //js tracking https://lanhaoo.club/; na=na+1; } var sum = magic_power.reduce(function(a, b) { return a + b; }, 0); /*if(sum>=100){ document.getElementById("ifsuccess").innerHTML="完成"; }else{ document.getElementById("ifsuccess").innerHTML="未完成"; }*/ sum=sum.toString().substr(0,5); document.getElementById("magic_total").innerHTML=sum+"%"; }具体的效果可以参考本站的捐助界面代码也已上传github的gist，如果你想从github上收藏一下的话研究这个主要是因为本站的捐助界面下面第一个表格中的值原先每个都是我手动输入的不仅要把金额打入，还要要写美元的换算以及百分比是一个非常繁琐的过程，而通过Js，就能让我只写入一个捐助数值，其他都可以自动计算出来。总体思路就是将每个金额都加入数组，最后再把数组整个加起来。金额在加入数组时会进行美元或人民币的判断，如果是人民币，直接加入数组，如果是美元，先换算人民币，再加入数组。
参考韩艺博的博客）） view English version在nginx配置中插入ssl on; ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/private.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;'; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_session_tickets off; ssl_ecdh_curve X25519:sect571r1:secp521r1:secp384r1; ssl_prefer_server_ciphers on;注意ssl_session_cache等配置不要和vhost中的配置有冲突！