有许多关于Linux的书本,博客。大多数都会比较“粗犷“的将一大堆的指令塞给读者,然后使许多.NET程序员望而生畏。未入其门就路过了。
所以我设想用一种更为滑润的学习方法, 便是在学习指令时,先用纯言语来介绍Linux布景和动机。 就好像一切的的网络游戏都要先介绍游戏的历史观,然后再介绍游戏的操作。
大多数初学者在刚刚触摸Linux都会有十分生疏的感觉。往往会有一些疑问和问题。而咱们就沿着这些问题,从远及近,从微观到微观来了解Linux的简练和美丽。
问题1: Winows有注册表,为什么Linux没有注册表
注册表是Windows中心组件,对整个体系进行装备。Linux是以整个文件体系作为"注册表“,Windows注册表的树形结构,能够大略的对应Linux文件体系的树形结构。
Linux的装备文件就相当于注册表的键,或者说Linux选用是的分布式的注册表。
那么Linux为什么要这样规划呢?由于Linux是所谓的网络操作体系,所以单台电脑不是Linux的边界,假如是多台电脑组成的体系,那么分布式的办理就有着巨大的优势。
例如:一个包含装备文件的磁盘的危害不会让整个体系瘫痪,而或许仅仅让部分功用失效。
问题2:Windows有完善的图形界面,而Linux为什么要学指令行。
首要,指令行肯定要比图形界面先进的多。指令行是程序员的榜首界面,而图形界面是普通用户的榜首界面。
或许许多人会有不同定见,其实咱们再向前想一步,就很清楚了。
指令行的下一步演化是什么? 很简略便是语音操控,便是把人类自然言语转化为指令
图形界面的的下一步演化是什么? 是姿态操控。从现在的Windows体系来说总共只需3种姿态, 单击,双击,拖放。而更先进的IPad有拨动,画圈等。
姿态操控很简略,便于用户上手,语音操控很杂乱,可是操控精度很高。
作为程序员咱们要求电脑完结的作业要比普通用户杂乱的多,所以运用指令行会十分高效。
退一步讲,图形界面实质也是指令行,只不过将姿态翻译成指令履行罢了。
程序员编程的代码也都是“指令行”,一条一条的指令罢了。
总归,只需能打破对Linux指令行的恐惧感,接下来的事就会十分简略了。这个指令行肯定不是你简略想像中的指令行,它是十分智能化的。
问题3:Linux有那么多目录,那么多指令,怎样记得住呢?
首要,Linux目录是Linux体系最魂灵的东西,一切的硬件都能够被笼统为文件,然后完结网络化。(Internet只不过是Unix/Linux的进一步的演化罢了)
所以只需把握了Linux目录的规则,在了解的基础上回忆就能够简略的多。别的Linux的指令行有智能化功用,能够让你少打95%以上的字符来完结指令。
绝非你所幻想的傻呵呵的敲一大堆指令,那些用Linux大牛都是绝顶聪明的人,怎样或许让自己辛苦呢?
问题4:Linux的文件夹结构看上去很杂乱,怎样了解呢?
咱们这儿假定,咱们便是规划者,假如咱们规划一个文件体系,咱们会怎么去做呢?
咱们需求一个起点, 这个起点就叫根目录,用“/”来表明,然后咱们需求发动Linux,那么咱们就会把一切中心的发动文件(包含Linux中心自身)都放到一个“/boot"目录下。
当体系发动后,咱们需求履行一些根本指令在操作体系,这些指令都会放到“/bin"目录下。然后这些指令或许会用到一些库,这些库就被放到“/lib"下面,而这些库或许会会用到一些设备驱动文件,
那么这些驱动文件就会放到“/dev"目录下。
/:根目录
/boot:体系发动和内核
/bin :体系根本指令 (bin是binary的缩写)
/lib : 体系库(不能直接运转的代码)(lib是libary的缩写)
/dev : 设备驱动 (dev是device的缩写)
到现在为止只用5个目录,很简略吧。
问题5: 什么是"/usr" ,"/etc"和“/var“
当用户发动体系今后,要做一些愈加杂乱的作业,这时候就会涉及到一个叫“/usr",这个状况略微有些杂乱,是一个难点。不过也很简略解说清楚。
前期的unix体系都有许多块硬盘,其时硬盘的容量都很小, 所以往往一个硬盘只放一个目录,比方“/boot"能够放在一个独自的"boot"盘上,上面说到的5个目录,是体系运转必不可少的。
而当体系发动今后,咱们需求其他一些用于具体作业的程序时,咱们就会加载一个“/usr"目录,上面放重要的运转程序。
简略引起疑问的是"usr"这个姓名, 在历史上,本来这个确实是user的缩写,不过现在和user没有任何关系了, 你能够把它看成是"universal software resource"的缩写。
这个“/usr"有点相似Windows里边的Program Files。
因而 /bin 和 /usr/bin的差异,便是 /bin里边的程序愈加中心
这时候,许多人会有疑问, 咱们记住哪些指令在/bin 仍是在/usr/bin呢?
定心,由于一切的bin目录都会挂号到体系变量PATH里边, 因而不管你在任何当时目录中,只需输入指令文件的称号,体系都会帮你找到这个指令并运转。
关键:
1、/usr上面一般都是只读文件,数据文件和装备文件不放在上面(放到哪里,后边会讲)
2,没有“/usr",linux体系也能正常运转
2、/usr能够被多台电脑同享(这儿表现Linux体系的网络性)
由于/usr只放只读文件,那么装备文件和数据文件放哪里呢?这儿就呈现了2个新的目录“/etc"和“/var"
这儿简略初学者利诱的便是这个2个目录的姓名。
在历史上 "etc“是 “etcetera”,中文意为“其他”, 现在这个和“其他”没有任何关系, 便是专门寄存装备文件的当地,能够了解为“editable text configuration"的缩写
比方 /etc/mysql便是放mysql的装备文件 /ect/apache2/便是apache2的装备文件
在历史上“var" 是 “variable",中文意为“变化”,现在首要用来寄存log,lock等文件。
例如 /var/mysql便是用来寄存mysql的log
问题6:用户自己发生的数据放到哪里?
当咱们运转程序后,会发生许多自己的效果,这些效果放哪里呢? 这儿就呈现了一个“/home"目录,不过你不能直接放到“/home"目录下, 由于Linux是个多用户操作体系, 所以体系会有一个以用户的姓名命名的目录。
例如:用户是jack ,那么目录便是/home/jack ,这个目录也能够用“~“来表明。
至此,咱们.Net程序员也就根本了解了Linux的组成。