【PowerShell(3)】——交互式 进行数学运算我们可以把powershell当成一个计算器。象键入命令行那样输入数学表达式,回车,powershell会自动计算并把结果输出。常用的加减乘除模(+,-,*,/,%)运算和小括号表达式都支持。PS C:\> 2+4+915PS C:\> 0xABCD43981PowerShell也能自动识别计算机容量单位,包括KB,MB,GB,TB,PB。PS C:\> 1pb...
【PowerShell(2)】—— 初识PowerShell PowerShell快速编辑模式和标准模式powershell控制台有两种模式,一个是快速编辑模式,一个是标准模式。快速编辑模式和标准模式的切换可以通过控制台标题栏->鼠标右击->属性->选项->编辑选项 。Powershell标准模式鼠标右击选择标记后才能实现复制和粘切功能。Powershell快速编辑模式可以通过鼠标左键选择任意矩形区域内的文本,并且鼠标右击实现复制功能...
【PowerShell(1)】—— 介绍和安装及简单使用 PowerShell介绍owershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。 当前p...
【进程(3)】—— 进程间通信 进程间通信每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。如下图所示管道管道是一种最基本的IPC机制,由pipe函数创建:#include ...
【进程(2)】—— 进程控制 fork函数#include <sys/types.h>#include <unistd.h>pid_t fork(void);fork调用失败则返回-1,调用成功的返回值见下面的解释。我们通过一个例子来理解fork是怎样创建新进程的。例: fork#include <stdio.h>#include <unistd.h>#include...
【进程(1)】—— 环境变量 每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。1.进程id。系统中每个进程有唯一的id,在C语言中用pid_t类型表示,其实就是一个非负整数。2.进程的状态,有运行、挂起、停止、僵尸等状态。3.进程切换时需要保存和恢复的一些CPU寄存器。4.描述虚拟地址空间的信息。5.描述控制终端的信息。6.当前工作目录(Current...
【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...
【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...
【TCP/IP】 IP地址与路由 IP地址与路由IPv4的IP地址长度为4字节,通常采用点分十进制表示法(dotted decimal representation)例如0xc0a80002表示为192.168.0.2。Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要通过路...
【 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数据包...
【 TCP/IP 】 协议栈与数据包封装 TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图所示: TCP/IP协议栈两台计算机通过TCP/IP协议通讯的过程如下所示:TCP/IP通讯过程传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到...
【算法 四】——线性查找和折半查找 线性查找有些查找问题要用时间复杂度为O(n)的算法来解决。例如写一个indexof函数,从任意输入字符串中找出某个字母的位置并返回这个位置,如果找不到就返回-1:例: 线性查找#include <stdio.h>char a[]="hello world";int indexof(char letter){ int i = 0; while (a[i] != '\0')...
【算法 三】—— 归并排序 归并排序插入排序算法采取增量式(Incremental)的策略解决问题,每次添一个元素到已排序的子序列中,逐渐将整个数组排序完毕,它的时间复杂度是O(n2)。下面介绍另一种典型的排序算法--归并排序,它采取分而治之(Divide-and-Conquer)的策略,时间复杂度是Θ(nlgn)。归并排序的步骤如下:1. Divide: 把长度为n的输入序列分成两个长度为n/2的子序列。2. Conque...
【算法 二】—— 时间复杂度分析 解决同一个问题可以有很多种算法,比较评价算法的好坏,一个重要的标准就是算法的时间复杂度。现在研究一下插入排序算法的执行时间,按照习惯,输入长度LEN以下用n表示。设循环中各条语句的执行时间分别是c1、c2、c3、c4、c5这样五个常数:受内存管理机制的影响,指令的执行时间不一定是常数,但执行时间的上界(UpperBound)肯定是常数,我们这里假设语句的执行时间是常数只是一个粗略估计。void i...
【算法 一 】—— 插入排序 插入排序插入排序算法类似于玩扑克时抓牌的过程,玩家每拿到一张牌都要插入到手中已有的牌里,使之从小到大排好序。 扑克牌的插入排序:也许你没有意识到,但其实你的思考过程是这样的:现在抓到一张7,把它和手里的牌从右到左依次比较,7比10小,应该再往左插,7比5大,好,就插这里。为什么比较了10和5就可以确定7的位置?为什么不用再比较左边的4和2呢?因为这里有一个重要的前提:手里的牌已经是排好序的。现在我...
【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...
【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...
【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...
【gdb】- 单步执行和跟踪函数调用 操作环境:[root@localhost zhangsan]# cat /proc/version Linux version 2.6.32-696.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) ) #1 SMP Tue Mar 21 19:29:0...