• 之前用过一段时间Linux做过嵌入式和网络服务器开发,有一些小小的基础。但是毕竟也是边学边用的,掌握并不牢靠。
  • 现在换成Linux做开发,刚好可以把笔记做一下。但是更多的还是包括Linux基本使用和shell的。

一、Linux简介

Linux是什么

Linux(发音:ˈlɪnəks/ LIN-əks)是一种自由和开放源码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。

Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。

Linux的优点

  • 大量的可用软件及免费软件
    有开源仓库,有些软件也提供了Linux版本,去官网下载即可。

  • 良好的可移植性及灵活注
    Linux 系统有良好的可移植性,它几乎支持所有的 CPU 平台,这使得它便于裁剪和定制。我们可以把 Linux 放在 U 盘、光盘等存储介质中,也可以在嵌入式领域广泛应用。

  • 优良的稳定性和安全性
    Linux 是开源操作系统,那么就是所有人都在维护,安全漏洞会被很容易发现。

  • 支持几乎所有的网络协议及开发语言

Linux的文件系统

Linux系统启动时,首先挂载根文件系统,之后可以自动或手动挂载其他的文件系统,这些文件系统要挂载到挂载点上,与虚拟文件系统(Virtual File System)和通用块设备层(General Block Device Layer)建立联系。因此,一个系统中可以同时存在不同的文件系统。

Shell

Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行(图片来自:运维派)

shell也被称为LINUX的命令解释器(command interpreter),Shell 本身是一个程序。将用户输入的命令行拆解为”命令名“与”参数“。接着,根据命令名找到对应要执行的程序,对被执行的程序进行初始化,然后将刚才解析出来的参数传给该程序并执行

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。shell是一种高级程序设计语言,提供了变量,函数,条件判断,循环等开发语言的功能

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

二、Linux学习路线

  • 学习路线(图片来自:vda)

  • 入门书籍:
    《Linux就该这么学》:一开始学习就是用的这本书,但是感觉对于新手学习不错,都是知识点。但是也有些中规中矩了。
    《鸟哥的Linux私房菜》:很好,比较推荐。
    《Linux Shell脚本攻略》:看了之后效率会提高很多。

  • 提升书籍:
    这一部分应该是看学习之后的应用领域了,不同的方向有不同的书籍。
    也就是学习路线图中的服务器系统工程师开发工程师两个方向了。

  • 网站:
    网络资源直接百度就是可以的,但是还是有一些专门做Linux的网站值得推荐。
    一本适合入门的电子书:Linux Tools Quick Tutorial
    Linux 教程 | 菜鸟教程
    Linux命令大全(手册) - 真正好用的Linux命令在线查询网站

三、选择Linux

我用过Ubuntu、Fedora和CentOS,都不错。对于新手还是Ubuntu吧,自带桌面,对于操作学习有些容错的空间。

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。内核基本一样,也就是新旧不同而已。

不同Linux的发行版对比:【Linux】选择哪种 Linux版本更好一些?

更多推荐

【Linux基础】Linux简介