鸟哥的Linux私房菜
  • 目录及概述
  • 第零章 计算机概论
    • 0.1 电脑-辅助人脑的好工具
    • 0.2 个人电脑架构与相关设备元件
    • 0.3 数据表示方式
    • 0.4 软件程序运行
    • 0.5 重点回顾
    • 0.6 本章习题
    • 0.7 参考资料与延伸阅读
  • 第一章 Linux是什么与如何学习
    • 1.1 Linux是什么
    • 1.2 Torvalds的Linux发展
    • 1.3 Linux当前应用的角色
    • 1.4 Linux该如何学习
    • 1.5 重点回顾
    • 1.6 本章习题
    • 1.7 参考资料与延伸阅读
  • 第二章 主机规划与磁盘分区
    • 2.1 Linux与硬件的搭配
    • 2.2 磁盘分区
    • 2.3 安装Linux前的规划
    • 2.4 重点回顾
    • 2.5 本章习题
    • 2.6 参考资料与延伸阅读
  • 第三章 安装CentOS7.X
    • 3.1 本练习机的规划-尤其是分区参数
    • 3.2 开始安装CentOS_7
    • 3.3 多重开机安装流程与管理
    • 3.4 重点回顾
    • 3.5 本章习题
    • 3.6 参考资料与延伸阅读
  • 第四章 首次登陆与线上求助
    • 4.1 首次登录系统
    • 4.2 文字模式下指令的下达
    • 4.3 Linux系统的线上求助man_page与info_page
    • 4.4 超简单文字编辑器-nano
    • 4.5 正确的关机方法
    • 4.6 重点回顾
    • 4.7 本章习题
    • 4.8 参考资料与延伸阅读
  • 第五章 Linux的文件权限与目录配置
    • 5.1 使用者与群组
    • 5.2 Linux文件权限概念
    • 5.3 Linux目录配置
    • 5.4 重点回顾
    • 5.5 本章习题
    • 5.6 参考资料与延伸阅读
  • 第六章 Linux文件与目录管理
    • 6.1 目录与路径
    • 6.2 文件与目录管理
    • 6.3 文件内容查阅
    • 6.4 文件与目录的默认权限与隐藏权限
    • 6.5 指令与文件的搜寻
    • 6.6 极重要的复习-权限与指令间的关系
    • 6.7 重点回顾
    • 6.8 本章习题
    • 6.9 参考资料与延伸阅读
  • 第七章 Linux磁盘与文件系统管理
    • 7.1 认识Linux文件系统
    • 7.2 文件系统的简单操作
    • 7.3 磁盘的分区-格式化-检验与挂载
    • 7.4 设置开机挂载
    • 7.5 内存交换空间swap创建
    • 7.6 文件系统的特殊观察与操作
    • 7.7 重点回顾
    • 7.8 本章习题
    • 7.9 参考资料与延伸阅读
  • 第八章 文件的压缩与打包
    • 8.1 压缩文件的用途与技术
    • 8.2 Linux系统常见的压缩指令
    • 8.3 打包指令-tar
    • 8.4 XFS文件系统的备份与还原
    • 8.5 光盘写入工具
    • 8.6 其他常见的压缩与备份工具
    • 8.7 重点回顾
    • 8.8 本章习题
    • 8.9 参考资料与延伸阅读
  • 第九章 vim程序编辑器
    • 9.1 vi与vim
    • 9.2 vi的使用
    • 9.3 vim的额外功能
    • 9.4 其他vim使用注意事项
    • 9.5 重点回顾
    • 9.6 本章习题
    • 9.7 参考资料与延伸阅读
  • 第十章 认识与学习BASH
    • 10.1 认识bash这个shell
    • 10.2 shell的变量功能
    • 10.3 命令别名与历史命令
    • 10.4 BashShell的操作环境
    • 10.5 数据流重导向
    • 10.6 管线命令-pipe
    • 10.7 重点回顾
    • 10.8 本章习题
    • 10.9 参考资料与延伸阅读
  • 第十一章 正则表达式与文件格式化处理
    • 11.1 开始之前-什么是正则表达式
    • 11.2 基础正则表达式
    • 11.3 延伸正则表达式
    • 11.4 文件的格式化与相关处理
    • 11.5 重点回顾
    • 11.6 本章习题
    • 11.7 参考资料与延伸阅读
  • 第十二章 学习shell scripts
    • 12.1 什么是ShellScripts
    • 12.2 简单的ShellScript练习
    • 12.3 善用判断式
    • 12.4 条件判断式
    • 12.5 循环loop
    • 12.6 ShellScript的追踪与debug
    • 12.7 重点回顾
    • 12.8 本章习题
  • 第十三章 Linux帐号管理与ACL权限控制
    • 13.1 Linux的账户与群组
    • 13.2 账号管理
    • 13.3 主机的细部权限规划-ACL的使用
    • 13.4 使用者身份切换
    • 13.5 使用者的特殊shell和PAM模块
    • 13.6 Linux主机上的使用者讯息传递
    • 13.7 CentOS7环境下大量创建账号的方法
    • 13.8 重点回顾
    • 13.9 本章习题
    • 13.10 参考资料与延伸阅读
  • 第十四章 磁盘配额(Quota)与进阶文件系统管理
    • 14.1 磁盘配额Quota的应用与实作
    • 14.2 软件磁盘阵列SoftwareRAID
    • 14.3 逻辑卷轴管理员LogicalVolumeManager
    • 14.4 重点回顾
    • 14.5 本章习题
    • 14.6 参考资料与延伸阅读
  • 第十五章 例行性工作调度(crontab)
    • 15.1 什么是例行性工作调度
    • 15.2 仅执行一次的工作调度
    • 15.3 循环执行的例行性工作调度
    • 15.4 可唤醒停机期间的工作任务
    • 15.5 重点回顾
    • 15.6 本章习题
  • 第十六章 程序管理与SELinux初探
    • 16.1 什么是程序process
    • 16.2 工作管理JobControl
    • 16.3 程序管理
    • 16.4 特殊文件与程序
    • 16.5 SELinux初探
    • 16.6 重点回顾
    • 16.7 本章习题
    • 16.8 参考资料与延伸阅读
  • 第十七章 认识系统服务(daemon)
    • 17.1 什么是daemon与服务service
    • 17.2 通过systemctl管理服务
    • 17.3 systemctl针对service类型的配置文件
    • 17.4 systemctl针对timer的配置文件
    • 17.5 CentOS7.x默认启动的服务简易说明
    • 17.6 重点回顾
    • 17.7 本章习题
    • 17.8 参考资料与延伸阅读
  • 第十八章 认识与分析登录文件
    • 18.1 什么是登录文件
    • 18.2 rsyslog.service-记录登录文件的服务
    • 18.3 登录文件的轮替logrotate
    • 18.4 systemd-journald.service简介
    • 18.5 分析登录文件
    • 18.6 重点回顾
    • 18.7 本章习题
    • 18.8 参考资料与延伸阅读
  • 第十九章 开机流程、模块管理与Loader
    • 19.1 Linux的开机流程分析
    • 19.2 核心与核心模块
    • 19.3 BootLoader-Grub2
    • 19.4 开机过程的问题解决
    • 19.5 重点回顾
    • 19.6 本章习题
    • 19.7 参考资料与延伸阅读
  • 第二十章 网络设置与备份策略
    • 20.1 系统基本设置
    • 20.2 服务器硬件数据的收集
    • 20.3 备份要点
    • 20.4 备份的种类和频率与工具的选择
    • 20.5 鸟哥的备份策略
    • 20.6 灾难复原的考虑
    • 20.7 重点回顾
    • 20.8 本章习题
    • 20.9 参考资料与延伸阅读
  • 第二十一章 软件安装:源代码与Tarball
    • 21.1 开源代码的软件安装与升级简介
    • 21.2 使用传统程序语言进行编译的简单范例
    • 21.3 用make进行宏编译
    • 21.4 Tarball的管理与建议
    • 21.5 函数库管理
    • 21.6 检验软件正确性
    • 21.7 重点回顾
    • 21.8 本章习题
    • 21.9 参考资料与延伸阅读
  • 第二十二章 软件安装:RPM,SRPM与YUM功能
    • 22.1 软件管理员简介
    • 22.2 RPM软件管理程序-rpm
    • 22.3 YUM线上升级机制
    • 22.4 SRPM的使用-rpmbuild
    • 22.5 重点回顾
    • 22.6 本章习题
    • 22.7 参考资料与延伸阅读
  • 第二十三章 X Window设置介绍
    • 23.1 什么是XWindowSystem
    • 23.2 XServer配置文件解析与设置
    • 23.3 显卡驱动程序安装范例
    • 23.4 重点回顾
    • 23.5 本章习题
    • 23.6 参考资料与延伸阅读
  • 第二十四章 核心编译
    • 24.1 编译前的任务-认识核心与取得核心源代码
    • 24.2 核心编译的前处理与核心功能选择
    • 24.3 核心的编译与安装
    • 24.4 额外-单一核心模块编译
    • 24.5 以最新核心版本编译CentOS7.x的核心
    • 24.6 重点回顾
    • 24.7 本章习题
    • 24.8 参考资料与延伸阅读
