摘要:
所谓的磁盘分区就是告诉操作系统,这个分区的可存取区域从A磁柱面到B磁柱面指定的分区磁柱面范围信息存放在第一个分区(MBR)的分区表(patition table)中linux中,IDE硬盘最多有59个逻辑分区(hd5~hd63),sata硬盘最多有11个逻辑分区(sd5~sd15)文件系统包括数据外还有很多信息,比如在linux中还有文件权限、文件属性文件系统通常把权限和属性放在inode块中,而把实际的数据放在data block中,还有一个superblock用来记录文件系统的整体信息,包括inode和data block的总量、使用量、剩余量等索引式文件系统(如ext2/ext3):in 阅读全文
posted @ 2014-02-27 19:10
amghost
阅读(699)
评论(0)
推荐(0)
摘要:
必须明确,硬盘分区的存在,是由硬盘的物理特性决定的,不会因为操作系统的不同而有所改变所以不用对为根目录/挂载分区的同时还为/usr挂载分区感到惊讶====分区的概念====可以把一个硬盘比成一本书,书名就是MBR(master boot record),即主引导记录。书的正文就是硬盘上的数据书的索引相当于分区表。下面主要讲一下索引由于历史的原因,硬盘的分区表大小受到限制,最多只能容纳4个分区(主分区)扩展分区只能有一个,扩展分区是不可用的,但可以在扩展分区的基础上分出逻辑分区,逻辑分区是可用的。针对下面的分区情况:20G硬盘,分成4个主分区占用15G,剩下的5G分给扩展分区。这样是不行的!因为 阅读全文
posted @ 2014-02-27 18:35
amghost
阅读(1060)
评论(0)
推荐(0)
摘要:
====VIM简介====我们使用的大多数编辑器,都可以直接在编辑区输入字符,并且能够通过一些快捷键来完成一些控制功能,比如使用方向键移动光标,使用 BackSpack 或者 Delete 键删除文字,使用 PgUp 和 PgDn 翻页,使用Home 和 End 来定位行首和行末⋯⋯而Vim是一个带模式的编辑器,同样的按键,在不同模式下,具有不同的功能定义。例如 h j k l 在 编辑模式下输入相应的字符,在 普通模式 下却相当于方向键的作用。由于需要切换模式,Vim的使用起来略显繁琐。不过优点也显而易见:您只要把手安安稳稳的放在打字区就可以了,而不需要使用诸如方向键、排版键、小键盘等需要挪 阅读全文
posted @ 2014-02-27 18:34
amghost
阅读(321)
评论(0)
推荐(0)
摘要:
ifconfig:配置网络接口 -a 显示所有网络接口ifconfig up|down:激活|禁用网卡 示例: sudo ifconfig eth0 upifconfig add [ netmask ] 给网卡指定IP地址或子网掩码route:配置路由及网关指定路由及网关:route add -net gw [ netmask ] dev 删除路由及网关:route del -net gw [ netmask ]ip:配置网络子命令: link 网卡配置 address 配置地址。相当于 ifconfig route 配置路由。相当于 route参数: show 显示 (默... 阅读全文
posted @ 2014-02-27 18:31
amghost
阅读(281)
评论(0)
推荐(0)
摘要:
====一些细节====root用户为根用户,即系统管理员,拥有所有权限一个用户只能有一个GID,但是还是可以归属于其他附加群组/etc/passwd 用户名 密码位 UID 归属GID 姓名 $HOME目录 登录Shell /etc/shadow 用户名 已加密密码 密码改动信息 密码策略 /etc/group 群组名 密码位 GID 组内用户 /etc/gshadow 群组密码相关文件,不重要 /etc/sudoers 用户名 权限定义 权限su [用户名] 切换到其它用户,默认切换到root用户。提示密码为将切换用户密码 -f 快速切换,忽略配置文件 -l 重新登录 -m ,-p 不更改 阅读全文
posted @ 2014-02-27 18:30
amghost
阅读(157)
评论(0)
推荐(0)
摘要:
====Linux软件包====Linux系统中,软件通常以源代码或者预编译包的形式提供。软件的源代码通常需要编译为二进制代码才可使用,安装比较耗时。用户可以自行调节编译选项,决定需要的功能或组件,或者针对硬件平台作一些优化预编译包通常由软件发布者进行编译,用户只要将预编译包拷贝到系统中即可。考虑到预编译包的通用性,预编译包一般不会针对某种硬件平台优化,所包含的功能和组件也是通用的组合。ubuntu系统中,软件通常以deb格式的包发布,它是一种预编译包====Linux DPKG命令====deb包命令遵循如下约定:soft_ver-rev_arch.debsoft:软件包名称ver:软件版本 阅读全文
posted @ 2014-02-27 18:29
amghost
阅读(3520)
评论(0)
推荐(0)
摘要:
====程序====Linux中没有注册表的概念,理论上,只要拷贝所有相关文件,就可以执行程序按照传统,一个软件通常分别拷贝到bin、etc、lib、share等文件夹中bin:存放可执行文件,有时候直接放在 /bin或者/usr/bin下。etc:存放配置文件,大部分程序的配置文件都放在 /etc(根目录下面的),方便集中修改lib:库文件,集中在一起方便共享给不同的软件,比起不同的软件单独存放库文件,可以节省空间share:程序所需要的其他资源,例如图标、文本,这部分是专用的,不需要共享,混放在一起比较混乱,所以一般都单独存放在一个文件夹里,这个文件夹一般也位于/share或者/usr/s 阅读全文
posted @ 2014-02-27 18:27
amghost
阅读(186)
评论(0)
推荐(0)
摘要:
栈:自动变量:auto。变量的地址在栈中。C语言函数调用的实现:在调用方,参数从后往前按顺序被堆积在栈中和函数调用关联的返回信息(返回地址等)也被堆积在栈中。一旦函数调用结束,局部变量占用的内存区域就被释放,并使用返回信息返回到原来的地址。从栈中出去调用方的参数。测试程序:结论:地址值越大,表明越在栈底部。参数从后往前堆积,所以看到b的地址(0033F950)大于a的地址(0033F94C)局部变量数组也是从后往前堆积,下标越大,地址越大,越在底部。注意,局部变量(auto)的内存区域是在函数被调用时,也就是执行时被分配的。C语言的可变长参数的实现,就是基于函数参数从后往前堆积。printf( 阅读全文
posted @ 2014-02-27 18:25
amghost
阅读(290)
评论(0)
推荐(0)
摘要:
cin是istream类的对象,它从标准输入设备获取数据,程序中的变量通过流提取符“>>”从流中提取数据。从流中提取数据时通常跳过输入流中的空白符只有在输入完数据并按回车后,该行数据才被送入缓冲区形成输入流,提取符才能提取数据除了直接使用cin>>提取数据外,还可以用istream类的成员函数(注意cin是Istream的对象,所以它也有这些函数)完成字符的输入get,读入一个字符不带参数的调用:cin.get()返回读入的值,若遇到文件结束符,则返回EOF与C语言的getchar()功能相同带一个参数的调用:cin.get(ch)。提取一个字符,并赋值给ch变量若读取 阅读全文
posted @ 2014-02-27 18:22
amghost
阅读(242)
评论(0)
推荐(0)
摘要:
比如:int ( * func_p ) ( double );首先着眼于标识符。func_p is因为存在括号,(* func_p) 先被处理,这里着眼于*func_p is a pointer to解释后面的( ),这是用于函数的,参数是doublefunc_p is a pointer to function(double) returning最后,解释数据类型修饰符intfunc_p is a pointer to function(double) returning int翻译成中文就是:fun_p是一个指向返回int的函数的指针再比如:double (*hoge)[3],翻译为:ho 阅读全文
posted @ 2014-02-27 18:21
amghost
阅读(217)
评论(0)
推荐(0)
摘要:
使用FileField和ImageField时,我们有几个步骤:在settings.py中设置MEDIA_ROOT和MEDIA_URLMEDIA_ROOT:一个绝对路径,Django根据它知道文件要上传到哪里MEDIA_URL:一个公共URL,用来与MEDIA_ROOT对应(不是要相同,而是相关联)在FileField或ImageField中指定upload_to参数,用来指定文件要被上传到MEDIA_ROOT下的哪个子目录logo = ImageField(upload_to='images/logos')图片就会被上传到MEDIA_ROOT下的images/logos目录下 阅读全文
posted @ 2014-02-27 18:17
amghost
阅读(4654)
评论(1)
推荐(1)
摘要:
ModelForm 和 普通的Form 都可以做表单验证对于ModelForm如果只是想验证其中一部分model中的field,可以指定:内部类Meta的fields元素:fields = ('xx','yy')注意fields一定是要是元组这样验证的时候就只会验证指定的部分用is_valid()就可以验证两者都可以在实例化的时候初始化数据,比如:class MyForm(Form): some_field = forms.CharField()my_form = MyForm(request.POST) #传入字典变量即可对于ModelForm还可以指定ins 阅读全文
posted @ 2014-02-27 18:14
amghost
阅读(421)
评论(1)
推荐(0)
摘要:
在settings.py中有一个变量TEMPLATE_CONTEXT_PROCESSORS一般它担任对我们的模板页面与环境进行处理解析的过程比如原来默认的django不能在template中使用request这个变量相关的信息(session、path等)则可以通过将django已有的context_processor加入其中变成类似这样:TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.request', 'xquan.common_setting.common', 'dja 阅读全文
posted @ 2014-02-27 18:13
amghost
阅读(1922)
评论(0)
推荐(0)
摘要:
根据调用的函数名和调用的参数,对函数的结果进行缓存,下次执行的时候就不用重复计算可以用装饰器来实现import timeimport hashlibimport pickle cache = {} def is_obsolete(entry,duration): d = time.time()-entry['time'] return d>duration def compute_key(function,args,kwargs): key = pickle.dumps((function.func_name,args,kwargs)) return hashlib... 阅读全文
posted @ 2014-02-27 18:07
amghost
阅读(2999)
评论(0)
推荐(0)
摘要:
获得一个Image实例import Imageim = Image.open('1.jpg') #返回一个Image对象,open只对图片的头做处理,所以open操作是非常快的resize,裁剪、合并图像im1 = im.resize(box1,Image.ANTIALIAS) #重新设定大小,设定ANTIALIAS,即抗锯齿im1.save('2.jpg',quality=100) #设置图片质量为100xsize,ysize = im1.sizebox = (xsize/2-25,ysize/2-25,xsize/2+25,ysize/2+25) #设... 阅读全文
posted @ 2014-02-27 18:05
amghost
阅读(6767)
评论(0)
推荐(0)
摘要:
有些模块,比如PIL,已经装入过,但是在pydev中无法自动提示,甚至有报 unresolved import的问题,虽然不会引起运行时问题,但是无法实现自动提示,还是一件很麻烦的事情。下面有个解决办法:在eclipse下,window -> preferences -> pydev -> Interpreter - Python -> Forced Builtins点击New,输入PIL(也可以是任意包名,只要这个包在Libraries中可以被找到),这样就将PIL装入到内置组件中,在eclipse就可以自动提示了。 阅读全文
posted @ 2014-02-27 17:59
amghost
阅读(691)
评论(0)
推荐(0)

浙公网安备 33010602011771号