0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用最简单方式学习Linux,小白也能看得懂的讲解!

马哥Linux运维 2017-12-15 11:53 次阅读

有很多关于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的组成。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    565

    浏览量

    26893

原文标题:以最简单方式学习Linux

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【核桃派1B 开发板试用体验】0基础小白该如何玩转LINUX开发板

    的开发板,LINUX开发板的入门起点更高,基础知识集更加丰富,当然可玩性更多!但正是因为这样的特点,导致很多0基础小白用户刚拿到LINUX开发板时,感觉根本不知道从何学起,结果就是让
    发表于 01-02 16:32

    小白看得懂的STM32的DMA知识

    一、DMA简介1、DMA简介DMA(DirectMemoryAccess:直接内存存取)是一种可以大大减轻CPU工作量的数据转移方式。CPU有转移数据、计算、控制程序转移等很多功能,但其实转移
    的头像 发表于 11-27 08:00 906次阅读
    <b class='flag-5'>小白</b>都<b class='flag-5'>看得懂</b>的STM32的DMA知识

    ISP的方式更新程序属于离线下载吗?

    ISP的方式更新程序属于离线下载吗
    发表于 10-12 08:21

    嵌入式Linux应用开发的完全手册

    。对于有志于从事底层系统开发(比如改造 Bootloader、钻研内核、为新硬件编写驱动程序)的人,对于想从上层软件开发转到底层软件开发的人,应该看得懂电路原理图,看得懂芯片数据手册,清楚地知道软件
    发表于 09-25 07:12

    《SoC底层软件低功耗系统设计与实现》基于Linux专门讲解软件低功耗框架和设计的书籍

    Linux中的某个模块的实现那么就能理论结合实践,这才是好的技术书籍的叙述方式。现在有点过于为了讲解代码而讲解代码了。然而大部分人看了贴出的代码根本学不到什么,
    发表于 09-08 23:38

    单片机学到什么程度可以找到工作?

    开发方式的选择,选择一种适合自己的开发方式往往能够起到事半功倍的效果,不过对于小白来说,推荐选择标准外设库进行开发。标准外设库优势在于相比其他开发方式开发难度适中,代码可维护性适中,程
    发表于 08-10 15:19

    一种构建12V和230V双直流电源的简单方

    电源是任何电子电路的基本组成部分,因此熟悉直流电源电路结构非常重要。上述电路说明了一种从5V交流电源构建12V和230V双直流电源的简单方法。电压范围5V和12V广泛用于各种简单的电子电路,因此学习这种
    的头像 发表于 07-02 15:26 1090次阅读
    一种构建12V和230V双直流电源的<b class='flag-5'>简单方</b>法

    添加全彩LCD显示屏的最简单方

    电子发烧友网站提供《添加全彩LCD显示屏的最简单方法.zip》资料免费下载
    发表于 06-30 14:45 0次下载
    添加全彩LCD显示屏的最<b class='flag-5'>简单方</b>法

    用Arduino控制伺服电机的超级简单方

    电子发烧友网站提供《用Arduino控制伺服电机的超级简单方法.zip》资料免费下载
    发表于 06-28 09:51 0次下载
    用Arduino控制伺服电机的超级<b class='flag-5'>简单方</b>法

    Linux内核强符号和弱符号讲解

    查看Linux内核代码时,经常能看到一些编译器选项如__attribute__((weak),起初不太了解,经过查资料,算是对gcc的这个编译属性有了初步的认识,现在总结如下。
    发表于 06-08 10:57 937次阅读

    草履虫都能看得明白的FOC 入门教程

    草履虫都能看得明白的FOC 入门教程 其利天下技开发 其利天下技开发 *附件:FOC技术笔记-新修版.pdf
    发表于 05-29 12:05

    小白从0学习CW32的第一天(搭建软件开发环境)

    小白从0学习CW32的第一天(搭建软件开发环境)
    的头像 发表于 05-26 14:34 1429次阅读
    <b class='flag-5'>小白</b>从0<b class='flag-5'>学习</b>CW32的第一天(搭建软件开发环境)

    FPGA远程更新/远程调试的一种简单方

    之前介绍过一种远程(无线)更新的方式,详见《起飞!通过无线WIFI下载调试FPGA》,这种方式缺点有两个:一是速度较慢;二是我们的设备中需要增加一个无线设备,增加成本的同时增加了暴露的风险。这两点即无法在调试的时候使用也没办法在实际设备中使用。今天我们再介绍另一种
    的头像 发表于 05-25 09:23 1518次阅读
    FPGA远程更新/远程调试的一种<b class='flag-5'>简单方</b>法

    小白学习电路设计

    新手小白想要学习电路设计应该具备哪些知识呀。然后这些知识需要学到什么程度呀。有没有大佬领个路,万分感谢。
    发表于 05-22 20:18

    单片机学到什么程度可以找到工作?

    stm32相关资料都非常全面和细致,所以很适合小白学习。对于开发方式的选择,选择一种适合自己的开发方式往往能够起到事半功倍的效果,不过对于小白
    发表于 05-11 10:46