Powered by GitBook
On this page
  • 1.3.1 企业环境的利用
  • 1.3.2 个人环境的使用
  • 1.3.3 云端运用
  1. 第一章 Linux是什么与如何学习

1.3 Linux当前应用的角色

Previous1.2 Torvalds的Linux发展Next1.4 Linux该如何学习

Last updated 2 years ago

了解了什么是 Linux 之后,再来谈谈,那目前 Linux 用在哪里呢?由于Linux kernel实在是非常的小巧精致,可以在很多强调省电以及较低硬件资源的环境下面执行; 此外,由于Linux distributions整合了非常多非常棒的软件(不论是专利软件或自由软件), 因此也相当适合目前个人计算机的使用呢!传统上,Linux常见的应用可约略分为企业应用与个人应用两方面,但这几年很流行的云端运算机制中, 让 Linux 似乎又更有着力点啰!

1.3.1 企业环境的利用

企业对于数码化的目标在于提供消费者或员工一些产品方面的信息 (例如网页介绍),以及整合整个企业内部的数据统一性 (例如统一的帐号管理/文件管理系统等)。另外,某些企业例如金融业等,则强调在数据库、安全强化等重大关键应用。 学术单位则很需要强大的运算能力等。所以企业环境运用Linux作些什么呢?

  • 网络服务器:

