2018-06-21
Linux的发展演变及其哲学思想
一: 计算机的组成及其功能 (软件和硬件)
硬件部分:
(一)控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
(二)运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
(三)存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
(四)输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。
(五)输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。
计算机的五大单元输入单元( I/O设备):包括键盘,鼠标等;
主机部分:系统单元,主板,储存器等;
输出单元( I/O设备):屏幕、打印机等
软件部分
计算机软件(ComputerSoftware)是指计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐述性资料。程序必须装入机器内部才能工作,文档一般是给人看的,不一定装入机器。软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据。为了方便用户,为了使计算机系统具有较高的总体效用,在设计计算机系统时,必须通盘考虑软件与硬件的结合,以及用户的要求和软件的要求。
(一)软件的正确含义应该是:
(1)运行时,能够提供所要求功能和性能的指令或计算机程序集合。
(2)程序能够满意地处理信息的数据结构。
(3)描述程序功能需求以及程序如何操作和使用所要求的文档。
(二)软件具有与硬件不同的特点:
(1)表现形式不同硬件有形,有色,有味,看得见,摸得着,闻得到。而软件无形,无色,无味,看不见,摸不着,闻不到。软件大多存在人们的脑袋里或纸面上,它的正确与否,是好是坏,一直要到程序在机器上运行才能知道。这就给设计、生产和管理带来许多困难。
(2)生产方式不同软件是开发,是人的智力的高度发挥,不是传统意义上的硬件制造。尽管软件开发与硬件制造之间有许多共同点,但这两种活动是根本不同的。
(3)要求不同硬件产品允许有误差,而软件产品却不允许有误差。
(4)维护不同硬件是要用旧用坏的,在理论上,软件是不会用旧用坏的,但在实际上,软件也会变旧变坏。因为在软件的整个生存期中,一直处于改变维护状态。
计算机系统二:Linux发行版之间的联系与区别
(一)Linux基本概况
Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是"Linux"。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus 。
TorvaldsLinux是一个诞生于网络、成长于网络且成熟于网络的奇特的操作系统。1991年,芬兰大学生Linus Torvalds萌发了开发一个自由的UNIX操作系统的想法,当年,Linux就诞生了,为了不让这个羽毛未丰的操作系统夭折,Linus将自已的作品Linux通过Internet发布。从此一大批知名的、不知名的电脑黑客、编程人员加入到开发过程中来,Linux逐渐成长起来。
Linux一开始是要求所有的源码必须公开,并且任何人均不得从Linux交易中获利。然而这种纯粹的自由软件的理想对于Linux的普及和发展是不利的,于是Linux开始转向GPL,成为GNU阵营中的主要一员。
Linux凭借优秀的设计,不凡的性能,加上IBM、INTEL、CA、CORE、ORACLE等国际知名企业的大力支持,市场份额逐步扩大,逐渐成为主流操作系统之一。
(二)Linux的三大发行版
Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。下面介绍一下各个发行版本的特点:
Debian:
Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范 的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经 过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是 稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。
Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的 Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
S.u.S.E:
SUSE Linux原是以Slackware Linux为基础,并提供完整德文使用界面的产品。1992年 Peter McDonald成立了Softlanding Linux System(SLS)这个发行版。这套发行版包含的软件非常多,更首次收录了X Window及TCP/IP等套件。Slackware就是一个基于SLS的发行版。
Redhat:
Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多 的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管 理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用, 但是Fedora Core的稳定性较差,最好只用于桌面应用。
Linux三大版本三:Linux的哲学思想
Linux的哲学思想:
(1)一切皆文件:
把几乎所有资源统统抽象为文件形式;不仅普通的文件,目录、字符设备、块设备、 套接字等包括硬件设备,甚至通信接口在Linux 中都是以文件被对待;
(2)由众多功能单一的程序组成:
一个程序只做一件事,并且做好;程序和可执行文件不要太复杂,这样才能保证了Linux内核的高效运行。对于复杂的功能Linux能通过许多简单程序的组合等方式实现,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的;
(3)尽量避免跟用户交互:
Linux上支持的脚本语言种类十分丰富、易学简单,易于使用者以脚本的方式实现自动化任务。
(4)使用文本文件保存配置信息:
Linux所有的配置文件都存放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可而不是类似于windows那样将保存在注册表中,并且windows的注册表需要专门的二进制或十六进制的编辑器才可编辑,修改比较复杂
四:Linux中基础命令介绍
1、 ifconfig:此命令用于显示或设置网络设备。ifconfig可设置网络设备的状态,或是显示目前的设置。
实例
显示网络设备信息启动关闭指定网卡
# ifconfig eth0 down //关闭网卡
# ifconfig eth0 up //启动网卡
用ifconfig修改MAC地址
# ifconfig eth0 down //关闭网卡
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
# ifconfig eth0 up //启动网卡
# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址
# ifconfig eth1 up //启动网卡
配置IP地址
# ifconfig eth0 192.168.1.56 //给eth0网卡配置IP地址
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 给eth0网卡配置IP地址,并加上子掩码
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
// 给eth0网卡配置IP地址,加上子掩码,加上个广播地址
2、echo:用于字符串的输出。
1.显示普通字符串:
回显2.显示命令执行结果:
结果将显示当前日期3.显示结果定向至文件:
输出重定向(覆盖原文件)3、tty:此命令用于显示终端机连接标准输入设备的文件名称。
在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty(teletypewriter)指令查询目前使用的终端机的文件名称。
语法
tty [-s][--help][--version]
参数说明:
-s或--silent或--quiet 不显示任何信息,只回传状态代码。
--help 在线帮助。
--version 显示版本信息。
实例
显示当前终端4、export:此命令用于设置或显示环境变量。
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。
参数说明:
-f 代表[变量名称]中为函数名称;
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;
-p 列出所有的shell赋予程序的环境变量。
实例
列出当前的环境变量5、pwd:此命令用于显示工作目录。
执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
实例
查看当前所在目录6、history:主要用于显示历史指令记录内容
参数说明:
-c 清空命令历史记录;
-d 删除命令历史中的某条命令;
-n 打印最近的n条命令;
-w 将当前历史命令缓冲区命令写入历史命令文件中。
实例
打印当前历史记录7、startx:初始化一个 X 会话。
startx 命令简化了启动 X 会话的过程。
该命令执行下列操作:
设置用户的 DISPLAY 环境变量以标识 X 服务器到 X 客户机
当从工作站运行时,启动 X 服务器
启动 X 客户机。
参数说明:
-d Display :0 指定在启动过程中传递给 X 客户机的 X 服务器的显示名称;
-m Window_Manager 当未找到 startup 脚本时,启动窗口管理器;
-r Resources 当未找到 startup 脚本时,装入资源文件;
-t 为一个 X 终端启动 X 客户机;
-w 为工作站上的 X 窗口会话启动 X 服务器和 X 客户机;
-wait 当 xdm 命令调用 startx 时,防止重新启动 X 会话;
-x Startup 使用 startup 脚本启动 X 窗口会话。
实例
在终端启动X会话8、shutdown:此指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。
参数说明:
-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
-f:重新启动时不执行fsck;
-F:重新启动时执行fsck;
-h:将系统关机;
-k:只是送出信息给所有用户,但不会实际关机;
-n:不调用init程序进行关机,而由shutdown自己进行;
-r:shutdown之后重新启动;
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。
9、poweroff:此命令用来关闭计算机操作系统并且切断系统电源。
参数说明:
-n:关闭操作系统时不执行sync操作;
-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
-f:强制关闭操作系统;
-i:关闭操作系统之前关闭所有的网络接口;
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
10、reboot:通知系统重启。
参数说明:
-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
-f:强制重新开机,不调用shutdown指令的功能;
-i:在重开机之前,先关闭所有网络界面;
-n:重开机之前不检查是否有未结束的程序;
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
11、hwclock:显示硬件时钟
hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟。
参数说明:
-r, --show 读取并打印硬件时钟
-s, --hctosys 将硬件时钟同步到系统时钟
-w, --systohc 将系统时钟同步到硬件时钟
12、date:显示系统时钟
date命令可以用来显示和修改系统日期时间,注意不是time命令。
参数说明:
%Y YYYY格式的年份(Year)
%m mm格式的月份(),01-12
%d dd格式的日期(day of month),01-31
%H HH格式的小时数(),00-23
%M MM格式的分钟数(),00-59
%S SS格式的秒数(),00-59
%F YYYY-mm-dd格式的完整日期(Full date),同%Y-%m-%d
%T HH-MM-SS格式的时间(Time),同%H:%M:%S
%s 自1970年以来的秒数。C函数time(&t) 或者Java中 System.currentTimeMillis()/1000, new Date().getTime()/1000
%w 星期几,0-6,0表示星期天
%u 星期几,1-7,7表示星期天
注意以上格式是可以任意组合的,还可以包括非格式串,比如 date "+今天是%Y-%d-%m,现在是$H:%M:%S"
hwclock和date的区别:在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中 的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。根据不同参数设置,hwclock命令既可以将硬件时钟同步到系统时钟,也可以将系统时钟同步到硬件时钟。
五:Linux中获取命令的帮助信息
常用的Linux帮助命令
1:man命令
man是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
man帮助信息中主要有下面几项
NAME:简短的命令、数据名称说明,ls - list directory contents:ls是指列出当前目录下的内容。
SYNOPSIS Z执行命令语法(syntax)简介。
DESCRIPTION:较为完整的秒数说明。
OPTIONS:针对SYNOPSIS部分中,有列举的所有可用的选项说明。
COMMANDS:当这个程序在执行的时候,可在该程序中执行的命令。
FILES:这个程序或数据所使用或参考或连接到的某些文件。
SEE ALSO:这个命令或数据相关的其他说明。
EXAMPLE:一些可以参考的范例。
BUGS:是否有相关的错误。
man文档在/usr/share/man下有man man1……man8.
man1 用户命令及应用程序
man2 系统调用和内核出错代码
man3 库调用
man4 设备驱动程序和网络协议
man5 标准文件格式
man6 游戏和演示
man7 各种文件和文档
man8 系统管理命令
man9 含糊的内核规范和接口
操作方法:
向后翻一屏:SPACE(空格) 向前翻一屏:b
向后翻一行:ENTER(回车) 向前翻一行:k
查找:/KEYWORD:自前向后 ?KEYWORD:自后向前
退出:q
2:info命令
Linux 中的大多数软件开发工具都是来自自由软件基金会的 GNU 项目,这些工具软件件的在线文档都以 info 文件的形式存在。info 程序是 GNU 的超文本帮助系统。
info 文档一般保存在 /usr/info 目录下,使用 info 命令查看 info 文档。一般可看成是man的补充
3:help命令
用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看
六:Linux发行版基础目录名称、命名法则及公用规定
目录描述:
/bin:可执行文件,系统命令,二进制文件
/sbin:管理命令,二进制文件
/boot:系统启动相关文件,如内核、initrd、以及grub(bootloader)
/dev:设备文件,例如/dev/null
/etc:系统配置文件
/home:用户家目录,每个用户家目录通常默认为/home/username
/root:管理员家目录
/lib:库文件,如/lib/modules 内核模块文件 静态库: .a 动态库: .dll,.so
/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,系统不启动则为空,启动后显示为内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件
/var:可变化的文件,通常在系统重启后删除
/usr:全局共享的只读文件
命名规则:
1:长度不能超过255个字符
2:不能使用 / 当文件名
3:严格区分大小写