自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张三先生

生活就像刚刚下过雪的田野,你走的每一步都会留下痕迹。。。。

  • 博客(24)
  • 收藏
  • 关注

原创 【PowerShell(3)】——交互式

进行数学运算我们可以把powershell当成一个计算器。象键入命令行那样输入数学表达式,回车,powershell会自动计算并把结果输出。常用的加减乘除模(+,-,*,/,%)运算和小括号表达式都支持。PS C:\> 2+4+915PS C:\> 0xABCD43981PowerShell也能自动识别计算机容量单位,包括KB,MB,GB,TB,PB。PS C:\> 1pb...

2018-03-22 11:54:36 1065

原创 【PowerShell(2)】—— 初识PowerShell

PowerShell快速编辑模式和标准模式powershell控制台有两种模式,一个是快速编辑模式,一个是标准模式。快速编辑模式和标准模式的切换可以通过控制台标题栏->鼠标右击->属性->选项->编辑选项 。Powershell标准模式鼠标右击选择标记后才能实现复制和粘切功能。Powershell快速编辑模式可以通过鼠标左键选择任意矩形区域内的文本,并且鼠标右击实现复制功能...

2018-03-21 15:59:45 834

原创 【PowerShell(1)】—— 介绍和安装及简单使用

PowerShell介绍owershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。 当前p...

2018-03-21 14:50:10 7750 2

原创 【进程(3)】—— 进程间通信

进程间通信每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。如下图所示管道管道是一种最基本的IPC机制,由pipe函数创建:#include ...

2018-03-15 14:48:24 319

原创 【进程(2)】—— 进程控制

 fork函数#include <sys/types.h>#include <unistd.h>pid_t fork(void);fork调用失败则返回-1,调用成功的返回值见下面的解释。我们通过一个例子来理解fork是怎样创建新进程的。例: fork#include <stdio.h>#include <unistd.h>#include...

2018-03-15 14:01:52 383

原创 【进程(1)】—— 环境变量