这是Linux当前最热门的应用了!承袭了Unix高稳定性的良好传统,Linux上面的网络功能特别的稳定与强大! 此外,由于GNU计划与Linux的GPL授权模式,让很多优秀的软件都在Linux上面发展, 且这些在Linux上面的服务器软件几乎都是自由软件!因此,做为一部网络服务器,例如WWW, Mail Server, File Server等等,Linux绝对是上上之选!当然,这也是Linux的强项!由于 Linux server 的需求强烈,因此许多硬件厂商推出产品时, 还得要特别说明有支持的 Linux distributions 呢!方便提供企业采购部门的规划喔!例如下面的链接可以瞧瞧:

  • Dell 公司的 Server 对 OS 的支持度:

  • HP 公司的支持:

  • IBM 公司的支持:

  • VMWare 的虚拟化支持:

从上面的几个大厂的 Linux 支持情况来看,目前 (2015) 支持度比较广泛的依旧是 Red Hat 以及 SuSU 两个大厂喔! 提估给企业采购的时候参考参考!

Tips 前一阵子参加一个座谈会,会上许多企业界的前辈们在聊,如果想要选择某个 Linux distribution 时,哪个 distribution 会是企业采购时的最爱呢? 与会的朋友说,要采购吗?看看服务器大厂对于该 distribution 的支持度就知道了!答案是什么?就是上面许多链接的结果啰! ^_^

  • 关键任务的应用(金融数据库、大型企业网管环境):

