阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

初学Linux运维的工程师们应该掌握的基础问题

69次阅读
没有评论

共计 2982 个字符,预计需要花费 8 分钟才能阅读完成。

今天马哥教育要跟大家分享的文章是关于初学 Linux 运维 的工程师们应该掌握的基础问题。有很多关于 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 , 这个目录也可以用“~“来表示。

至此,我们.Net 程序员也就基本了解了 Linux 的组成。

以上就是马哥教育今天为大家分享的关于初学 Linux 运维 的工程师们应该掌握的基础问题的文章,希望本篇文章能够对刚刚从事 Linux 运维工作的小伙伴们有所帮助。如果你也想要学习 Linux 运维技术欢迎来到马哥 Linux 培训 机构。

声明:文章来源于网络,侵删!

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-12-03发表,共计2982字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中