Py学习  »  Python

Python全栈 Linux基础之1.Linux初章

cupyter • 4 年前 • 378 次点击  

一、操作系统简介

操作系统 (Operation System,简称OS)
操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在 裸机 上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
裸机:
没有安装操作系统的计算机被称为裸机。
裸机的必要硬件:
CPU(中央处理器)、内存条、磁盘、声卡、显卡等。
操作系统是运行在CPU上的。
正常运行的必要软件:

  • 操作系统:调用硬件,使功能正常运行;
  • 一般软件:操作操作系统,间接调用硬件。

比喻:裸机是毛坯房,装上操作系统后就成了装修好的房子。

1.个人计算机PC(Personal Computer)操作系统–客户端

  • Windows系列:一般用户
  • MacOS:高等办公
  • Linux:程序开发

2.服务器操作系统

  • Linux:
    占有率高,免费,功能更齐全,为了解决多用户同时使用而诞生。
  • Windows:
    占有率低,收费。

3.嵌入式及移动移动设备操作系统

  • Linux(嵌入式)
  • iOS(基于Unix)
  • Android(基于Linux)

二、操作系统发展史

几个改变世界的人:
几个改变世界的人

1.简述:

Unix的诞生:
肯让自己开发的游戏运行
肯在完善Unix的时候,创造了C语言

公司介入:商业化,收费

比尔盖茨: IBM进军个人计算机 Dos系统 CPU生产:Intel 比尔盖茨与乔布斯交流之后推出Windows

Linux的出现与黑客组织有关 林纳斯读大学时,在Minux的基础上开发出Linux
雷蒙德:黑客,传播Linux,发起GNU,开发软件、开源

2.发展详述

Unix的诞生

大事件:

  • 1965年 ,人类为了研发一个多用途,多用户的操作系统。有三个著名的公司联合起来进行研发。贝尔实验室、通用电器公司(General Electrics;G.E.)及麻省理工学院(Massachusetts Institute of Technology;MIT)。
  • 1969年 由于项目渐渐迷失了方向(估计是 进度缓慢 然后 资金短缺) 最终 贝尔实验室(Bell Labs)退出了这个项目。
  • 1969年 肯.汤姆逊 为了他的游戏(Space Travel)星际旅游能够跑起来 找到了一台被淘汰的电脑 pdp-7 花了一个月的时间,写出了一个伟大的操作系统 Unix 的原型
  • 肯的另一个同事丹尼斯.里奇对Unix有着很大兴趣,他就在当时的一门高级语言 BCPL 的基础上开发了一种新的高级语言将Unix重新写了一遍.这个语言也就是后来大名鼎鼎的C语言
  • 1969年8月 芬兰一个叫做林纳斯 Linus.Torvalds的婴儿来到了这个世界。

尽管是为了一款游戏 . 但是事实就是如此 Unix和C诞生了,C与Unix很快成为全世界的主导开启了操作系统的新历史

由于Unix是开源的,这使得Unxi的功能和特性很快的被丰富。
贝尔实验室隶属于 AT&T公司(美国电话及电报公司).公司很快看到了商机.将Unix私有化,并注册Unix商标.这时的Unix价格非常的昂贵。
此时很多公司也都分分投靠 AT&T 并开发自己的Unxi版本.其中有著名的IBM公司。

Windows 和 MacOS 的恩恩怨怨

毫无疑问,Unix的诞生,对与计算机的发展起到了至关重要的作用。
时光来到了1975年,IBM的一个市场总监做了一个大胆的预测,他预测大概在20世纪末世界上个人计算机的数量将会普及。
那么这个预测就促使IBM开始进军个人电脑市场!那么就是因为这个大胆的假设和IBM的决定!!成就了世界两个巨无霸企业。
由于当时Unix价格昂贵,IBM一台个人电脑造价2w美元,操作系统都要花4w。所以IBM不得不放弃Unix。
但是操作系统与CPU又有着直接的关系,不同的cpu运行的操作系统是不一样的。而当时的主流CPU都是兼容Unix操作系统的.所以IBM只能选择一家小公司来生产cpu.这家公司就是Inter!!(没错,当时他还只是一个小公司)。

