I Linux 简介
Linux和UNIX的关系及区别 (biancheng.net)
[什么是 Linux 发行版?为什么它被称为“发行版”? | Linux 中国 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/238122351#:~:text=Linux 发行版是一个由 Linux 内核、 GNU,工具 、附加软件和软件包管理器组成的操作系统,它也可能包括 显示服务器 和 桌面环境 ,以用作常规的桌面操作系统。)
1 什么是 Linux
- Linux 也是一个操作系统软件,其 logo 是一只企鹅。
- Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。
- Linux 是 Linux is not Unix 的递归简写。
2 Linux 的优点
- 免费且开源。不会受到任何商业化版本的制约。
Linux 是由世界各地成千上万的程序员设计和开发实现的,当初开发 Linux 系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类 Unix 操作系统兼容产品。
- 与 Unix 系统兼容,具备 Unix 几乎所有的优秀特性。
- 容易安装。
3 Unix 和 Linux 的关系
-
关于 UNIX:
-
UNIX 诞生于 20 世纪 60 年代末,是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。
-
UNIX 的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划。以肯•汤普森为首的贝尔实验室研究人员吸取了 Multics 工程计划失败的经验教训,于 1969 年实现了一种分时操作系统的雏形,1970 年该系统正式取名为 UNIX。
-
FreeBSD 是众多 UNIX 系统中的一种。
-
-
关于 Linux:
-
Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。
-
因此,Linux 是一个类 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 非常类似。
-
4 UNIX/Linux 系统结构
- 内核层(Kernal):内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行。
- Shell 层:Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器(见第二部分)。
- 应用层
5 Linux 发行版
- Linux 发行版是一个由 Linux 内核开发的操作系统,它也可能包括显示服务器和桌面环境,以用作常规的桌面操作系统。
- 这个术语之所以是 “Linux 发行版”,是因为像 Debian、Ubuntu 这样的机构“发行”了 Linux 内核以及所有必要的软件及实用程序,使其可以作为一个操作系统使用。
Ubuntu Desktop是由Canonical开发的Linux 发行版,由于其易用性,它是最受欢迎的发行版之一。
Windows 10 Linux(ubuntu) 根目录位置:C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
- “Linux” 是内核,而 “Linux 发行版”是操作系统。这就是为什么它们有时也被称为基于 Linux 的操作系统的原因。
II Shell 简介
shell和shell脚本的区别 - 知乎 (zhihu.com)
1 Shell 是什么
- 命令解释器:解释器是一种电脑程序,能够把高级编程语言一行一行直接转译运行。
- Shell 是实现 Linux 内核与用户之间沟通的命令解释器。它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核。
- Shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序。用户通过 Shell 来使用 Linux,不启动 Shell 的话,用户就没办法使用 Linux。
- Shell 为用户提供了一个操作界面,接收用户的输入,遵循一定的语法将输入的命令加以解释并传给系统,然后基于该输入执行程序。程序执行完后,结果会显示在显示器上。
- Shell 也连接其他程序:在 Shell 中输入的命令,有一部分是 Shell 本身自带的,这叫做内置命令;有一部分是其它的应用程序(一个程序就是一个命令),这叫做外部命令。Shell 可以调用其他的程序,每个程序就是一个命令。
2 Shell 的种类
Linux 提供了多种命令解释器,一般默认 bash 作为默认的解释器。
- bourne again shell(/bin/bash) —— 最常用
- bourne shell(/use/bin/sh 或 /bin/sh)
- C shell (/usr/bin/csh)
- K shell (/usr/bin/ksh)
3 Shell 编程 与 Shell 脚本
- Shell 既是一种命令语言,又是一种程序设计语言(也就是 shell 脚本/shell 编程)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
- Shell 脚本(Shell Scripting)是由 Shell 命令组成的文件,是利用 shell 的功能所写的一个程序。
- Shell 脚本是解释型语言,所以他们并不会被编译。作为编程语言时,解释器是 Shell 这个程序。
III 环境变量
什么是环境变量,Linux环境变量及作用 (biancheng.net)
1 环境变量是什么
- 环境变量是描述环境的变量,是指在操作系统中用来指定操作系统运行环境的变量。它包含了一个或者多个应用程序所将使用到的信息。
- 例如 Windows 和 DOS 操作系统中的 PATH 环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到 PATH 中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范。
2 系统变量与用户变量
系统变量就是系统级别的变量,用户需要使用系统变量。如果系统变量被修改了,而任何系统用户都在用系统变量,因此每个系统用户都将受到影响。用户变量运行在系统变量之上的,每个用户拥有不同的用户变量,不同用户的用户变量之间是并列的,也是互不干扰的。