如果操作系统发展史出一部美国大片,那一定是三国硝烟的味道。上世界末的一群西方人,虽没有西部牛仔的放荡不羁,也成就了一段令后人难望其项背的历史。而且,身为Unix之父,Linux之父,计算机开源运动之父,Windows之父,无一例外,都还好好的活在这个他们亲眼见证的,不断发展壮大的信息技术时代。
1970年,美国Bell实验室的Ken Thompson为了玩游戏顺手写出的系统在其同事Dennis Ritch的帮忙开发下,已经颇具规模。73年,两人用 C语言重写该系统,不久该系统也有了自己真正的名字--Unix。1974,《美国计算机通信》杂志将Unix公之于众。开发者无偿贡献Unix源码给众黑客,更多人为Unix提出改进意见,不久,Unix风靡全球。
当时Bell实验室 属于 AT&T(American Telephone& Telegraph)美国电话电报公司,原则上是禁止销售除电话电报以外的其他业务的。但随着Unix的名气越来越大,AT&T开始意识到了其中的商业价值。终于1980年,Berkeley的BSD UNIX成了第一个中枪者,由此两者开始了长达二十多年的商业版权纠纷。
同时因为Unix天价的收费盈利,黑客们纷纷转投了商业化的软件开发。也是1980年,Microsoft乘上时代的巨轮,赚了满簸金,正式开始了IT征程,从此一发不可收拾。
1984 ,RichardStallman不堪忍受铜臭弥漫的IT风潮,创建了GNU组织。GUN打着 Gnu is not unix的口号,收到了同样怀念自由的黑客的支持。GUN高扬GPL( GeneralPublic License)协议的旗帜。85年,RichardStallman成立了FSF( Free SoftwareFoundation),越来越多的黑客加入到GUN当中。
自由软件的发展迫切需要一款真正自由的系统。然而直到1991年,Linux才缓缓来迟。
迟生的Linux理所当然的舅舅疼姑姑爱茁壮成长。得益于Linus Benedict Torvalds及其团队的Linux内核,及GUN软件的支持,更多衍生版的Linux系统发行版开源免费的提供给天下爱好计算机的人们。
图灵出版的图书扉页上书“站在巨人的肩膀上”。科技的发展,人类的进步,始至传承。
Linux自初发行便秉持高效,命令行页面为主要使用环境。以下概念及示例以VMware12下CentOS 7.3及CentOS6.9为实际操作环境。
1.分区及挂载
操作系统启动需要引导文件,系统引导文件因为每次启动都会用到,所以常常需要一个特别的分区,以避免与其他文件混搅从而出现配置出错的状况。分区可以提高系统运行效率,同时避免因一个分区存储崩溃而导致其他文件不可正常使用等。
/boot下存储系统启动引导文件,需要单独分区。除此之外,根目录root需要单独分区。root是linux超级管理员,也是所有文件的起点。另外,学习用到的文件及工具可单独放在一个分区里,这里用/app示例。另外一个重要的分区是/swap,这是虚拟内存分区。虚拟内存是为了内存运行速度更快而采取的硬盘内存虚拟化。
在虚拟机上安装Linux时需要自己配置分区。以下配置仅供参考。
sda1 / 50G
sda2 /boot 1G(至少100M)
sda3 /app 50G
sda4 SWAP 4G(物理内存两倍)
(因为是入门,LVM博主还不了解,所以这里用标准分区。剩余的磁盘容量供以后学习留用)
访问分区内文件需要接口,在windows中这用卷标表示,即C盘,D盘,E盘等。因Linux下一切皆文件,且所有文件均通过根目录访问,所以其他分区,需要创建可通过跟/访问的路径,即为挂载。
Linux下分区用ls /dev/sda*查看分区,用df查看各分区存储状况。
如果一个分区没有被单独挂载,那么其数据存储在其父目录所对应的分区下。比如根目录root下的文件。
2.远程连接监控终端
企业Linux多用集群,工作中也多用远程终端连接Linux主机。XSHELL、SecureCRT都是经典的远程C/S终端软件。当然,都是 CLI(命令行界面)。这里的远程连接用到了ssh协议。ssh协议支持跨平台的远程登录。
3.终端
Linux系统多为企业级用户,对应的多用户多任务是Linux的亮点。一台主机,可连接多个终端,终端为主机提供可实现输入输出的人机接口,设备终端是键盘鼠标显示器。Linux里常用到的终端有:
物理终端( /dev/console )即控制台console;
虚拟终端(tty:teletypewriters, /dev/tty#, #为[1-6]) tty 可有n个,Ctrl+Alt+F[1-6]互相切换);
图形终端(CentOS 6: Ctrl + Alt + F1,CentOS 7: 在哪个终端启动,即位于哪个虚拟终端。可在虚拟终端输入startx进入图形终端);
伪终端( pty:pseudo-tty,/dev/pts/#,ssh协议远程连接即为此终端);
串行终端(/dev/ttyS# )。
关于终端的常用命令有:
tty、who am i:查看自己当前所在终端;
who:查看当前所有登录的终端;
w:查看当前所有登录终端的详细信息。
当然,只有这些知识我们还是做不了什么的。但是这些基础的知识一定会在以后的命令学习中帮你理解一些云里雾里的知识。
命令行界面模糊的说,就是shell语言的编程。那不是前人们研究出的用来唬人的,而是为了更高的效率设计出的用于计算研究的方式。
随着以后的学习,还会知道手册manual这一概念,任何被开发出的命令都有帮助手册和文档。所以不用怕,只是熟悉就好了。