当IBM拥有了CPU之后,微软的创始人 比尔盖茨 花了5W美金 买下了他同学利用一个月的时间写的操作系统.对方欣喜若狂,简直快要疯了!!
比尔盖茨得到之后,将这个操作系统 命名为DOS .并且带上操作系统.找到了他妈妈 .当时是IBM董事会的成员.然后与IBM签订了合约!! 那么他的同学这时候就真的疯了!!
由于IBM需要廉价的计算机。微软可以提供廉价的DOS系统.所以顺水推舟 .但是聪明 的比尔盖茨 不是卖操作系统,而是卖操作系统的许可。每台IBM兼容机都捆绑一个DOS。比尔盖茨的招数就是捆绑,从dos到IE都是如出一辙,当然特别奏效。IBM认为硬件才是赚钱的根本,所以才会和年轻比尔盖茨合作.结果电脑进入市场,反响非常好,比尔盖茨也就成为了千万富豪!!

在市场的另一边 另外一小伙子在一个车库成立了一家公司! 他也在卖电脑 .这个人就是 乔布斯
当时乔布斯的苹果公司 采用的是unix 操作系统 后期发展为 MacOS .由于 乔布斯 对产品的卓越追求,让他不断的改进Apple的电脑,震撼了整个个人电脑市场,因此乔布斯身价过亿。
Apple蒸蒸日上,比尔盖茨不爽了! 不可否认乔布斯和比尔盖茨都很伟大,但是不同的是比尔盖茨更狡猾!! 有一天比尔盖茨找到了乔布斯,大加赞赏了他的伟大,然后卑微的祈求一份Apple的产品原型,并承诺微软的一切成果都是苹果的。不可一世的乔布斯答应了,比尔盖茨得到了产品原型机,马上组织团队研发,并在1990年5月份推出 Windows3.0 !!!从而开始了微软在操作系统上的垄断地位。
也是从这一刻开始,微软和苹果的 血海深仇 就此结下。

Linux的传奇

那么在 微软的Windows 和 苹果的 MacOS 大战的时候,Unix在干嘛呢?? Unix正忙着打官司,然后一直卖着它 昂贵的操作系统 也正是这些时间,错过了个人计算机 操作系统发展的黄金时间!
Minix:
那么时间 来到了 1991年 !! 还记得22年前在 芬兰出生的那个男孩吗?林纳斯 他现在正在读大学.学校有一门课程叫做 操作系统 ,但是由于 Unix的闭源,林纳斯的大学教授就没法讲课了. 但是那个年代的大牛就是这么牛逼,这个教授一狠心 就自己写了一个操作系统,用来上课. 这个操作系统具备了Unix的基本功能, 由于比较小巧,所以叫做 Minix。
Linux诞生:
但是Minix 和一开始的 Unix 一样.不具备移植性 在其他的机器上面 没法安装。
而 林纳斯 有一台自己的电脑,却不能将Minix运行在自己的电脑上,所以 林纳斯 也不得不走上了他无数前辈的道路,自己写一个操作系统!
仅仅两个月后 林纳斯 就完成了第一个版本的操作系统.并通过自己的名字命名.叫做Linux . 随后他将源码上传到网络.让大家一起来完善其功能.可是那时的Linux一直只流行在在大学的校园.
那么Linux是如何推广到全球,最终 成为 操作系统 的 王者的呢? 这里就不得不提到一个人!! ESR 埃里克·雷蒙德(Eric Raymond)
GNU和Linux的结合:
雷蒙德 是何许人也? 著名的黑客。有一部纪录片Revolution OS(操作系统革命) 这样描述的

在一次开发者大会上,雷蒙德 遇到一个微软工程师,他看到对方衣服上的标志 就问他是不是在微软工作.

