硬件
冯·洛伊曼体系
- 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
- 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
- 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
- 输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。
- 输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。
软件
低级语言:
汇编语言,汇编器;写驱动
高级语言:
系统级:C,C++,对性能要求较高的服务类程序
应用级:Java,Python,Ruby
Linux 发行版
RedHat Enterprise Linux
Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区 克隆版本,免费)。Redhat是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。
CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterprise Operating System的缩写。CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。
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应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。Debian是包括Ubuntu在内许多发行版的上游,而Ubuntu又是Linux Mint及其他发行版的上游。Debian在服务器和桌面电脑领域都有着广泛的应用。Debian是一个纯开源计划并着重在一个关键点上,稳定性。它同时也提供了最大的和完整的软件仓库给用户。
Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
Slackware Linux
Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版。与很多其他的发行版不同,它坚持KISS(Keep It Simple Stupid)的原则。一开始,配置系统会有一些困难,但是更有经验的用户会喜欢这种方式的透明性和灵活性。 Slackware 很多特性体现出了KISS原则,最为有名的一些例子就是不依赖图形界面的文本化系统配置、传统的服务管理方式和不解决依赖的包管理方式。它的最大特点就是安装灵活,目录结构严谨,版本力求稳定而非追新。Slackware的软件包都是通常的tgz(tar/gzip) 或者txz(xz) 格式文件再加上安装脚本。Tgz/Txz 对于有经验的用户来说,比RPM更为灵活,并避免了APT 之类管理器可能带来的的依赖地狱。
作为开源软件,Slackware与商业版本的关系并不大,但与几家提供付费支持的厂商一直保持的合作关系。作为最早的可用版本之一,Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版。与很多其他的发行版不同,它坚持KISS(Keep It Simple Stupid)的原则,就是说尽量不依赖配置系统的图形界面工具。其安装程序也是一些Dialog界面的shell脚本写成,你可以在安装的任何时候跳到任何安装步骤,而且这些脚本在安装之后也可以很方便的使用
Slackware与其他的发行版本(Red Hat、Debian、Gentoo、SuSE、 Mandriva、Ubuntu等)不同的道路,它力图成为“UNIX风格”的Linux发行版本。只吸收稳定版本的应用程序,并且缺少其他linux版本中那些为发行版本定制的配置工具。在当今systemd大势所趋的情况下,Slackware仍然坚持BSD启动风格。
Slackware主要为x86 PC开发,从2005年起开始出现针对System/390架构的官方移植。同时ARM、DEC Alpha、SPARC和PowerPC也存在一些非官方的移植。Slackware官方维护着一个开发版本(Slackware Current),不断有新的软件被加入到这个源,用户可以实现类似Archlinux的滚动升级,等到一个开发版本足够稳定,便会发布一个稳定版。Slackware是支持x86、amd64(即x86_64)、ARM、Alpha、SPARC、PowerPC的一套GNU/Linux操作系统,其正式发布由PatrickVolkerding 负责。
Linux发行版汇总
Linux各发行版的联系与区别:
联系:
- 各发行版本均采用Linux的内核(kernel);
- 各发行版本均遵守GPL版权协定;
- 各发行版本均遵循 Linux Standard Base (LSB)等标准来开发;
- 各发行版本均遵循FHS(File system Hierarchy Standard)标准规范;
区别:
- 不同的发行版采用的软件包管理方式不同;最有名的是 debain 的 deb 包,redhat 的 rpm 包,slackware 等的 tgz 包。
- 发行初衷不同,导致特点也不同,见下图:
三、Linux的哲学思想
- 一切皆文件
- 由众多的单一的程序完成一件比较复杂的工作,一个程序只做一件事,并且做好他。
- 尽量避免与用户交互
- 使用文本文件保存配置信息
- 提供机制(可选的策略、是一种框架),而非策略,提供做大的灵活性。
四、Linux系统上常用命令的使用格式
命令的语法通用格式:
COMMAND OPTIONS ARGUMENTS
COMMAND说明
发起命令时将请求内核将某个二进制程序运行为一个进程,命令本身是一个可执行的程序文件,二进制格式的文件有可能会调用共享库文件。[遵循ELF格式规范]
多数系统命令程序文件都存放在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin,它们又分为普通命令和管理命令。
普通命令:存放在/bin,/usr/bin,/usr/local/bin
管理命令:存放在/sbin,/usr/sbin,/usr/local/sbin
用到的库文件都存放在:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64,它们分为32位和64位的库文件,32位使用于32位的操作系统,64位使用于64位的操作系统,64位兼容32位,而32不兼容64
32位库:存放在/lib,/usr/lib,/usr/local/lib
64位库:存放在/lib64,/usr/lib64,/usr/local/lib64
命令分为两类:
由shell自带的命令,叫作内嵌命令(builtin)
独立的可执行程序文件,文件名即命令名,叫作外部命令
查看命令的内容的类型:
file命令:
例:~]# file /bin/ls
查看命令的类型:
type命令:
例:~]# type COMMAND
注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件
OPTIONS说明:
指定命令的运行特性,有两种表现形式:
短选项:-C,例如 ls -l ,-d 注:有的命令选项没有 – ,同一命令同时使用多个短选项可合并:ls -ld
长选项:–word,例如 ls –help,有时候选项也带参数,例:du -h –max-depth=1 注:长选项不能合并
ARGUMENTS说明:
参数:命令的作用对象,命令对什么生效,例:ls /etc ,作用在/etc 。注:有些命令可以可同时带多个参数,以空白分隔
常用命令示例:
ifconfig
作用:显示和配置网络信息
语法:ifconfig [网络设备][参数]
示例:ifconfig -a
echo
作用:显示文本
语法:echo [-ne][字符串]或 echo [–help][–version]
示例:echo ‘Hello World’
tty
作用:显示终端机连接标准输入设备的文件名称
语法:tty [-s][–help][–version]
示例:tty
startx
作用:进入图形操作界面
示例:startx &
export
作用:设置或显示环境变量
语法:export [-fnp][变量名称]=[变量设置值]
示例:
1 | export JAVA_HOME = /home/myuser/jdk1.7.0_03 |
pwd
作用:显示当前工作目录
语法:pwd[–help][–version]
示例:pwd
history
作用:列出bash保存的所有历史命令
语法:history [选项]
示例1:history
示例2:使用HISTTIMEFORMAT环境变量在历史中显示TIMESTAMP
1 | 命令: |
shutdown
作用:系统关机命令
语法:shutdown [-cfFhknr][-t 秒数][时间][警告信息]
示例:shuntdown -r +5
poweroff
作用:关机
语法:这个命令还说啥语法啊,生产环境上不要随便执行这个命令,否则会被捆绑、滴蜡、爆菊啊~
示例:poweroff
reboot
作用:重启
语法:运维常用作死命令之一,最好在头脑清醒的前提下执行。
示例:reboot
hwclock
作用:用来查询和设置硬件时钟
语法:
1 | -r, --show 读取并打印硬件时钟(read hardware clock and print result ) |
示例:
1 | [root@centos ~]# hwclock -r |
date
作用:取一个特定时间的linux时间戳
语法:date [参数]… [+格式]
示例:
1 | [root@centos ~]# date |
五、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节时如何划分的
获取命令的使用帮助:
1 | 内部命令: |
先执行type COMMNAD 识别是内部命令还是外部命令
1 | (3) info COMMAND |
man 文档章节如何划分
使用手册:压缩格式的文件,有章节之分;
/usr/share/man
man1, man2, …
1 | 1:用户命令; (普通用户和管理员) |
Linux发行版的基础目录名称命名法则及其功用规定
FHS:
1 | FHS:全称Filesystem Hierarchy Standard,其定义了两层规范, |
/下面的各个目录应该要放什么数据:
1 | /bin:所有用户可用的基本命令程序文件; |