Linux *** 作系统概述
Linux是一套可以免费使用和自由传播的,类似于UNIX风格的 *** 作系统。Linux最早是由芬兰人托瓦兹(Linus Torvalds)设计的。下面是关于Linux *** 作系统概述,希望大家认真阅读!
Linux系统的起源与发展
由于UNIX的商业化,很遗憾,它一般只运行在昂贵的工作台上,普通人难得一见。后来Andrew Tannebaum教授开发了Minix *** 作系统,发布在网上,供人们免费使用,因为Minix具有UNIX的特点,但是由与UNIX不完全兼容,所以1991年10月托瓦兹自己动手写了一个UNIX PC版本,同年11月,在很多热新的支持者的帮助下开发和推出了第一个稳定的'Linux0.10工作版本。
后来1994年的3月,Linux1.0版本出现,在Linux设计过程中,借鉴了很多UNIX的思想,但是源代码都是重写的。 后面发展迅速并有很多的IT公司的加入开发,这时Linux迅速发展并普及并进入了商业领域。在1995年6月,发布了Linux 2.0版本,强大的它已经支持很多处理器,而且具有了强大的网络功能,并增强了系统的文件与虚拟内存的性能,同时可以为文件系统提供独立的高速缓存设备。
如今它已经受到了更多企业用户的重视,Linux正日益成为一个令人生畏的对手。
linux系统
Linux系统的组成
*** 作系统是一台计算机必不可少的系统软件,是整个计算机系统的灵魂。Linux *** 作系统由内核(Kernel),外壳(shell)和应用程序三大部分组成。硬件平台是Linux *** 作系统运行的基础。
linux系统的内核:内核是linux系统的心脏,是运行程序和管理硬件设备的 核心程序,负责控制硬件设备,管理文件系统,程序流程以及其他工作。
linux系统的外壳:外壳程序是系统的用户界面,提供用户与内核进行交互 *** 作的一种接口。它接收用户命令,传达给内核处理,内核处理并把结果传送到界面。
linux系统的应用程序:1.文本处理工具。2.X Window。3.编程语言和开发工具。4.Internet工具软件。5.数据库。
linux系统的组成
Linux系统的特点
Linux *** 作系统以它的安全性,高效性和灵活性著称,它能够实现几乎全部UNIX的特性,还具有多任务,多用户的能力。
特点:
自由软件,源码公开多用户多任务并发可靠的安全系统良好的可移植性丰富的网络功能设备的独立性良好的用户界面
Linux 内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix *** 作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的 *** 作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前 Linux 不仅在家庭与企业中使用,并且在政府中也很受欢迎。
目前国内 Linux 更多的是应用于服务器上,而桌面 *** 作系统更多使用的是 Windows。主要区别如下
比较WindowsLinux界面界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和 *** 作方法也几乎一致。驱动程序驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。
HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解。使用使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。图形界面使用简单,容易入门。文字界面,需要学习才能掌握。学习系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。软件每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。大部分软件都可以自由获取,同样功能的软件选择较少。
我们平时所说的 Shell 可以理解为 Linux 系统提供给用户的使用界面。Shell 为用户提供了输入命令和参数并可得到命令执行结果的环境。当一个用户登录 Linux 之后,系统初始化程序 init 就根据 /etc/passwd 文件中的设定,为每个用户运行一个被称为 Shell(外壳)的程序。
确切地说,Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至编写一些程序。
Shell 处在内核与外层应用程序之间,起着协调用户与系统的一致性、在用户与系统之间进行交互的作用。图 1 是 Linux 系统层次结构图,Shell 接收用户输入的命令,并把用户的命令从类似 abed 的 ASCII 码解释为类似 0101 的机器语言,然后把命令提交到系统内核处理;当内核处理完毕之后,把处理结果再通过 Shell 返回给用户。
换句话说:
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问 *** 作系统内核的服务。
Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
Shell 与其他 Linux 命令一样,都是实用程序,但它们之间还是有区别的。一旦用户注册到系统后,Shell 就被系统装入内存并一直运行到用户退出系统为止;而一般命令仅当被调用时,才由系统装入内存执行。
与一般命令相比,Shell 除了是一个命令行解释器,同时还是一门功能强大的编程语言,易编写,易调试,灵活性较强。作为一种命令级语言,Shell 是解释性的,组合功能很强,与 *** 作系统有密切的关系,可以在 Shell 脚本中直接使用系统命令。大多数 Linux 系统的启动相关文件(一般在 /etc/rc.d 目录下)都是使用 Shell 脚本编写的。
同传统的编程语言一样,Shell 提供了很多特性,这些特性可以使 Shell 脚本编程更为有用,如数据变量、参数传递、判断、流程控制、数据输入和输出、子程序及中断处理等。
说了这么多,其实我们在 Linux 中 *** 作的命令行界面就是 Linux 的 Shell,也就是 Bash,但是我们的图形界面是 Shell 吗?其实从广义讲,图形界面当然也是 Shell,因为它同样用来接收用户的 *** 作,并传递到内核进行处理。不过,这里的 Shell 主要指的是 Bash。
Shell 脚本
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。
Shell的分类
目前 Shell 的版本有很多种,如 Bourne Shell、C Shell、Bash、ksh、tcsh 等,它们各有特点,下面简要介绍一下。
最重要的 Shell 是 Bourne Shell,这个命名是为了纪念此 Shell 的发明者 Steven Bourne。从 1979 年起,UNIX 就开始使用 Boume Shell。Bourne Shell 的主文件名为 sh,开发人员便以 sh 作为 Bourne Shell 的主要识别名称。
虽然 Linux 与 UNIX 一样,可以支持多种 Shell,但 Boume Shell 的重要地位至今仍然没有改变,许多 UNIX 系统中仍然使用 sh 作为重要的管理工具。它的工作从开机到关机,几乎无所不包。在 Linux 中,用户 Shell 主要是 Bash,但在启动脚本、编辑等很多工作中仍然使用 Bourne Shell。
C Shell 是广为流行的 Shell 变种。C Shell 主要在 BSD 版的 UNIX 系统中使用,发明者是柏克莱大学的 Bill Joy。C Shell 因为其语法和 C 语言类似而得名,这也使得 UNIX 的系统工程师在学习 C Shell 时感到相当方便。
Bourne Shell 和 C Shell 形成了 Shell 的两大主流派别,后来的变种大都吸取这两种 Shell 的特点,如 Korn、 tcsh 及 Bash。
Bash Shell 是 GNU 计划的重要工具之一,也是 GNU 系统中标准的 Shell。Bash 与 sh 兼容,所以许多早期开发出来的 Bourne Shell 程序都可以继续在 Bash 中运行。现在使用的 Linux 就使用 Bash 作为用户的基本 Shell。
Bash 于 1988 年发布,并在 1995-1996年推出Bash 2.0。在这之前,广为使用的版本是1.14,Bash 2.0增加了许多新的功能,以及具备更好的兼容性。表 2 中详细列出了各版本的具体情况。
注意,Shell 的两种主要语法类型有 Bourne 和 C,这两种语法彼此不兼容。Boume 家族主要包括 sh、ksh、Bash、psh、zsh;C 家族主要包括 csh、tcsh(Bash 和 zsh 在不同程序上支持 csh 的语法)。
本章讲述的脚本编程就是在 Bash 环境中进行的。不过,在 Linux 中除了可以支持 Bash,还可以支持很多其他的 Shell。我们可以通过 /etc/shells 文件来査询 Linux 支持的 Shell。命令如下:
在 Linux 中,这些 Shell 是可以任意切换的,命令如下:
用户信息文件 /etc/passwd 的最后一列就是这个用户的登录 Shell。命令如下:
大家可以看到,root 用户和其他可以登录系统的普通用户的登录 Shell 都是 /bin/bash,也就是 Linux 的标准 Shell,所以这些用户登录之后可以执行权限允许范围内的所有命令。不过,所有的系统用户(伪用户)因为登录 Shell 是 /sbin/ndogin,所以不能登录系统。
笔记:
sh/bash/csh/Tcsh/ksh/pdksh等shell的区别
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)