导图社区 Linux学习思维导图
Linux 是一种自由和开放源码的类UNIX操作系统。本图将从0到1带你探究Linux的基础知识,包括部署虚拟环境安装linux系统、新手必须掌握的Linux命令、管道符、重定向与环境变量、Vim编辑器与Shell命令脚本等多个方面,相信你们能很快学会。
编辑于2019-01-31 09:40:21Linux学习
一、Linux诞生
Linux 是以 Unix 操作系统为原型创造的。自从诞生之日起, 它就被设计成一种多任务、多用户的系统。这些特点使 Linux 完全不同于其它著名的操作系统。事实上,Linux 比您所能想象到更加特别。 与其它操作系统绝然相反的是,没人真正拥有 Linux,其大部分开发工作都是由无偿的志愿者完成的。
二、什么是Linux?
严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。 既然Linux只是一个内核。那么我们通常所说的Linux操作系统又是什么?我们通常所说的Linux,指 GNU/Linux ,即采用Linux内核的GNU操作系统。是的,操作系统的实际名称是GNU。什么是GNU?GNU代表GNU’s Not Unix。可以说是一个操作系统又可以说是一种规范。比如,众所周知的PHP,原名为Personal HomePage(个人主页),根据GNU的软件命名规则,PHP现已更名为PHP: Hypertext Preprocessor(超文本预处理程序)。
三、什么是 GNU/Linux?
Linux 是一种计算机操作系统: 一系列能让您与计算机进行交互操作并运行其它程序的程序。 操作系统由多种基础程序构成。它们使计算机可以与用户进行交流并接受指令, 读取数据或将其写入硬盘、磁带或打印机,控制内存的使用,以及运行其它软件。 操作系统最重要的组成部分是内核。在 GNU/Linux 系统中,Linux 就是内核组件。 而该系统的其余部分主要是由 GNU 工程编写和提供的程序组成。 因为单独的 Linux 内核并不能成为一个可以正常工作的操作系统, 所以我们更倾向使用“GNU/Linux” 一词来表达人们通常所说的 “Linux”。
换源的目的-就是为了下载速度和稳定;
1.1 vi一个文本编辑器; 1.2.1 Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 1.2.2 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
2.1 什么是源不同于 Windows 各种安装包,Linux 都是直接用命令行下载的,下载肯定有个存储位置,就是这个源地址了,但是 linux 提供的默认源都是在国外,故更换源使下载速度变快。
四、GNU/Linux与windows不同
1.1 Linux用户可以选择几十种不同的命令行外壳; 1.2 多种图形桌面可供选择;通常让其它操作系统的用户手足无措, 他们甚至从来没想过命令行和桌面其实是可以更换的。 1.3 Linux 很少会崩溃、适合在同一时间运行多个程序, 而且比大多数操作系统更为安全。有了这些优势,Linux 成为在服务器市场上增长最快的操作系统。近来, 它还开始在家庭和商业用户中变得越来越流行。
2.1 没有exe安装程序 2.2 严格区分大小写 2.3 一切皆文件,Linux中所有内容以文件形式保存,包括硬件 2.4 不靠扩展名区分文件类型,文件名后缀名不是那么重要,只是为了人为的好区别;而是靠权限来区分文件类型。
3.1 文件系统不同,GNU/Linux 文件系统ext4,Windows 文件系统NTFS FAT32/FAT16
4.1 GNU/Linux没有GHOST版
5.1 Linux 使用xshell远程,Windows使用windows自带远程或Teamviewer工具(第三方)远程;
五、Linux版本介绍
Linux版本区别
联系
联系:所有发行版都是使用Linux内核;都需要遵循GNU的GPL协定;所有的发行版都有自己的版本号,版本格式约定基本一样(主版本号.次版本号.发行号.修正号)。
区别
区别:发行版的本质区别,在于继承不同版本的内核,库、程序的组成。不同发行版几乎采用了不同包管理器(SLES、Fedora、openSUSE、centos、RHEL使用rmp包管理系统,包文件以RPM为扩展名;Ubuntu系列,Debian系列使用基于DPKG包管理系统,包文件以deb为扩展名。)
基于Debian GNU/Linux
Debian是菜鸟油服务器之前所采用的操作系统。Debian最早由Ian Murdock于1993年创建。可以算是迄今为止,最遵循GNU规范的Linux系统。Debian系统分为三个版本分支(branch):stable, testing 和 unstable。截至2005年5月,这三个版本分支分别对应的具体版本为:Woody, Sarge 和 Sid。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而Woody一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。菜鸟油之前所采用的是Debian Sarge。 为何有如此多的用户痴迷于Debian呢(包括笔者在内)?apt-get / dpkg是原因之一。dpkg是Debian系列特有的软件包管理工具,它被誉为所有Linux软件包管理工具(比如RPM)最强大的!配合apt-get,在Debian上安装、升级、删除和管理软件变得异常容易。许多Debian的用户都开玩笑的说,Debian将他们养懒了,因为只要简单得敲一下”apt-get upgrade && apt-get update”,机器上所有的软件就会自动更新了…… 优点:遵循GNU规范,100%免费,优秀的网络和社区资源,强大的apt-get 缺点:安装相对不易,stable分支的软件极度过时 软件包管理系统:APT (DEB包),dpkg命令 免费下载:是 官方主页:http://www.debian.org/
特点:遵循GNU规范,100%免费,优秀的网络和社区资源,强大的apt-get
软件包管理系统:APT (DEB包),dpkg命令
stable稳定分支
对应版本Woody,2002.7.19
稳定和安全性非常高,软件包极度过时;
只用于服务器
testing测试分支
对应版本Sarge,2005.6.6
经过unstable测试,相对稳定
支持新技术比如SMP等
unstable不稳定分支
对应版本Sid,每日更新,适合桌面和软件测试
适用桌面用户,最新软件包,相对较多的bug
Debian
ubuntu
笔者的桌面电脑便使用的Ubuntu。依照笔者的理解,简单而言,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux操作系统。:) Ubuntu是一个相对较新的发行版,但是,它的出现可能改变了许多潜在用户对Linux的看法。也许,从前人们会认为Linux难以安装、难以使用,但是,Ubuntu出现后,这些都成为了历史。Ubuntu基于Debian Sid,所以这也就是笔者所说的,Ubuntu拥有Debian的所有优点,包括apt-get。然而,不仅如此而已,Ubuntu默认采用的GNOME桌面系统也将Ubuntu的界面装饰的简易而不失华丽。当然,如果你是一个KDE的拥护者的话,Kubuntu同样适合你! Ubuntu的安装非常的人性化,只要按照提示一步一步进行,安装和Windows同样简便!并且,Ubuntu被誉为对硬件支持最好最全面的Linux发行版之一,许多在其他发行版上无法使用,或者默认配置时无法使用的硬件,在Ubuntu上轻松搞定。并且,Ubuntu采用自行加强的内核(kernel),安全性方面更上一层楼。并且,Ubuntu默认不能直接root登陆,必须从第一个创建的用户通过su或sudo来获取root权限(这也许不太方便,但无疑增加了安全性,避免用户由于粗心而损坏系统)。Ubuntu的版本周期为六个月,弥补优点:人气颇高的论坛提供优秀的资源和技术支持,固定的版本更新周期和技术支持,可从Debian Woody直接升级 缺点:还未建立成熟的商业模式 软件包管理系统:APT (DEB包) 免费下载:是 官方主页:http://www.ubuntulinux.org/
ubuntu基于Debian开发的开源Linux操作系统,主要针对桌面和服务器;
Ubuntu基于Debian Sid版本
Ubuntu桌面环境
GNOME已经成为Novell、RedHat企业发行版的默认桌面,更偏向于商务领域
KDE为可选桌面环境,丰富多彩的KDE有朝向家用和娱乐方向发展的趋势
Linux Mint
Linux Mint基于Debian和Ubuntu的Linux发行版,致力于桌面系统对个人用户每天的工作更易用,更高效,且目标是提供一种更完整的即刻可用体验。
Knoppix
MEPIS
sidux
CrunchBang Linux
Chromium OS
Google Chrome OS
通用软件包DEB
更新命令”apt-get upgrade && apt-get update”
debian下deb包如何安装 deb包 deb包是debian,ubuntu等LINUX发行版的软件安装包,是类似于rpm的软件包,而非debian,ubuntu系统不推荐使用deb软件包,因为要解决软件包依赖问题,安装也比较麻烦。 安装方法有两种: 一般在此类发行版中可以直接双击安装。 手动安装。如果您喜欢使用终端,您需要管理员权限来安装一个 .deb 文件。 打开终端后,输入:sudo dpkg -i package_file.deb 但是在包含有依赖关系的安装包手动安装的过程中会出现安装不成功的问题,这时只需输入命令:sudo apt-get -f install 待命令执行完成,软件也就安装成功了。 卸载安装包时,在终端中,输入:sudo dpkg -r package_name
基于Red Hat GNU/Linux
Red Hat介绍
Red Hat 国内,乃至是全世界的Linux用户所最熟悉、最耳闻能详的发行版想必就是Red Hat了。Red Hat最早由Bob Young和Marc Ewing在1995年创建。而公司在最近才开始真正步入盈利时代,归功于收费的Red Hat Enterprise Linux(RHEL,Red Hat的企业版)。而正统的Red Hat版本早已停止技术支持,最后一版是Red Hat 9.0。于是,目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux,以及由社区开发的免费的Fedora Core。Fedora Core 1发布于2003年年末,而FC的定位便是桌面用户。FC提供了最新的软件包,同时,它的版本更新周期也非常短,仅六个月。目前最新版本为FC 3,而FC4也预定将于今年6月发布。这也是为什么服务器上一般不推荐采用Fedora Core。 适用于服务器的版本是Red Hat Enterprise Linux,而由于这是个收费的操作系统。于是,国内外许多企业或空间商选择CentOS。CentOS可以算是RHEL的克隆版,但它最大的好处是免费!菜鸟油目前的服务器便采用的CentOS 3.4。 优点:拥有数量庞大的用户,优秀的社区技术支持,许多创新 缺点:免费版(Fedora Core)版本生命周期太短,多媒体支持不佳 软件包管理系统:up2date (RPM), YUM (RPM),RPM(RPM) 免费下载:是 官方主页:http://www.redhat.com/
RedHat才决定开发自己的“rpm”包管理系统
Red Hat Enterprise Linux
由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux
Fedora
FC的定位便是桌面用户
Fedora基于Red Hat Linux终止发行后,红帽公司计划以Fedora来取代Red Hat Linux在个人领域的应用,而另外发行的Red Hat Enterprise Linux取代Red Hat Linux在商业应用的领域。Fedora的功能对于用户而言,它是一套功能完备、更新快速的免费操作系统,而对赞助者Red Hat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到Red Hat Enterprise Linux中。Fedora大约每六个月发布新版本。
2006年10月24日,Fedora Core 6正式发布,版本代码为Zod。GNOME桌面基于GNOME 2.16,KDE桌面基于 KDE 3.5.4。添加了Compiz窗口管理器,提供对桌面视觉回馈特效的支持,并包含了X.org 7.1版本,内核基于2.6.18 Linux kernel。
Centos
Centos:基于Red hat Linux提供的可自由使用源代码的企业级Linux发行版本。每个版本的Centos都会获得十年的支持(通过安全更新的方式)。新版本的Centos大约每两年发行一次,而每个版本的Centos会定期(大概6个月)更新一次,以支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的Linux环境。
Scientific Linux
Oracle Linux
基于Mandriva GNU/Linux
Mandriva Linux
Mandriva原名Mandrake,最早由Ga?l Duval创建并在1998年7月发布。记得前两年国内刚开始普及Linux时,Mandrake非常流行。说起Mandrake的历史,其实最早Mandrake的开发者是基于Redhat进行开发的。Redhat默认采用GNOME桌面系统,而Mandrake将之改为KDE。而由于当时的Linux普遍比较难安装,不适合第一次接触Linux的新手,所以Mandrake还简化了安装系统。我想这也是当时Mandrake在国内如此红火的原因之一。Mandrake在易用性方面的确是下了不少功夫,包括默认情况下的硬件检测等。 Mandrake的开发完全透明化,包括“cooker”。当系统有了新的测试版本后,便可以在cooker上找到。之前Mandrake的新版本的发布速度很快,但从9.0之后便开始减缓。估计是希望能够延长版本的生命力以确保稳定和安全性。 优点:友好的操作界面,图形配置工具,庞大的社区技术支持,NTFS分区大小变更 缺点:部分版本bug较多,最新版本只先发布给Mandrake俱乐部的成员 软件包管理系统:urpmi (RPM) 免费下载:FTP即时发布下载,ISO在版本发布后数星期内提供 官方主页:http://www.mandrivalinux.com/
PCLinuxOS
Unity Linux
Mageia
基于Gentoo GNU/Linux
Gentoo Linux
Gentoo:基于linux的自由操作系统,基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点, Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西--你想让它成为什么,它就可以成为什么。由于它近乎无限的适应性,可把Gentoo称作元发行版。
Sabayon Linux
Calculate Linux
Funtoo Linux
基于Slackware GNU/Linux
Slackware
Zenwalk
VectorLinux
SLES(SUSE Linux Enterprise Server(SLES)
SLES(SUSE Linux Enterprise Server(SLES):企业服务器操作系统,是唯一与微软系统兼容的Linux操作系统。
OpenSUSE
OpenSUSE:由suse发展而来,旨在推进Linux的广泛使用,主要用于桌面环境,用户界面非常华丽,而且性能良好。
其他版本 GNU/Linux
suse
SUSE是德国最著名的Linux发行版,在全世界范围中也享有较高的声誉。SUSE自主开发的软件包管理系统YaST也大受好评。SUSE于2003年年末被Novell收购。 SUSE之后的发布显得比较混乱,比如9.0版本是收费的,而10.0版本(也许由于各种压力)又免费发布。这使得一部分用户感到困惑,也转而使用其它发行版本。但是,瑕不掩瑜,SUSE仍然是一个非常专业、优秀的发行版。 优点:专业,易用的YaST软件包管理系统 缺点:FTP发布通常要比零售版晚1~3个月 软件包管理系统:YaST (RPM包), 第三方APT (RPM) 软件库(repository),RPM(RPM) 免费下载:取决于版本 官方主页:http://www.suse.com/
suse基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器。
软件包管理系统:YaST (RPM), 第三方APT (RPM) 软件库(repository),RPM(RPM)
免费下载:取决于版本
SUSE是使用标准的SSH协议,SecureCRT,Putty等标准SSH工具都可以远程进行管理
YaST和无图形窗口模式100%兼容
Aech Linux(或称Arch) GNU/Linux
Aech Linux(或称Arch):以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅和代码最小化的设计宗旨。
Puppy Linux
Damn Small Linux
MeeGo
Slitaz
Tizen
StartOS
OpenLinux
RPM软件包管理器
Turbo Linux
RPM软件包管理器
六、Linux桌面环境
KDE与GNOME项目拥有相同的目标,就是为Linux开发一套高价值的图形操作环境
扩展知识
GPL--授权声明
GPL就是一个为了保护软件自由的一个协议,它强调的是开源;如果你用了我的 GPL软件,那么你的软件也必须要开源,否则就不能使用我的软件.
GPL
该软件的使用者有权重新发布、修改该软件,并得到该软件的源代码;但只要使用者在其程序中使用了该自由软件,或者是使用修改后的软件,那么使用者的程序也必须公布其源代码,同时允许别人发布、修改。也就是说,使用GPL声明下的的自由软件开发出来的新软件也一定是自由软件。
LGPL
与GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。
Qt:C++的图形库
Qt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架,开发GUI程序。
开发非GUI程序,比如控制台工具和服务器
面向对象的框架
Qt很容易扩展
允许真正地组件编程
支持Windows,Linux,支持平台iOS、Android、WP(微软手机系统)
支持XML
支持 2D/3D 图形渲染,支持 OpenGL
GTK:跨平台的图形工具包
跨平台的图形工具包
GTK Linux版本
GTK+也有Windows版本和Mac OS X版。
设计灵活、可扩展
GTK工具包可定制,可扩展
现代化、更新快
较少的Bug,安全和稳定
国际化、本地化和可访问性(通常分别缩写为 i18n、l10n 和 a11y)。
适用性,统一性,更多人参与不限国家和地区
简单易用
GTK+ 采用了 Lesser General Public License (LGPL) 许可,这是 GNU 许可家族中一个不太严格的许可。LGPL 允许自由地获取、修改和发布它覆盖的任何软件,只要对修改也保持自由即可。
代码可公开,也可不公开。
可移植
这意味着用户可以在许多平台和系统上运行它
API 接口属于一种操作系统或程序接口
应用程序接口(API:application programming interface)是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过使用 API 函数开发应用程序,从而可以避免编写无用程序,以减轻编程任务。
数据查询
程序通信
数据共享
文件传输
GNOME
GNOME-商务领域
GNOME已经成为Novell、RedHat企业发行版的默认桌面,更偏向于商务领域
GNOME采用遵循 GPL的GTK库开发—后者拥有更广泛的支持
KDE
KDE-家庭娱乐
丰富多彩的KDE有朝向家用和娱乐方向发展的趋势,它比GNOME显然更有趣味性一些。
两者都采用GPL公约发行,不同之处在于KDE基于双重授权的Qt
xfce
lxde
七、Linux软件包管理系统介绍
最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。
Debian GNU/Linux
apt
apt是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件。
Deb包
安装deb包常使用到的命令dpke
deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件。
管理工具也就应运而生,它被命名为dpkg,命令是dpke
slackware GNU/Linux
YaST
Rpm包
第三方APT
Rpm包
软件库(repository
Red Hat GNU/Linux
rpm是一种包含在某些Linux分发版中的RPM软件包管理工具。它生成具有.RPM扩展名的文件,与Dpkg类似。使用rpm命令,我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时;所以需要YUM或其他软件包管理系统来进行系统管理;
up2date
Rpm包
YUM
Rpm包
rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。
管理工具Rpm,安装命令是Rpm
tar包
Mandriva原名Mandrake GNU/Linux
urpmi
Rpm包
扩展知识
apt是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。deb包可以把一个应用的文件包在一起,大体就如同Windows上的安装文件。
rpm是redhat公司的一种软件包管理机制,直接通过rpm命令进行安装删除等操作,最大的优点是自己内部自动处理了各种软件包可能的依赖关系。
不同发行版几乎采用了不同包管理器(SLES、Fedora、openSUSE、centos、RHEL使用rmp包管理系统,包文件以RPM为扩展名;Ubuntu系列,Debian系列使用基于DPKG包管理系统,包文件以deb为扩展名。)
八、Linux包的种类
压缩包
*.gz
*.bz2
*.tar.bz2
*.tgz
*.Deb
*.tar
二进制软件包
*.Rpm
网页文件
*.html
*.php
脚本文件
*.sh
配置文件
*.conf
企鹅295836532 转载请注明出处 版本标注 Linux V1.0.0.0