-
实现SSH无密码自动登录
在使用ssh登陆服务器的时候很蛋疼的事是每次登陆的时候都要输入服务器密码,而且为了安全性,密码一般都不短,大概都得十几位的样子,一不小心输错了还得重来,十分麻烦。所以实现SSH的自动登陆是一件非常方便的事情,避免了恶心蛋疼而且无聊重复的输密码环节。 当然,这种所谓的无密码登陆认证实际上是一种通过公钥加密方法来进行自动化认证的技术。所以这里也存在这公钥和私钥的说法,其中,公钥是保存在服务器中的,而私钥是保存在客户端中的。具体方法如下: 产生密钥 myths@myths-X450LD:~/.…
-
Fork炸弹简析和应对方法
简述 第一次听到fork炸弹这种东西的时候以为是一个很神奇的破坏力惊人的高能脚本,然而稍微深入的了解了一下才发现这个玩意其实是个挺简单纯粹的东西,只是被一个叫Jaromil的家伙对他的精美包装给戏耍了。他在2002年给出了Linux下fork炸弹的最经典的形式: myths@myths-X450LD:~$ :(){ :|:& };: 一段非常忽悠人的代码,只有13个字母,乍一看完全看不懂。。但其实这个代码的思路非常简单,就是递归的开一个新的进程,不断的开不断的开,直到操作系统崩溃。中招…
-
C语言助教用于批量改作业的脚本
作为一名C语言助教,最恶心的事情莫过于改作业了,尤其是我们学校这种对输入输出都没有严格要求的题目,不能通过类似OJ的判题系统批量批改的,原则上是只能手动批改的。但是一直做着相同的简单的劳动真的很让人发疯,而作为一名程序员,对待这样的任务很自然就想到了编程。考虑了我现在略懂的语言,对于这种直接和文件达交道的事,我很自然的选择了使用shell脚本。虽然我对shell脚本其实是一窍不通的,然而正巧身边有一本关于这个的书,就花了一个晚上的时间倒腾了一下,有问题了就翻一下资料,差不多把这个小程序弄了个框架…
-
tar命令基本用法
Linux里文件压缩解压打包神马的还是很有用的,比如要向服务器上传一堆小东西(特别像网站的移植),挨个上传的话会特别特别的慢。这时候用一个打包命令来处理就尤为重要了。实际上这类的命令有很多(比如 cpio命令,lzma命令,gunzip命令,bunzip命令等等),但是最常用的还是今天介绍的tar命令。 首先介绍一些比较常见的用法,就是什么打包,解包,压缩,解压缩这些的一般晓得这些用法就够用了。 打包命令 tar -cvf [生成的文件] [需打包的文件1] [需打包的文件2] [需打包…
-
二叉堆简述
简述 对于堆,我个人的理解就是一种优先队列,从队列中取元素的时候总是取出最大(或最小)的元素。二叉堆是一种堆的一种实现形式,是一棵完全二叉树。对于二叉堆,我们显然可以分成两类:大根堆和小根堆,表示他每次取出的是最大元素还是最小元素。而大根堆一定是满足这样的一个性质,即:对于任意一个节点,他一定不大于他的父亲,而且不小于他的两个儿子。小根堆反之。 实现功能 以$O(n)$的时间建树,并以$O(logn)$的复杂度实现插入、寻找最小(或最大)值,修改元素,删除元素。 实现思路(小根堆)…
-
左偏树简述
简述 左偏树与二叉堆一样,是一种优先队列的实现。但是与二叉堆不一样,他不是一种完全二叉树,而是一种不平衡二叉树,这样做的目的是为了实现一个重要的性质--合并。通常的二叉堆并不能方便的实现两个堆之间的合并,而左偏树,却恰恰适合解决这样的问题。 实现功能 实现一个最小优先队列,是的插入、删除、合并等操作均在$O(logN)$的时间复杂度内完成。 实现思路 左偏树定义了一种节点叫“外节点”,即这个节点的左子树或者右子树为空。并且定义了一个性质叫“距离”,就是这个节点到他子孙中最近的外节点…
-
Apache2服务器的搭建与配置
搭建apache2其实并不难,只是网上的资料有很多都过时了,之前被误导过好几次,走了很多弯路。趁着这次在本地搭建网站的时机重新捋一下思路,也方便以后有需求的时候查阅。 首先当然是下载包包: myths@myths-X450LD:~$ sudo apt-get install apache2 装完后就可以用了,在地址栏输入本地回送地址127.0.0.1或者localhost就可以进入到默认的界面了。 默认的界面当然就是apache2的说明界面了。其实很多情况下并不需要在网上寻找帮助文档,…
-
Linux中ln命令的用法以及分析
在ubuntu用也有类似于windows中快捷方式这种类型的东西,即链接。这里一般使用ln命令来执行得到,ln命令用法简单,但是与windows不同,这里有硬链接和软链接两种类型的链接。在介绍两种链接的时候,我们先来了解一下Linux的文件系统。 文件系统 在Linux中每一个文件大体上由三个部分组成: 1. 文件名:这个是用来标记这个文件的符号,也就是我们所理解的文件名; 2. inode:inode存放的是文件的metadata,也就是元信息,包括了文件的权限、创建时间、修改时间…
-
Qt中基本的绘图方法
Qt中实现绘图功能和其他的库差不多,主要靠Painter,Pen,Brush之类的东西进行描绘。这里主要牵涉到QPainter,QPen,QBrush三个类,用法也很简单。下面主要是实现一个全面显示各种图形的程序,定义了两个类,一个负责绘图区,一个负责用户交互,这里先介绍绘图区的类。 Painter.pro #------------------------------------------------- # # Project created by QtCreator 2015-11-…
-
Visual Studio 系列调试方法整理
学编程不会调试,这简直就跟做买卖不会数钱一样好笑,有时候程序出了bug,思维受限的时候,肉眼是很难判断出错误的地方的,虽然调试不一定非得用Debug模式来进行,但是使用vs系列的Debug模式的确是个比较方便的好办法。 首先介绍一些快捷键: Ctrl + F5 键 这个就是直接运行程序,不会在任何断点处下来,所以实际上并不属于Debug模式的范畴,而是直接运行程序了。这样运行的程序结束后会自动pause一下,所以比较方便的能查看程序运行的结果,而不会出现所谓的“闪退”。 开启Debu…