那位工程师 略带一点 嘲讽和鄙视 就反问 雷蒙德 你是干什么的

雷蒙德 微微一笑 留下了一句很牛逼的话:我 是你们可怕的恶梦。。。

当然雷蒙德 是微软的恶梦吗?不 他 不仅仅是 微软的噩梦 ,他 是一切收费软件公司的恶梦。微软靠卖软件大发特发。这让雷蒙德很不满。他认为所有软件都应该自由的让人们使用。

所以 1983年,雷蒙德 发起了“GNU(GNU’s Not Unix的递归缩写)”计划。GNU激发了软件界极大的热情,世界各地的软件奇才全部加入进来,开发出很多优秀的软件 比如 C语言编译器,gcc 等等。而且 很多免费软件的水平甚至都已经超过了相应的付费版本。

可是还有一个问题没有解决。GNU编写了很多自由免费的软件,可是这些免费软件却运行在收费 的Unix上。所以雷蒙德 这个时候就很郁闷… 然后承诺大家两年内重新写一个操作系统,但是 黑客是不愿意按部就班做事的。就这样五年时间过去了,操作系统还没出来!!。当然 历史总是如此的巧合!!雷蒙德 懊恼没有操作系统。而 芬兰那边,林纳斯 只有一个操作系统内核 Linux 而没有相应的应用软件。他们在各自的领域奋斗多年之后,命运终于安排他们走到了一起 最终 Linux 加入了 GNU 计划!!
然后,整个世界都变了!!今天在全球前500台超级计算机中,有413台选用Linux。这些计算机遍布世界各地的多个行业,大到航天科技,小到IC卡芯片,全都由Linux所主宰。在移动领域,Android 就是 Linux 内核。服务器也是Linux独领风骚!Linux就像病毒一样,在一群黑客手中,席卷全球!我,是你们可怕的噩梦! Linux已然完成对微软的复仇!
它是一个标志! 是一群黑客追求自由,共享所开启的一个新的时代!!

三、Linux操作系统

Linux系统分为Linux内核和发行版。

1.Linux内核(Kernel)

操作系统内核是指大多数操作系统的核心部分。
它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。
操作系统内核通常运行进程,并提供进程间的通信。
Linux内核版本又分为 稳定版 开发版 ,两种版本是相互关联、相互循环。
稳定版 :具有工业级强度,可以广泛地应用和部署;
开发版 :由于要试验各种解决方案,所以变化很快。
内核源码网址: http://www.kernel.org

2.Linux发行版

即我们常说的Linux操作系统,也是由Linux内核与各种常用软件的集合产品,类似Windows包含了桌面环境。
全球大约有数百款的Linux系统版本,每个系统版本都有自己的特性和目标人群。

四、Ubuntu简介及操作简单演示

1.简介

Ubuntu(乌班图)是一个以桌面应用为主的开源GNU/Linux操作系统,主要依赖Canonical有限公司的支持,同时也有很多来自Linux社区的热心人士提供协助。
作为Linux发行版之一,Canonical 的Ubuntu 胜过其他所有的 Linux 服务器发行版 ,它简单易用同时又相当稳定,而且具有庞大的社区力量,用户可以方便地从社区获得帮助。
Ubuntu在服务器领域是妥妥的赢家。

※在Windows下安装虚拟机+Ubuntu的详细过程可参考 https://www.jianshu.com/p/2883f9af89db

2.Ubuntu的目录结构

如图
Ubuntu的主要目录

