Linux硬链接与软链接


链接的概念其实不仅限在Linux中,在类Unix和Windows中也存在,只是网上资料大多都讨论的是类Unix的链接。下面主要对所了解的类Unix下的链接谈谈自己的认识。

###链接存在的目的

链接的出现主要是为了解决系统中文件的共享,同时有其他附加的好处:隐藏真实文件路径、增加权限安全及节省存储。简单的举例说明:

Linux中有7种run level(0-6),其中0代表关机,1代表单用户模式(用于系统维护,禁止远程登陆),2代表多用户状态(不支持NFS),3代表完全的多用户模式,4系统保留(未使用),5代表X11模式(GUI模式),6则代表重启。

这7种模式分别对应/etc/rc.d/rcN.d目录(N指0-6之间的数字),存储的是每种启动模式下要启动的程序,但实际的程序其实存储在/etc/rc.d/init.d目录中,/etc/rc.d/rcN.d中都是链接而已,链接到/etc/rc.d/init.d目录中对应的程序(这样做的目的是为了管理上的方便,试想一下,如果有多个runlevel包含同一个程序,需要对这个程序的启动脚本进行修改时,只需更改/etc/rc.d/init.d中的实际文件,而不需要改动/etc/rc.d/rcN.d)。

###链接的分类

链接分为两种:硬链接(hard link)与阮链接(soft link)。谈链接就不得不谈inode,所以先简单地介绍下inode。

Read more ⟶

Linux下锐捷客户端上网


自己虽然一直用的校园网,但是由于教研室这块位置比较特殊,不需要使用锐捷客户端认证,但其他地方一般都需要。所以今早有个朋友在笔记本上安装了Ubuntu,但是无法通过锐捷web方式认证,下载的锐捷Linux版客户端安装后也无法上网,所以这方面我也不熟悉,只能求助Google了。由于众多高校的网络都是使用锐捷的这一套,所以大同小异,这方面的资料也不少,Google搜索很快便找到了解决方法,用华科的一个客户端即可,下载地址:http://code.google.com/p/mentohust/

下载后,切换到下载的目录,然后运行sudo dpkg -i 'your deb packagename'即可,安装过程中,一步一步按照其步骤输入相应信息即可。安装完成后,会将配置的信息存储在/etc/mentohust.conf文件中,也可进行修改。在安装的过程中,如果采用DHCP方式,在选择时应该注意,选择1或者2,千万别选择3,否则上不了网。各选项的含义是:

-d DHCP方式:0(不使用) 1(二次认证)2(认证后)3(认证前)

关于mentohust的详细参数解释,请参考官网wiki

Read more ⟶

Fedora下使用sudo


Linux下日常操作使用一般用户权限即可,但是往往有一些操作需要用到root权限,如服务的启动、软件的安装等,直接转到root下进行操作可不是一个好习惯,比较稳妥的方式就是使用sudo进行操作。首先检查系统是否已经安装sudo,接下来需要在/etc/sudoers文件下进行配置相应的权限。

root ALL=(ALL) ALL这行下面添加username ALL=(ALL) NOPASSWD:ALL即可。其中username为要使用sudo的用户,并且每次使用sudo时不需要输入root密码。

Read more ⟶

梦想


你要搞清楚自己人生的剧本——不是你父母的续集,不是你子女的前传,更不是你朋友的外篇,对待生命你不妨大胆冒险一点,因为好歹你要失去它。如果这世界上真有奇迹,那只是努力的另一个名字,生命中最难的阶段不是没有人懂你,而是你不懂你自己。——尼采

当读到这段话时,我陷入了沉思,不禁想:人生短短几十年,生命的1/3差不多已悄然而逝,在这1/3的年华中自己收获了什么,失去了什么。我想得到的可能就是人们眼中所谓的专业知识,比一般人士更了解计算机而已,同时可能收获的是思考问题和解决问题的能力。而失去的确是童年该有的肆无忌惮的玩耍,天马行空的想法,取而代之的是那铜墙铁壁似的教室的囚禁,被教导做个父母、老师眼中的乖孩子,死记硬背那些该死的口诀表和公式。

Read more ⟶

Dead Code


今天在网上看到腾讯的一个实习生招聘题,里面提到了dead code,便上wikipedia查了下,解释如下:

在计算机编程中,dead code是指那些被执行但执行结果在其他地方没有用到的代码。dead code的执行耗费cpu时间但是结果无用。

dead code的执行结果没用也就罢了,但它还可能同时导致异常或影响某些全局状态,所以移除这些dead code可能会改变程序的输出,并且排除那些意想不到的bugs。

参考文档:

http://en.wikipedia.org/wiki/Dead_code

Read more ⟶

ASP.NET MVC Json()处理大数据异常解决方法


近几天一直忙于windows下的项目,rails的学习暂时搁置了,所以也有好几天没有用fedora了,博客大致也有一周没有更新。此博客本想只记录一些Linux平台下的相关操作,但这两天碰到的问题很棘手,虽最终得以解决,但不忍就此翻篇,想将解决之法记录下来,以避免今后再次碰到此类问题又得重头再寻求解决方案,同时也分享出来,避免其他人碰到此问题时多走弯路。所以便予以记录。下面切入正题:

先对项目做个简单介绍:

Read more ⟶

计算机启动过程


计算机启动过程的详细介绍请参考阮一峰老师的两篇博文:

  1. http://www.ruanyifeng.com/blog/2013/02/booting.html
  2. http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html

写的非常通俗易懂,真的很佩服阮老师的文笔,有时候自己写的博客自己都有点目不忍视,更何况别人呢。要达到这样的水平真的还有好长的路要走。加油吧

Read more ⟶

Ruby语言独特点


有时候真佩服别人的博文可以写的那么长,而且很有料,读起来也非常顺畅,而自己每次却不太善于总结,可能是平时积累的片段还不够,不足以总结,亦或是自己缺少这么一个总结性的思维,导致如今为止也没有产出一篇广为阅读的文章。不过即使如此,也没有打消我持续写博客的念头,不管好坏,不管是否有读者,我将会一如既往的写下去。正如哥哥的《我》:我就是我,是颜色不一样的烟火。每个人都有他存在的价值,无论高低贵贱,无论贫穷富贵,都有其独一无二不可替代的特性。所以无论自己的博文是否能带给大家一丝感触、一点帮助,我都会坚持,因为这也是对我自己学习的一个总结,同时也想尽力贡献一份自己的力量来帮助他人,但我想更多的还是能帮助自己,以便为未来某一天突然需要回味从前的知识提供便捷。我想这便是写博客的初衷。下面进入正题吧:

Read more ⟶

Vim常用快捷键总结


Vim的学习之路真的很长,永远有记不完的命令,永远会突然冒出一个新插件。不过我总算从Vim的荆棘中一路走过来了,现在真的是苦尽甘来,时刻体会它带给我的喜悦和惊奇。下面对我所学习所了解到的常用命令做一个基本总结:

###Normal mode:

>> indent current line

n>> indent the next n line

. repeat last command

m,n>> indent from m to n line

== autoindent current line

n== autoindent the next n line

gg=G autoindent the whole file

Read more ⟶

instance_eval vs class_eval


Ruby中类其实也是Class的实例。而且instance_eval必须由实例来调用,class_eval必须由类来调用。具体参考下面的实例:

	class A
	end

	a = new A
	a.instance_eval do
		self #=>a
		
		def test
			puts "this is a singleton method of instance a"
		end
	end

	a.test   #=>this is a singleton method of instance a

	b = A.new
	b.test   #=>NoMethodError
Read more ⟶