简单方式掌握Linux本质

为当前最终发行版之前的所有版本提供支持
陽光院景仁
帖子: 1513
注册时间: 2009-09-25 20:19
送出感谢: 3 次
接收感谢: 0

简单方式掌握Linux本质

#1

帖子 陽光院景仁 » 2010-12-30 18:50

简单方式掌握Linux本质

“If you can't explain it simply, you don't understand it well enough” Albert Einstein
  有很多关于Linux的书籍,博客。大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多人望而却步。未入其门就路过了。
  所以我设想用一种更为平滑的学习方式, 就是在学习命令时,先用纯语言来介绍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 ,这个目录也可以用“~“来表示。
  至此,我们也就基本了解了Linux的组成。
头像
退避九舍
帖子: 741
注册时间: 2010-08-08 20:02
系统: Ubuntu 12.04
送出感谢: 0
接收感谢: 1 次

Re: 简单方式掌握Linux本质

#2

帖子 退避九舍 » 2010-12-30 18:58

:em11 :em11
退避九舍:富贵不能淫,贫贱不能移,威武不能屈:坚持ubuntu不动摇!
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 简单方式掌握Linux本质

#3

帖子 liu滔 » 2010-12-30 19:04

掌握本质?我怎么觉得像是科普多一点…… :em04
不过有不少东西还是讲得很有意思的,例如对``usr''和``etc''的解释,倒是让我大开眼界…… :em11
头像
左手6
帖子: 122
注册时间: 2009-11-15 14:18
送出感谢: 0
接收感谢: 0
联系:

Re: 简单方式掌握Linux本质

#4

帖子 左手6 » 2010-12-30 19:05

很不错,对我理解
谢谢
建议楼主出书
左手
努力让自己自由,努力让自由共享...

10.4LST
头像
qq420100523
帖子: 1682
注册时间: 2009-07-31 18:56
系统: windows、ubuntu
来自: 广东阳江
送出感谢: 10 次
接收感谢: 20 次

Re: 简单方式掌握Linux本质

#5

帖子 qq420100523 » 2010-12-30 19:26

楼主很给力。。支持。。希望继续更新。。。
CRAZY_PALADIN
帖子: 302
注册时间: 2009-07-04 16:18
送出感谢: 0
接收感谢: 0

Re: 简单方式掌握Linux本质

#6

帖子 CRAZY_PALADIN » 2010-12-30 20:03

转得吧……
不过确实是很科普向的东西
Freedom is the power to decide what your computer does, and the only way to have this freedom is to know what your computer is
doing. Freedom is a computer that is without secrets, one where everything can be known if you care enough to find out.
jeremy_king
帖子: 4
注册时间: 2010-12-30 15:54
送出感谢: 0
接收感谢: 0

Re: 简单方式掌握Linux本质

#7

帖子 jeremy_king » 2010-12-30 20:04

谢谢,学习了 :em01
头像
susbarbatus
帖子: 2957
注册时间: 2010-04-10 16:14
系统: Arch Linux
送出感谢: 6 次
接收感谢: 68 次

Re: 简单方式掌握Linux本质

#8

帖子 susbarbatus » 2010-12-30 20:19

:em04 一个字,真他妹的好
沉迷将棋中……
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山
送出感谢: 13 次
接收感谢: 62 次

Re: 简单方式掌握Linux本质

#9

帖子 cao627 » 2010-12-30 20:32

学习 :em11
头像
remeber
论坛版主
帖子: 13005
注册时间: 2009-01-06 15:18
来自: 人间
送出感谢: 1 次
接收感谢: 22 次

Re: 简单方式掌握Linux本质

#10

帖子 remeber » 2010-12-30 20:48

这么看。确实简单些。
“有一种被人抛诸脑后的过去,包含一些不该遗忘的点点滴滴。欢笑之余,我将故旧拾起,才刹见自己的薄情。人世间似乎存在着某种公平,每个人都曾被抛掷在他人的遗忘中;而今你所有哽咽难宣的话语,也正是你曾为人所期盼,却永远听不见的字句。” —赫曼 赫塞
头像
monk
帖子: 19507
注册时间: 2010-01-28 10:45
送出感谢: 6 次
接收感谢: 33 次

Re: 简单方式掌握Linux本质

#11

帖子 monk » 2010-12-30 21:53

学习 :em11

*********宁静致远*********
如果我说的有什么不对,请看签名第一行
头像
幻月剑士
帖子: 304
注册时间: 2010-10-23 19:59
来自: 传说降临之间
送出感谢: 3 次
接收感谢: 0

Re: 简单方式掌握Linux本质

#12

帖子 幻月剑士 » 2010-12-30 21:59

又学到东西,用这个思路来看LINUX适合我等新人。
陽光院景仁
帖子: 1513
注册时间: 2009-09-25 20:19
送出感谢: 3 次
接收感谢: 0

Re: 简单方式掌握Linux本质

#13

帖子 陽光院景仁 » 2010-12-30 23:27

各位看到簡體字的文章的話,那個一定是我轉載分享的呢。
头像
liu滔
帖子: 7211
注册时间: 2010-10-09 23:01
送出感谢: 5 次
接收感谢: 14 次

Re: 简单方式掌握Linux本质

#14

帖子 liu滔 » 2010-12-31 0:11

陽光院景仁 写了:各位看到簡體字的文章的話,那個一定是我轉載分享的呢。
楼主不打简体的? :em06
abide
帖子: 74
注册时间: 2009-01-04 11:46
送出感谢: 0
接收感谢: 0

Re: 简单方式掌握Linux本质

#15

帖子 abide » 2010-12-31 0:20

继续转载吧~~~LZ
回复

回到 “老旧版本支持”