如何以最简单的方式学习Linux

如何以最简单的方式学习Linux

三月 28, 2017

问题1:widwos 有注册表,为什么 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是library的缩写) /dev:设备驱动(dev是device的缩写)。

问题5:什么是“/usr”,“/etc”和“/var”

当用户启动系统以后,需要做一些更加复杂的工作,这时候就会涉及到一个叫“/usr”的命令,这个情况稍微又些复杂,是一个难点。不过也很容易解释清楚。 早期的unix系统都有很多快硬盘,当时的硬盘容量都很小,所以往往一个硬盘只放一个目录,比如“/boot”可以放在一个单独的“boot”盘上,上边提到的5个目录,是系统运行必不可少的。 而当系统启动以后,我们需要其他一些用于具体工作的程序时,我们就会加载一个“/usr”目录,上边放重要的运行程序。 容易一起疑惑的是“usr”这个名字,在历史上,这个的确是user的缩写,不过现在和user没有任何关系了,你可以把它看成是“universal software resource”的缩写。 这个“/usr”有点类似windows里面的Program Files。 因此/bin和/usr/bin的区别,就是/斌里面的程序更加核心。 这时候,很多人会有疑问,我们记住哪些命令在/bin还是在usr/bin呢? 放心,由于所有的bin目录都会登记到系统变量PATH里面,因此无论你在任何目录中,主要输入命令文件的名称,系统都会帮你找到这个命令并运行。 要点: 1、/usr上面一般都是只读文件,数据文件和配置文件不放在上边 2、没有“/usr”,Linux系统也能正常运行。 3、/usr可以被多台电脑共享(这里体现Linux的网络性) 由于/usr中只放只读文件,那么配置文件和数据文件放哪里呢?这里就出现了2个新的目录“/etc”和“/var” 初学者容易在这里迷惑的就是这2个目录的名字。 在历史上“etc”是“etcetera”,中卫意为“其他”,现在这个和“其他”没有任何关系,就是专门存放配置文件的地方,可以理解为“editable text configuration”的缩写。比如/etc/mysql/就是存放mysql的配置文件 /etc/apache2/就是存放阿帕奇的配置文件 在历史上“var”是“variable”,中文意为“变动”,现在主要用来存放log.lock等文件。 例如/var/mysql就是用来存放mysql的log 。

问题6:用户自己产生的数据放到哪里?

当我们运行程序后,会产生很多自己的成果,这些成果放到哪里呢?这里就出现了一个“/home”目录,不过你不能直接放到“/home”目录下,因为Linux是个多用户操作系统,所以系统会有一个以用户的名字命名的目录。