<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[skylinesky的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/skylinesky</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; skylinesky]]></copyright><item><title><![CDATA[Ubuntu 中软件的安装、卸载以及查看的方法总结]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7950152</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7950152</guid><author>skylinesky</author><pubDate>Thu, 06 Sep 2012 11:46:13 +0800</pubDate><description><![CDATA[一、Ubuntu中软件安装方法

1、APT方式

（1）普通安装：apt-get install softname1 softname2 …;

（2）修复安装：apt-get -f install softname1 softname2... ;(-f Atemp to correct broken dependencies)

（3）重新安装：apt-get --reinst]]></description><category></category></item><item><title><![CDATA[Linux core文件详解]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7647098</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7647098</guid><author>skylinesky</author><pubDate>Sat, 23 Jun 2012 16:27:49 +0800</pubDate><description><![CDATA[1、什么是linux core文件
在一个程序崩溃是，它一般会在特定目录（一般是当前目录下）生成一个core文件。core文件仅仅是一个内存映像（同时加上调试信息），主要用来程序调试。
有人可能要问了，gdb不是可以直接调试吗？“加上断点，想怎么调怎么调”。这话倒是不错，但是假如有个几万行的代码，只给出一个segment fault错误，怎么调？不能进去一行一行的调试吧。core文件就能很好的]]></description><category></category></item><item><title><![CDATA[文件特殊访问权限：SUID，SGID，SBIT]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7685817</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7685817</guid><author>skylinesky</author><pubDate>Sat, 23 Jun 2012 16:05:08 +0800</pubDate><description><![CDATA[一般来讲unix／linux文件的权限是三个用户（owner，group，others），都是rwx，这是大家比较熟悉的，其实还有三个特殊的权限，SUID，SGID，SBIT三个，先看一下，

怎么权限位中会出现t和s呢？详解如下：
一 SetUID：当s这个标志出现在文件所有者的x权限上时，如上图／usr／bin／passwd 的权限状态”rwsr－xr－x”，此时就称为Set UID，简]]></description><category></category></item><item><title><![CDATA[ls  命令详解]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7664605</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7664605</guid><author>skylinesky</author><pubDate>Thu, 14 Jun 2012 21:58:36 +0800</pubDate><description><![CDATA[除了ls -l和ls -a 之外你还知道那些参数。其实ls远不止这些。
ls   [-aAdfFhilnrRSt]  目录名
参数：

－a：全部的文件，连同隐藏文件；－A：列出全部文件（连同隐藏文件，但不包括.与..这两个目录）；－d：仅列出目录本身，而不是列出目录内的文件数据－f：直接列出结果，而不进行排序（ls默认会以文件名排序）－F：根据文件，目录等信息给予附加数据结构，例如：]]></description><category></category></item><item><title><![CDATA[mysql拷贝表的几种方式]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7660176</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7660176</guid><author>skylinesky</author><pubDate>Wed, 13 Jun 2012 16:52:50 +0800</pubDate><description><![CDATA[mysql拷贝表操作我们会常常用到，下面就为您详细介绍几种mysql拷贝表的方式，希望对您学习mysql拷贝表方面能够有所帮助。

假如我们有以下这样一个表：

id      username    password 
----------------------------------- 
1       admin       ************* 
2       sa]]></description><category></category></item><item><title><![CDATA[MySQL  limit用法]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7646757</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7646757</guid><author>skylinesky</author><pubDate>Fri, 08 Jun 2012 22:05:20 +0800</pubDate><description><![CDATA[limit用法：
 
SELECT * FROM tablename LIMIT [offset,] rows | rows OFFSET offset

举例：

SELECT * FROM tablename LIMIT 5,10   //返回6-15行记录
SELECT * FROM tablename 5  //返回1-5行
相当于：
SELECT * FROM tablen]]></description><category></category></item><item><title><![CDATA[Python 脚本清屏命令]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7646618</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7646618</guid><author>skylinesky</author><pubDate>Fri, 08 Jun 2012 20:26:03 +0800</pubDate><description><![CDATA[import os


os.system('clear')]]></description><category></category></item><item><title><![CDATA[ulimit 和 free 命令详解]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7632794</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7632794</guid><author>skylinesky</author><pubDate>Tue, 05 Jun 2012 00:52:16 +0800</pubDate><description><![CDATA[ulimit 是一种 linux 系统的内键功能，它具有一套参数集，用于为由它生成的 shell 进程及其子进程的资源使用设置限制。
ulimit 命令的格式为：ulimit [options] [limit]
 1. ulimit 参数说明





选项 [options]

含义

例子



-H

设置硬资源限制，一旦设置不能增加。

ulimit]]></description><category></category></item><item><title><![CDATA[求集合的幂集]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7627112</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7627112</guid><author>skylinesky</author><pubDate>Sun, 03 Jun 2012 01:42:55 +0800</pubDate><description><![CDATA[集合的幂集A = { 1， 2， 3}， 则A的幂集为：{{1， 2， 3}， {1， 2}， {1， 3}， {2， 3} ，{ 2} ，{3} ，Φ}。对于求A集合的幂集，A中的元素它只有两中状态，它或属于幂集的元素集，或者不属于幂集的元素集。求幂集的过程可以看成是对A中元素进行“取”或“舍”的过程。状态树如下：叶子节点表示终结状态，而第i层的分支节点，则表示已对集合A中前i-1个元素进行了取]]></description><category></category></item><item><title><![CDATA[全排列算法递归实现]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7627007</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7627007</guid><author>skylinesky</author><pubDate>Sun, 03 Jun 2012 00:19:18 +0800</pubDate><description><![CDATA[全排列算法有很多中实现算法，最简单的递归实现，还有字典排序实现（没太看明白）。下面主要说一下递归实现。
假设求 array = { 1， 2， 3， 4， 5}的全排列，输出依次是1{2，3，4}      2{1 ，3，4}     3{ 1， 2， 4}   4{ 1， 2， 3}
对于{ 2， 3， 4}  ： 2{ 3， 4}    3{ 2， 4}     4 { 2， 3}
对于]]></description><category></category></item><item><title><![CDATA[KMP算法详解]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7627003</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7627003</guid><author>skylinesky</author><pubDate>Sat, 02 Jun 2012 23:57:57 +0800</pubDate><description><![CDATA[字符串经典的匹配算法，时间算法复杂度为（n+m）。说到kmp算法不得不提朴素的字符串匹配算法，在朴素字符串匹配算法中，每次当匹配不相等时就回溯到开始匹配字符串的下一个字符，重新开始匹配。这种算法的时间复杂度为（n*m）。






kmp算法之所有能够将时间复杂度将为（n+m）,是因为kmp算法不是每次都回溯到字符串开始匹配的位置下一个位置重新开始匹配，而是利用前面匹配的信息，进行]]></description><category></category></item><item><title><![CDATA[PS 命令详解]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7621832</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7621832</guid><author>skylinesky</author><pubDate>Thu, 31 May 2012 23:17:55 +0800</pubDate><description><![CDATA[linux上进程有5种状态: 
1. 运行(正在运行或在运行队列中等待) 
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIG]]></description><category></category></item><item><title><![CDATA[netstat 命令详解]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7621718</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7621718</guid><author>skylinesky</author><pubDate>Thu, 31 May 2012 22:40:36 +0800</pubDate><description><![CDATA[Netstat ：命令用于显示各种网络相关信息，如网络连接，路由表，接口状态 (Interface Statistics)，masquerade 连接，多播成员 (Multicast Memberships) 等等。

输出信息含义

执行netstat后，其输出结果为


Active Internet connections (w/o servers)Proto Recv-Q S]]></description><category></category></item><item><title><![CDATA[UNIX 网络编程学习（二）I/O模型]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7619338</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7619338</guid><author>skylinesky</author><pubDate>Thu, 31 May 2012 13:43:52 +0800</pubDate><description><![CDATA[UNIX下有五种I/O模型


阻塞I/O模型非阻塞I/O模型I/O复用（select和poll）信号驱动I/O异步I/O
第1种：阻塞I/O模型
请求的I/O操作阻塞进程，直到I/O操作完成。如下图：

第2种：非阻塞I/O模型
当请求I/O操作非得让进程阻塞不能完成时，不让进程阻塞，而应返回一个错误。如下图：


第3种：I/O复用模型
调用select或poll，在这]]></description><category></category></item><item><title><![CDATA[UNIX 网络编程学习（一） TCP连接的建立和终止]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7617494</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7617494</guid><author>skylinesky</author><pubDate>Thu, 31 May 2012 13:40:50 +0800</pubDate><description><![CDATA[TCP建立连接，三路握手：

服务器必须准备好接受外来的连接。这通过调用socket、bind和listen函数来完成，称为被动打开；客户通过调用connect进行主动打开。这引起客户TCP发送一个SYN分节，它告诉服务器客户将在连接数据中发送的数据的初始序列号；服务器必须确认客户的SYN，同时自己也得发送一个SYN分节，它含有服务器将在同一个连接中发送的数据的初始序列号。服务器以单个分节发送]]></description><category></category></item><item><title><![CDATA[最长递增子序列]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7618785</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7618785</guid><author>skylinesky</author><pubDate>Thu, 31 May 2012 10:51:44 +0800</pubDate><description><![CDATA[这是微软实习生笔试遇到的，题意：求一个数组中最长递增子序列的长度。要求选择该题最好算法的时间复杂度和空间复杂度。答案：时间复杂度O（NlgN），空间复杂度O（N）。
这题明显用动态规划来解。假设在目标数组array[ ]的前i个元素中，以array[i]元素为最大元素的递增子序列的长度是LIS[i]。那么
递归求解表达式为：
LIS[i+1] = max{1, LIS[k] + 1}, ar]]></description><category></category></item><item><title><![CDATA[c程序是如何启动和终止]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7617678</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7617678</guid><author>skylinesky</author><pubDate>Wed, 30 May 2012 20:49:06 +0800</pubDate><description><![CDATA[c程序如何启动：
当内核执行C程序时（使用exec函数），在调用main函数之前调用一个特殊的启动例程。可执行文件将此启动例程指定为程序的起始地址---这是由连接编辑器设置的，而连接编辑器由c的编译器调用。同时，启动例程从内核取得命令行参数和环境变量。
进程的终止
总共有8种方式使进程终止，其中前5种正常，后3种不正常。



从main返回。在这种方式中，main函数返回后立即调用]]></description><category></category></item><item><title><![CDATA[使用 GDB 调试多进程程序]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7616532</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7616532</guid><author>skylinesky</author><pubDate>Wed, 30 May 2012 15:31:07 +0800</pubDate><description><![CDATA[GDB 是 linux 系统上常用的 c/c++ 调试工具，功能十分强大。对于较为复杂的系统，比如多进程系统，如何使用 GDB 调试呢？考虑下面这个三进程系统：

进程
 

Proc2 是 Proc1 的子进程，Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢？

实际上，GDB 没有对多进程程序调试提供直接支持。例如，使用GDB调试]]></description><category></category></item><item><title><![CDATA[建造者模式]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7613872</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7613872</guid><author>skylinesky</author><pubDate>Tue, 29 May 2012 19:24:05 +0800</pubDate><description><![CDATA[建造者模式（Builder）：建一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示。
建造者模式主要用于创建一些复杂的对象，这些对象内部构建间的建造顺序通常是稳定的，但对象内部的构建通常面临复杂的变化。
都将建造者模式与装饰模式比较，一个是过程固定内容不同的建造，一个是动态的装饰。这两个模式放在一起比较，是因为它们两个明显的不同，一个过程固定，一个动态变化。
个人觉得还有]]></description><category></category></item><item><title><![CDATA[装饰模式]]></title><link>https://blog.youkuaiyun.com/skylinesky/article/details/7613115</link><guid>https://blog.youkuaiyun.com/skylinesky/article/details/7613115</guid><author>skylinesky</author><pubDate>Tue, 29 May 2012 16:17:07 +0800</pubDate><description><![CDATA[装饰模式（Decorator）：动态的给一个对象添加一些额外的职责。
感觉这个模式可以和策略模式相比较一下，策略模式是动态灵活的改变不同的算法（由类中的setComponent（strategyX）），而装饰模式呢，setComponent(componentX)；可以看出装饰模式是装饰的同类对象，大家都是继承相同的基类，实现某个相同的方法，在这个方法中，实现自己特有的操作，同时调用compoe]]></description><category></category></item></channel></rss>