课程:Linux操作系统与应用
参考书:Linux从入门到精通、unix环境高级编程
学习linux之前必须要做好心理准备:
第一,要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期,由于在linux中,用户权限很大,做任何事情都很自由,所以,你往往需要知道你做的每一步在干什么,系统做了些什么,这需要时间去掌握,(背命令不是一件好的学习方法,相信我你一定会在你背完之前全部忘光),尽量掌握常用命令;
第二,在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废;
第三,如果你想在以后的生涯中在软件行业工作的话,学习linux是一项基本技能,所以打从你打算学习linux那天起,放弃windows吧!因为它除了能给你带来片刻的娱乐,别无其他;
要学好linux需要做些什么:
第一,要多google,因为我不可能,也不可以给你解答所有内容,我只能告诉你一些关键点,甚至我会故意隐瞒答案,因为在寻找答案的过程中,你会学到更多的知识,学习linux,更要学习一种geek的精神,python之禅中也说过:以总结分享为荣,以跪*求其解为耻;
第二,要多动手,不要怕什么搞坏了怎么办,你不搞坏,不去动手,就永远不会有收获,既然你在linux中是自由的,那就发挥自己的权利;
第三,学习linux,就意味着更快的开发效率,等更多关于软件本身或者说操作系统本身的理解,(给你装的系统里为ubuntu14.04,它已经封装的很臃肿了,但是考虑到你没有很多时间投入其中,所以给你装了它),但是怎么用它提高开发效率,需要你在学习的过程中不断总结
本学期对于Linux 系统的学习,让我对Linux 有了一定的了解。我知道了Linux 只是个内核。现在的Linux 操作系统,都是用这么一个内核,加上其它的应用程序构成的。Linux 最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,使其在金融、安全等部门有很重要的应用。
学习Linux ,首先我们应该从基础开始学起。对Linux 操作系统的功能、版本、特点,以及Linux 系统安装和图形环境有较全面的了解。 Linux 命令是必须学习的。虽然Linux 桌面应用发展很快,但是命令在Linux 中依然有很强的生命力。Linux 是一个命令行组成的操作系统, 精髓在命令行,学习如何在安全的环境中执行系统命令,包括有关文件、目录、文件系统、进程等概念,如何使用相应的命令对文件、目录、进程等进行管理,了解遇到问题时,如何找到帮助信息等。Linux 常用命令,有echo 命令、date 命令、passwd 命令、file 命令、ls 命令、touch 命令等。
要明白学好Linux 不是一件一蹴而就的事,一定要能坚持使用它,特别是在学习初期。要增加自己的Linux 技能,只有通过实践来实现。只要多动手,就一定会有收获。遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识。
应该说目前我们对于Linux 的学习只是入门而已,学习Linux 是一个长期的过程,很耗时间。作为通信专业的学生,对我们来说,Linux 将来有可能应用于嵌入式Linux 系统的开发,这非一日之功,我们还需要不断深入地学习它。
Linux哲学
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。
Linux的历史与环境
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
Linux完全免费,完全兼容posix1.0,多用户与多任务,良好的界面与支持多种平台。使得Linux越来越的得到重视。
Linux安装
Linux的安装推荐初学者使用虚拟机,推荐VMware Workstation player ,完全免费,避免了各种开源版本虚拟机的bug。之前我在win7机器上使用virtual box就得不到很好的支持。
如今安装Linux有很多方法。用光盘,u盘。通常的安装步骤:1、获得系统镜像;2、将系统镜像刻录进U盘(UltraISO);2、设置机器启动方式(如U盘启动),进行正式的操作系统安装步骤。值得一提的是分区的过程。首先认识一下Linux几个目录的功能。/ 是Linux的根目录;/dev是设备目录;/etc是配置目录;/usr是各种软件共享配置目录;/boot是启动目录,即Linux从这启动,现在计算机启动都差不多支持两种启动,以前安装是都是/boot中设置启动引导(grub引导),现在出现有EFI系统启动;/home是用户主目录;3、设置之后重启,如果是双系统还要设置引导,当然也可以从BIOS启动。
Linux初使用
Linux shell命令;shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面。 shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,shell script,来实现一些较为复杂的功能。了解shell命令另一方面就差不多掌握了解Linux的应用与功能。
Linux的软件包管理;主要有dpkg管理.deb软件包,rpm管理rpm包,apt和yum。apt和yum与dpkg和deb的主要区别是它们处理文件的依赖。
Linux使用中还要了解C语言编译的整个流程。(1)预处理:(Pre-Processing);(2)编译:(Compiling);(3)汇编:(Assembling);(4)链接:(linking)
1. 编译阶段先通过“编译器 “把一个 .c/ .cpp 源代码 编译成 .s的汇编代码 ;再经过“汇编器 ”把这个.s的汇编代码汇编成 .o 的目标代码
2. “连接器 “ 通过连接其他 .o 代码(如果需要的话)库文件和1中的.o 目标代码生成可执行文件
该文件流被这三种程序(红色)的加工,分别表现出四种形式(蓝色),这就是c程序的编译和链接过程。如果再详细的话,编译器在将源文件编译成汇编文件的过程又分为:预处理阶段(生成 .i代码)和 优化阶段。
服务器配置;
Linux由于其性能的作用及各类因素,占据着服务器市场的大量份额。Linux可以配置HTTP服务器;FTP服务器;samba服务;NFS等等。先来了解下Linux和Windows作为服务器的区别。无论是需求性,稳定性,操作性,安全性,性价比来比都优越于windows。例如;主机的稳定性是至关重要的,关系着网站的生存发展,如果稳定性不够好的话,就会影响用户的访问,也会影响网站的优化,导致没有排名,这对于用户体验度的影响是非常大的。通常来说,Linux稳定性要比Windows好些,因为Linux开源,一般很少有漏洞,就很少会招到网络攻击。再就是Windows的图形界面需要占很多资源,而Linux系统去掉图形界面的包袱,系统运行得更快。
不过其中学习Linux操作系统的时候学习到的思想到实际应用中来对于个人的成长来更为重要。学习Linux过程中个人对于文件系统的概念更为的了解加深了。 在LINUX系统中有一个重要的概念:一切都是文件。 其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。这样带来优势也是显而易见的
在unix中要了解文件系统,就要先了解文件链接的概念。在一个磁盘中有n个分区,一个分区又有自举块,超级块,柱面组等的概念组成的文件系统。柱面组下又分节点,数据块等。由磁盘,分区到文件系统一层一层的嵌套。
左图是Linux整体分层结构图。