由于个人计算机的性能大幅提升且价格便宜,所以金融业与大型企业的环境为了要精实自己机房的机器设备, 因此很多企业渐渐的走向Intel相容的x86主机环境。而这些企业所使用的软件大多使用Unix操作系统平台的软件, 总不能连过去发展的软件都一口气全部换掉吧!所以啰,这个时候符合Unix操作系统标准并且可以在x86上运行的Linux就渐渐崭露头角了!^_^

目前很多金融业界都已经使用Linux做为他们的关键任务应用。所谓的关键任务就是该企业最重要的业务啦! 举例来说,金融业最重要的就是那些投资者、帐户的数据了,这些数据大多使用数据库系统来作为存取接口, 这些数据很重要吧!很多金融业将这么重要的任务交给了Linux了!你说Linux厉不厉害啊?

  • 学术机构的高性能运算任务:

学术机构的研究常常需要自行开发软件,所以对于可作为开发环境的操作系统需求非常的迫切!举例来说, 非常多技职体系的科技大学就很需要这方面的环境,好进行一些毕业专题的制作呢! 又例如工程界流体力学的数值模式运算、娱乐事业的特效功能处理、软件开发者的工作平台等等。 由于Linux的创造者本身就是个计算机性能癖,所以Linux有强大的运算能力;并且Linux具有支持度相当广泛的GCC编译软件, 因此Linux在这方面的优势可是相当明显的!

举个鸟哥自己的案例好了,鸟哥之前待的研究室有跑一套空气品质模式的数值仿真软件。 这套软件原本只能在Sun的SPARC机器上面跑。后来该软件转向Linux操作系统平台发展, 鸟哥也将自己实验室的数值模式程序由Sun的Solaris平台移植到Linux上面呢! 据美国环保署内部人员的测试,发现Linux平台的整体硬件费用不但比较便宜(x86系统嘛!)而且速度还比较快呢!

另外,为了加强整体系统的性能,丛集计算机系统(Cluster)的平行运算能力在近年来一直被拿出来讨论。 所谓的平行运算指的是“将原本的工作分成多份,然后交给多部主机去运算,最终再将结果收集起来”的一种方式。 由于通过高速网络使用到多部主机,将能够让原本需要很长运算时间的工作,大幅的降低等待的时间! 例如中央气象局的气象预报就很需要这样的系统来帮忙!而Linux操作系统则是这种架构下相当重要的一个环境平台呢!

Tips 由于服务器的 CPU 数量可以增加许多,而且也能够达到比较省电的功能,因此鸟哥最近更换了昆山科大资传系的模式运算服务器组, 通过 20 核心 40 超执行续的以及 12 核心 24 超执行续的两部系统,搭配 10G 网卡来处理模式的运行!用的是本书谈到的 CentOS Linux, 跑得模式是美国环保署公布,现行于世界最流行的 CMAQ 空品模式喔!

1.3.2 个人环境的使用

你知道你平时接触的电子用品中,哪些咚咚里面有Linux系统存在呢?其实相当的多呢!我们就来谈一谈吧!

  • 桌面电脑:

所谓的桌面电脑,其实就是你我在办公室使用的计算机啦。一般我们称之为Desktop的系统。那么这个 Desktop 的系统平时都在做什么呢?大概都是这些工作吧:

  • 上网浏览+实时通讯(Skype, FB, Google, Yahoo...);

  • 文书处理;

  • 网络接口之公文处理系统;

  • 办公室软件(Office Software)处理数据;

  • 收发电子邮件;

想进行这些计算机工作时,你的Desktop环境需要什么咚咚?很简单,“就是需要窗口”! 因为上网浏览、文书编排的所见即所得接口,以及电子公文系统等等, 如果没有窗口接口的辅助,那么将对使用者造成很大的困扰。而众所皆知的, Linux早期都是由工程师所发展的,对于窗口接口并没有很需要,所以造成Linux不太友好的印象。

好在,为了要强化桌面电脑的使用率,Linux与X Window System结合了! 要注意的是,X Window System仅只是Linux上面的一套软件, 而不是核心喔!所以即使X Window挂了,对Linux也可能不会有直接的影响呢! 更多关于 X window system 的详细信息我们留待[第二十三章]再来介绍。

