专栏首页喔家ArchiSelf老曹眼中的Linux基础

老曹眼中的Linux基础

Linux 几乎无处不在,不论是服务器构建,还是客户端开发,对操作系统的基本理解和基础技能的掌握对全栈来说都是必备的。

系统的选择

Linux发行版本大体分为两类,一类是商业公司维护的发行版本,一类是社区维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

Redhat,可称为Redhat系列,包括RHEL、Fedora、CentOS(RHEL的社区克隆版本,免费)。Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian加强而来,一个拥有Debian所有的优点,以及自己所加强优点的近乎完美的Linux桌面系统。Ubuntu社区认为实用性和创新性高于一切。

如果你需要一个比较稳定的服务器系统而已,那么最好的选择就是CentOS了,安装完成后,经过简单配置就能提供非常稳定的服务了。但是对云计算而言,unbantu也许不错,hadoop最早就是在ubantu上开发的。

体系结构

了解体系结构,可以有一个较好的方向感。

Linux 的分层体系

Linux 有kernel和user两种模式,内核、shell和文件系统一起形成了基本的操作系统结构,Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。

Linux内核

了解linux内核,可以充分利用资源,在系统调优时有目标感。

Linux 将内存划分为容易处理的内存页,提供了对 4KB 缓冲区的抽象,例如 slab 分配器。进程实际是某特定应用程序的一个运行实体,进程调度来控制进程对CPU的访问。Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。 内核通过 SCI 提供了一个API来创建一个新进程(fork、exec 或 POSⅨ),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。由于 Linux 支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统.设备驱动程序提供一组操作系统可理解的抽象接口完成和操作系统之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。Linux内核的网络部分由BSD套接字、网络协议层和网络设备驱动程序组成。 网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。

linux 文件系统

Linux系统能支持多种目前流行的文件系统,推荐用EXT4。Linux的文件类型主要有:

1) 普通文件,分为纯文本和二进制。 2) 目录文件,存储文件的地方。 3) 链接文件,指向同一个文件或目录的的文件。 4) 设备文件,分为块设备和字符设备。 5)管道文件,提供进程间通信 6)套接字文件,与网络通信有关

Linux使用标准的目录结构,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。

Linux Shell 及命令

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。shell接收用户输入的命令并把它送入内核去执行,是一个命令解释器。shell 有很多类型,这里推荐BASH。BASH是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux发行套件使用的都是这种shell。

Linux 的命令很多,下面给出了一个简单的分类。

常用命令

在shell 中组织linux 命令来完成一系列的任务,就是shell 编程了。Shell,Perl和Python 是Linux 上最常用的脚本语言,我还是推荐使用Python。

Linux 应用

标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、Internet工具和数据库等。

对于文本编辑而言,Emacs 和vim 各有千秋,通过插件配合甚至可以作为IDE使用。 个人感觉,VIM 还应该是必备技能。vim的命令也很多,整理如下:

vi命令集

就应用的管理而言,ubantu 需熟知apt命令,centos 则是yum命令。当然了,源代码编译安装是必须的,makefile的写法,configure/autoconfig/make 的用法要手到擒来才好。

本文分享自微信公众号 - 喔家ArchiSelf(wireless_com),作者:老曹

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-09-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从Java SDK看DuerOS的技能开发

    DuerOS是对话式AI系统,既然都已经是人工智能了,为什么还要在DuerOS上开发技能服务呢?

    半吊子全栈工匠
  • 用JavaScript打造AI应用-从Nodejs SDK 看DuerOS的技能开发

    为什么要掌握JavaScript呢? 使用JavaScript能能否开发AI应用么?

    半吊子全栈工匠
  • CAP理论与分布式系统设计

    S 先生 是一位难得的技术同行,学者气质,一见如故。s 先生 作为本公众号(wireless_com) 的第一位投稿者,老曹深感荣幸。CAP 和 分布式系统的...

    半吊子全栈工匠
  • 初学者怎么快速掌握Linux运维?

    2018年里,Linux运维的职位数量和平均薪资水平仍然持续了去年的强劲增幅,比很多开发岗位涨的都快。从研究机构的数据来看,Linux职位数量和工资水平涨幅均...

    马哥教育
  • 什么是Linux?为什么建议使用Linux?

    Linux并不是指某一个系统而是指它的“发行版”他与Windows以及Mac OS一样是一个习惯性系统,所谓Linux系统仅仅只是所有发行版的统称“Linux系...

    啾咪的阿网
  • Linux 思维导图整理(建议收藏)

    PS:图片都是在学习中或者偶然看到的,感谢感谢,因此我会附上图片的来源,如有侵权,请联系我,谢谢。

    AI算法与图像处理
  • Linux 思维导图整理(建议收藏)

    来源:https://www.jianshu.com/p/59f759207862

    良月柒
  • 盘点 2017 年度最受欢迎的十大 Linux 服务器发行版

    近期公布的超级计算机 Top 500 排行榜显示,所有入榜的超级计算机都在运行 Linux 操作系统。尽管 Linux 操作系统在桌面上的表现不尽如人意,但作为...

    企鹅号小编
  • 学不好Linux?我们分析看看正确的学习方法是什么-马哥教育

    2018年里,Linux运维的职位数量和平均薪资水平仍然持续了去年的强劲增幅,比很多开发岗位涨的都快。从研究机构的数据来看,Linux职位数量和工资水平涨幅均在...

    马哥教育
  • 以最简单方式学习Linux

    有很多关于Linux的书籍,博客。大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步。未入其门就路过了。

    马哥linux运维

扫码关注云+社区

领取腾讯云代金券