Ubuntu的主要目录

  • /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始

  • /bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等

  • /boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub

  • /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt

  • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有

    • /etc/inittab
    • /etc/fstab
    • /etc/init.d
    • /etc/X11
    • /etc/sysconfig
    • /etc/xinetd.d
  • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下

    • ~ 表示当前用户的家目录
    • ~edu 表示用户 edu 的家目录
  • /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助

  • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下

  • /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载

  • /opt:给主机额外安装软件所摆放的目录

  • /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等

  • /root:系统管理员root的家目录

  • /sbin、/usr/sbin、/usr/local/sbin:放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能"查看"而不能设置和使用

  • /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下

  • /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内

  • /usr:应用程序存放目录

    • /usr/bin:存放应用程序
    • /usr/share:存放共享数据
    • /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
    • /usr/local:存放软件升级包
    • /usr/share/doc:系统说明文件存放目录
    • /usr/share/man:程序说明文件存放目录
  • /var:放置系统执行过程中经常变化的文件

    • /var/log:随时更改的日志文件
    • /var/spool/mail:邮件存放的目录
    • /var/run:程序或服务启动后,其 PID 存放在该目录下

3.Ubuntu的常见快捷键

可以在 System Setting -> Keyboard -> Shortcuts 中查看各种快捷键。

  • 终端: Ctrl+Alt+T
  • 终端新建标签页: Ctrl+Shift+T
  • 终端复制粘贴: Ctrl+Shift+C , Ctrl+Shift+V
  • 显示常用快捷键: 按住**Super(Win)**不动
  • 截活动窗口图: Alt+Print
  • 区域截图: Shift+Print
  • 源切换: Super(Win)+Space
  • 安装: sudo apt-get install
  • 卸载: sudo apt-get remove
  • 移除没用的包: sudo apt-get autoremove

4.Ubuntu的常见设置

语言设置

  • 通过右上角的 设置按钮 找到 System Settings
  • 然后选中 Language Support
  • Ubuntu的语言选项有多种语言,将第一语言设置为中文(因为如果中文显示不了的,会使用英文显示)
  • 设置完成后.选择 Apply System-wide (应用到整个系统)这时,输入管理员密码以确认,最后点击 Close 按钮关闭对话框,重启电脑。

语言设置

注意:

  • 不是点击,是拖动,分为第一语言、第二语言…;
  • 重启成功后,会让你选择文件夹名称显示.如果是为了学习.我建议大家保持原来的文件夹名称,这样便于后期在学习中熟悉Linux目录结构. 选择 Keep Old Names
    Keep Old Names

Launcher(菜单栏)设置

在系统设置中,找不到菜单栏的位置设置.所以只能通过 终端命令 进行设置。
命令:

gsettings set 软件包名
  • 1

软件包名必须 唯一 标识,如com.baidu.guanjia。
举例:

gsettings set com.baidu.guanjia xxx
  • 1
  • 菜单栏靠左



    
$ gsettings set com.canonical.Unity.Launcher launcher-position Left
  • 1
  • 菜单栏靠下
$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom
  • 1

注意参数首字母大写

Ubuntu常用软件及安装

  • 设置软件源:
    默认的软件源是官方的, 服务器在国外,速度慢的令人发指,国内提供镜像源,访问更快,将主服务器内容COPY。 所以需要先设置一个速度较快的软件源, System Settings -> Software & Updates -> Ubuntu Software -> Download from 选择Others, 然后自动选择一个网速比较快的服务器(多半是某个大学的)即可。

apt(Advanced Packaging Tool)
安装/卸载软件;
CTRL+ALT+T
快速打开终端。

  • 安装软件:
$ sudo apt install 软件包
  • 1
  • 卸载软件
$ sudo apt remove 软件名
  • 1
  • 更新已安装的包
$ sudo apt upgrade  或者 sudo apt-get upgrade
  • 1
  • 升级
 sudo apt-get update
  • 1

由于有些Ubuntu中没有自带 vim 而是 vi 这个古老的编辑器,所以我们需要安装vim

sudo apt-get install vim
  • 1

※注意:在安装过程中有可能出现下列错误:

vim : 依赖: vim-common (= 2:7.4.826-1ubuntu1) 但是 2:7.4.1689-3ubuntu1.1
正要被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决办法:

sudo apt-get remove vim-common
sudo apt-get install vim
  • 1
  • 2
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53463
 
378 次点击