Tips 鸟哥真的垂垂老已~前一阵子 (2014) 上课时,跟学生说:“各位啊!你们考取的证照也转一份给老师来备份嘛!用 emai 寄给鸟哥喔!” 结果有几个学生竟然举手说:“老师!我知道 email 啊!不过,从来没有用过 email 寄附件耶!所以才没有传给你啊!”哇!! 瞎密?“那你们怎么传送文件啊?用 FTP 喔?”鸟哥问,他说“没啊!就用 FB 或者是 Line 啊!或者 dropbox!真没用过 email 耶!”...时代不同了...

  • 手持系统(PDA、手机):

自从 iphone4 在 2010 年面世之后,整个手机市场开始大搬风!智能手机市场将原本商务用的 PDA 市场整个吃掉!然后原本在 2010 年前后很热门的小笔记本也被平板电脑打趴了!在这个潮流下,Google 成立了开放手机联盟 (Open Handset Alliance),并且推出 Android 手机专用操作系统! 而 Android 其实就是 Linux 核心的一支,只是专门用来针对手机/平板这类的 ARM 机器所设计的 !

2015 最新的 Android 系统 5.x 使用的就是 Linux kernel 3.4.x 版本,另外,调查中也显示,从 2013 年之后,Android 系统已经是全球最多人使用的手机系统。也就是说,现在手机市场的主流操作系统是 Linux 分支出来的 Android 喔! 那怎么能说 Linux 很少人用呢?哈哈!天天都在用耶各位!

Tips 如果你的手机是 Android 系统的话,请拿出来,然后点选“设置”--> “关于(手机)” --> “软件信息”,你就会看到 Android 版本,然后又点选“更多”, 这时你就会看到类似 3.4.10-xxx 的代号,那是什么?查一查上头提到的 Linux 版本,就知道那是啥鬼东西啰! ^_^

  • 嵌入式系统:

在[第零章]当中我们谈到过硬件系统, 而要让硬件系统顺利的运行就得要撰写合适的操作系统才行。那硬件系统除了我们常看到的计算机之外, 其实家电产品、PDA、手机、数码相机以及其他微型的计算机配备也是硬件系统啦! 这些计算机配备也都是需要操作系统来控制的!而操作系统是直接嵌入于产品当中的,理论上你不应该会更动到这个操作系统, 所以就称为嵌入式系统啦!

虽然嵌入式设备很多,大家也想要转而使用Linux操作系统,不过在台湾,这方面的人才还是太少了! 要玩嵌入式系统必须要很熟悉Linux Kernel与驱动程序的结合才行!这方面的学习可就不是那么简单喔! ^_^

1.3.3 云端运用

自从个人计算机的 CPU 内置的核心数越来越多,单一主机的能力太过强大,导致硬件资源经常闲置,这个现象让虚拟化技术得以快速发展! 而由于硬件资源大量集中化,然后行动办公室之类的需求越来越多,因此让办公数据集中于云程序中,让企业员工仅须通过端点设备连线到云去取用运算资源, 这样就变成无时无地都可以办公啦 (其实很惨...永远不得休息啊!真可怜~)!

这就是三国演义里面谈到的“天下大势,分久必合、合久必分”的名言啊! 从(1)早期的贵森森的大型主机分配数个终端机的集中运算机制,到 (2)2010 年前个人计算机运算能力增强后,大部分的运算都是在台式机或笔记本上自行达成, 再也不需要跑去大型主机取得运算资源了!到现在(3)由于行动设备的发达,产生的庞大数据需要集中处理,因而产生云端系统的需求!让信息/资源集中管理! 这不是分分合合的过程吗?^_^

  • 云程序

许多公司都有将资源集中管理的打算,之前参与一场座谈会,有幸遇到阿里巴巴的架构师,鸟哥偷偷问他说,他们机房里面有多少计算机主机啊? 他说不多!差不多才 2 万部主机而已...鸟哥正在搞的可提供 200 个左右的虚拟机的系统,使用大约 7 部主机就觉得麻烦了,他们家至少有 2 万部耶! 这么多的设备底层使用的就是 Linux 操作系统来统一管理。

