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

系统的选择

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

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

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

体系结构

了解体系结构,可以有一个较好的方向感。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使用标准的目录结构,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。

目录名 简要说明
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户abc的主目录就是/home/user,可以用~abc表示
/lib 标准程序设计库
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:   /usr/X11R6 存放X window的目录   /usr/bin 众多的应用程序   /usr/sbin 超级用户的一些管理程序   /usr/doc linux文档   /usr/include linux下开发和编译应用程序所需要的头文件   /usr/lib 常用的动态链接库和软件包的配置文件   /usr/man 帮助文档   /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里   /usr/local/bin 本地增加的命令   /usr/local/lib 本地增加的库

Linux 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的命令也很多,整理如下:

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

全栈必备Linux 基础相关推荐

  1. 全栈必备 JavaScript基础

    JavaScript 来了 喔家ArchiSelf 1995年,诞生了JavaScript语言,那一年,我刚刚从大学毕业.在今年RedMonk 推出的2017 年第一季度编程语言排行榜中,JavaSc ...

  2. 全栈必备 Java 基础

    那一年,从北邮毕业,同一年,在大洋的彼岸诞生了一门对软件业将产生重大影响的编程语言,它就是--Java.1998年的时候,开始学习Java1.2,并在Java Orbix 上做服务,而如今Java 9 ...

  3. 全栈必备 :C语言基础

    [引子]温故而知新,"三日不弹,手生荆棘",代码也是如此.另一方面,自己挖的坑要自己填.在<全栈的技术栈设想>中埋下了4种编程语言的伏笔,已经兑现了Javacript, ...

  4. 全栈必备的技术栈设想

    喔家ArchiSelf 参加今年的SDCC确实挺高兴的,向大师Joe Armstrong 当面求教,与周爱民老师同台,在我们的架构师进阶之路专场有4个七零后的老码农,瞬间没有了孤独感,甚至有一点窃窃之 ...

  5. 全栈必备 Log日志

    Log日志,不论对开发者自身,还是对软件系统乃至产品服务都是非常重要的事情.每个开发者都接触过日志,以至于每个人对日志的了解都会有所不同. 什么是日志 日志是什么呢?老码农看来,日志是带有明确时间标记 ...

  6. element ui 图片控件 排序_JAVA全栈面试前端基础之四 Vue+Element框架快速开发

    本文主要包括以下4个内容 什么是ElementUI Vue 中引入ElementUI Vue+elementUI构建后台管理系统 开源项目推荐 1.什么是ElementUI 官网:https://el ...

  7. python学全栈还是运维_Python全栈学习——Python基础及Web开发

    原标题:Python全栈学习--Python基础及Web开发 在DevOps火热的敏捷行业中,无论是开发还是运维都在互联网快速发布下练就了一身的本领,微服务下的敏捷开发体系及智能运维体系都在实战中逐步 ...

  8. 测试工程师必备linux基础一(服务器磁盘篇)

    测试工程师必备linux基础 第一篇服务器磁盘认识及操作 测试过程中,有一个很重要的东西,测试环境搭建,希望大家在看了本文后能够对于磁盘有一个初步的概念.本文讲述linux服务器中,磁盘的操作流程,R ...

  9. 牛!Python 全栈必备的 150 个实战案例,一次性获得!

    Python 全栈将是你升职加薪的硬通货. 我见过很多的 Python 讲解教程和书籍,它们大都这样讲 Python 的: 先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Py ...

最新文章

  1. java拆分excel_Jexcel实现按一定规则分割excel文件的方法
  2. java实现把一个大文件切割成N个固定大小的文件
  3. android view存储为jpg,Android长按imageview把图片保存到本地的实例代码
  4. Service Mesh 开源实现之 Istio 架构概览
  5. [React] 尚硅谷 -- 学习笔记(七)
  6. 编译ok6410linux内核,Linux3.6.7在OK6410平台的移植(二)编译配置linux3.6.7
  7. [UnityShader基础]04.ColorMask
  8. 证券经营机构信息技术审计实践
  9. Tomcat 启动报does not exist or is not a readable directory错误,修改配置文件
  10. matlab 傅里叶变换最美,MATLAB傅里叶变换
  11. 灵活的IP网络测试工具——— X-Launch
  12. 搞着玩:基于Spring Boot的企业CMS系统
  13. 基于新浪微博的男女性择偶观数据分析(下)
  14. 2021年钟霖高考成绩查询,2021年高考倒计时祝福短信
  15. python图标中文_解决python中matplotlib中文乱码 for Mac
  16. Android各种模拟器使用笔记
  17. oracle常见语句(转载)
  18. android stdio findViewById(R.id.报错
  19. 11款惊艳的HTML5粒子动画特效
  20. 录音转文字工具,支持6大语音识别引擎识别,非常好用的网赚工具!

热门文章

  1. [转]我们需要IQ吗?--敬以此文献给和我一样迷茫,浮躁的人,共勉!
  2. e语言怎么连接mysql_大佬们E语言连接MYSQL输出中文乱码怎么破
  3. Could not find destination factory for transport解决方法
  4. fabric.js 不同类型 不同控件_耐温灌封胶都哪几个类型?不同类型的灌封胶有哪些不同之处?...
  5. win7系统怎么查看服务器IP地址,win7系统的ip地址在哪 小编教你怎么查看
  6. js 不同页面间传递值并取值
  7. 《中国人工智能学会通讯》——12.58 大数据不确定性学习的研究
  8. 在python多进程中使用manager和Barrier
  9. 微信JS-SDK开发:扫一扫接口功能实现
  10. Spring控制器响应(action)请求的几种处理方式,如返回JSON,MODEL MODELVIEW,STRING