每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。1.进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。2.进程的状态,有运行、挂起、停止、僵尸等状态。3.进程切换时需要保存和恢复的一些CPU寄存器。4.描述虚拟地址空间的信息。5.描述控制终端的信息。6.当前工作目录(Current...

2018-03-15 11:02:15 1138

原创 【TCP/IP】TCP协议

TCP协议TCP的段格式如下图所示和UDP协议一样也有源端口号和目的端口号,通讯的双方由IP地址和端口号标识。32位序号、32位确认序号、窗口大小稍后详细解释。4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短20字节。URG、ACK、PSH、RST、SYN、FIN是六个控制位,16位检验和将TCP...

2018-03-09 15:51:23 344

原创 【TCP/IP】 UDP段格式

 UDP段格式下图是UDP的段格式下面分析一帧基于UDP的TFTP协议帧。以太网首部0000: 00 05 5d 67 d0 b1 00 05 5d 61 58 a8 08 00 IP首部0000: 45 000010: 00 53 93 25 00 00 80 11 25 ec c0 a8 00 37 c0 a80020: 00 01UDP首部0020: 05 d4 00 45 00 3f ac...

2018-03-09 15:19:09 425

原创 【TCP/IP】 IP地址与路由

 IP地址与路由IPv4的IP地址长度为4字节,通常采用点分十进制表示法(dotted decimal representation)例如0xc0a80002表示为192.168.0.2。Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要通过路...

2018-03-09 15:07:04 2127

原创 【 TCP/IP 】以太网(RFC 894)帧格式、 ARP数据报格式、 IP数据报格式

以太网(RFC 894)帧格式以太网的帧格式如下所示:其中的源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。用ifconfig命令看一下,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址。协议字段有三种值,分别对应IP、ARP、RARP。帧末尾是CRC校验码。以太网帧中的数据长度规定最小46字节,最大1500字节,ARP和RARP数据包...

2018-03-09 14:45:25 6039

原创 【 TCP/IP 】 协议栈与数据包封装

TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图所示: TCP/IP协议栈两台计算机通过TCP/IP协议通讯的过程如下所示:TCP/IP通讯过程传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到...

2018-03-09 14:29:45 1417

原创 【算法 四】——线性查找和折半查找

线性查找有些查找问题要用时间复杂度为O(n)的算法来解决。例如写一个indexof函数,从任意输入字符串中找出某个字母的位置并返回这个位置,如果找不到就返回-1:例: 线性查找#include <stdio.h>char a[]="hello world";int indexof(char letter){ int i = 0; while (a[i] != '\0')...

2018-03-08 15:48:03 533 2

原创 【算法 三】—— 归并排序

归并排序插入排序算法采取增量式(Incremental)的策略解决问题,每次添一个元素到已排序的子序列中,逐渐将整个数组排序完毕,它的时间复杂度是O(n2)。下面介绍另一种典型的排序算法--归并排序,它采取分而治之(Divide-and-Conquer)的策略,时间复杂度是Θ(nlgn)。归并排序的步骤如下:1. Divide: 把长度为n的输入序列分成两个长度为n/2的子序列。2. Conque...

2018-03-08 15:03:03 186

原创 【算法 二】—— 时间复杂度分析

解决同一个问题可以有很多种算法,比较评价算法的好坏,一个重要的标准就是算法的时间复杂度。现在研究一下插入排序算法的执行时间,按照习惯,输入长度LEN以下用n表示。设循环中各条语句的执行时间分别是c1、c2、c3、c4、c5这样五个常数:受内存管理机制的影响,指令的执行时间不一定是常数,但执行时间的上界(UpperBound)肯定是常数,我们这里假设语句的执行时间是常数只是一个粗略估计。void i...

2018-03-08 14:19:57 754

原创 【算法 一 】—— 插入排序

插入排序插入排序算法类似于玩扑克时抓牌的过程,玩家每拿到一张牌都要插入到手中已有的牌里,使之从小到大排好序。 扑克牌的插入排序:也许你没有意识到,但其实你的思考过程是这样的:现在抓到一张7,把它和手里的牌从右到左依次比较,7比10小,应该再往左插,7比5大,好,就插这里。为什么比较了10和5就可以确定7的位置?为什么不用再比较左边的4和2呢?因为这里有一个重要的前提:手里的牌已经是排好序的。现在我...

2018-03-08 11:21:39 350

原创 【gdb】- 段错误调试

如果程序运行时出现段错误,用gdb可以很容易定位到究竟是哪一行引发的段错误,例如这个小程序:段错误调试实例一:#include <stdio.h>int main(void){ int man = 0; scanf("%d", man); return 0;}[zhangsan@localhost study-c]$ gcc -g gdb4.c -o gdb4[zhan...

2018-03-07 17:33:43 1246

原创 【gdb】- 观察点调试

接着上一篇的步骤,经过调试我们知道,虽然sum已经赋了初值0,但仍需要在while (1)循环的开头加上sum = 0;:观察点调试实例:#include <stdio.h>int main(void){ int sum = 0, i = 0; char input[5]; while (1){ sum = 0; scanf("%s",input); fo...

2018-03-07 15:59:49 1713

原创 【gdb】- 断点调试

 断点调试实例:#include <stdio.h>int main(void){ int sum = 0, i = 0; char input[5]; while (1){ scanf("%s",input); for(i = 0;input[i] != '\0'; i++) sum = sum*10 + input[i] - '0'; print...

2018-03-07 10:32:09 1194

原创 【gdb】- 单步执行和跟踪函数调用

操作环境:[root@localhost zhangsan]# cat /proc/version Linux version 2.6.32-696.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Mar 21 19:29:0...

2018-03-06 17:52:13 6429

原创 Linux--CentOs之yum

YUM 是 Yellow dog Updater, Modified 的缩写,是由 Duke University 所发起的计划,目的就是为了解决 RPM 的依赖关系的问题,方便使用者进行软件的安装、升级等等工作。注:yum 只是 为了解决 RPM 的依赖关系的问题,而不是一种其它的软件封装模式。RPM 仍然是 RHEL 和 CenOS 中的默认软件管理器。yum 可以视为 RPM 的一个前台工具...

2018-03-01 17:19:33 219

原创 Linux下常用网络配置文件详解

Linux 为 配 置 网 络 提 供 了 许 多 工 具 , 其 中 有 图 形 界 面 的 ( 如NetworkManager1)、也有伪图形界面(如 system-config-network 2)的。虽然使用这些工具来配置网络会很方便,但是由于各个发行版本的 Linux 所提供的网络配置工具很可能完全不同,并且通过命令行界面的远程登录也无法使用这些图形界面的工具,所以我们并不打算使用工具来...

2018-03-01 16:53:26 11658

原创 【学习Redis】- 集合类型

集合类型在集合中每个元素都是不同的,且没有顺序。集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等,由于集合类型在Redis内部是使用值为空的散列表(hash table)实现的,所以这些操作的时间复杂度是O(1)。多个集合类型键之间还可以进行并集、交集和差集运算。命令集合间运算...

2018-03-01 14:46:56 176

原创 【学习Redis】- 列表类型和常用命令

列表类型列表类型(list)可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。列表类型内部是使用双向链表(double linked list)实现的,所以向列表两端添加元素的时间复杂度为O(1),获取越接近两端的元素速度就越快。与散列类型键最多容纳的字段数量相同,一个列表类型键最多能容纳2的32次方减1个元素。命令向列表两端添加元素LPUSH key val...

2018-03-01 14:21:13 148

原创 【学习Redis】- 散列(哈希)类型和常用命令

散列类型Redis采用字典结构以键值对的形式存储数据的,而散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据类型,即散列类型不能嵌套其他的数据类型。一个散列类型键可以包含至多2的32次方减一个字段。注:除了散列类型,Redis 的其他数据类型同样不支持数据类型嵌套。散列类型适合存储对象。存储结构如下:而在关系数据库中如果要存储...

2018-03-01 11:00:26 434

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除