另外,除了公司自己内部的私有云之外,许多大型网际网络供应商 (ISP) 也提供了所谓的公有云来让企业用户或个人用户来使用 ISP 的虚拟化产品。 因此,如果公司内部缺乏专业管理维护人才,很有可能就将自家所需要的关键应用如 Web、Mail、系统开发环境等操作系统交由 ISP 代管, 自家公司仅须远端登陆该系统进行网站内容维护或程序开发而已。那这些虚拟化后的系统,也经常是 Linux 啊!因为跟上头企业环境利用提到的功能是相同的!

所以说云程序的底层就是 Linux ,而云程序搭建出来的虚拟机,内容也是 Linux 操作系统哩!用的越来越多啊!

Tips 所谓的“虚拟化”指的是:在一部实体主机上面仿真出多个逻辑上完全独立的硬件,这个假的虚拟出来的硬件主机,可以用来安装一部逻辑上完全独立的操作系统! 因此,通过虚拟化技术,你可以将一部实体主机安装多个同时运行的操作系统 (非多重开机),以达到将硬件资源完整利用的效果。 很多 ISP 就是通过贩售这个虚拟机的使用权来赚钱的喔!

  • 端设备

既然运算资源都集中在云里面了,那我需要连线到云程序的设备应该可以越来越轻量吧?当然没错!所以智能手机才会这么热门啊! 很多时候你只要有智能手机或者是平板,连线到公司的云里面去,就可以开始办公了哩!

此外,还有更便宜的端点设备喔!那就是近年来很热门又流行的树莓派 (Raspberry Pi) 与香蕉派 (Banana Pi),这两个小东西售价都不到 50 美元, 有的甚至台币 1000 块有找!这个 Raspberry Pi 其实就是一部小型的计算机,只要加上 USB 键盘、鼠标与 HDMI 的屏幕,立刻就是可以让小朋友学习程序语言的环境! 如果加上通过网络去取得具有更强大运算资源的云端虚拟机,不就可以做任何事了吗?所以,端点设备理论上会越来越轻量化的!

Tips 鸟哥近几年来做的主要研究,就是通过一组没很贵的 server 系统达成打开多个虚拟机的环境,然后让学生可以在教室利用类似 banana pi 的设备来连线到服务器, 这时学生就可以通过网络来取得一套完整的操作系统,可以拿来上课、回家实作练习、上机考试等等!相当有趣!鸟哥称为虚拟计算机教室! 而 server 与 banana pi 的内部操作系统当然就是 Linux 啊!

近年来在各大社群的团结合作之下,Linux的窗口系统上面能够跑的软件实在是多的吓人!而且也能够应付的了企业的办公环境! 例如美观的KDE与GNOME窗口接口,搭配可相容微软Office的 OpenOffice / LibreOffice (, ) 等软件, 这些自由的办公室软件包含了文书处理、电子试算表、简报软件等等,功能齐全啊!然后配合功能强大速度又快的Firefox浏览器, 以及可下载信件的雷鸟(ThunderBird)软件(类似微软的Outlook Express),还有可连上多种实时通讯的Pidgin! Linux能够做到企业所需要的各项功能啦!

包括路由器、防火墙、手机、IP分享器、交换器、机器人控制芯片、家电用品的微计算机控制器等等,都可以是Linux操作系统喔! 内的Hoyo大大就曾经介绍过如何在嵌入式设备上面载入Linux! 你桌面上用来备份的 NAS 说不定内部也是精简化过的 Linux 系统啊!

http://www.dell.com/support/contents/tw/en/twbsd1/article/Product-Support/ Self-support-Knowledgebase/enterprise-resource-center/server-operating-system-support
http://www8.hp.com/us/en/business-services/it-services.html?compURI=1078888#tab=TAB1
http://www-03.ibm.com/systems/hardware/browse/linux/
https://www.vmware.com/support/ws55/doc/intro_supguest_ws.html
https://www.openoffice.org/zh-cn/
https://zh-cn.libreoffice.org/
酷学园