我的Linux学习历程:那些我看过的Linux书籍们
[+]查看原图http://www.ituring.com.cn/article/119401
来北京工作已经一个多月,大都市的生活比起读大学要忙碌得多,尤其是出行,基本以小时为基本的计时单位。有时茫然看着窗外车水马龙,会有些迷茫自己选择的是对还是错。
题外话不多说,回归这次的主题,扒一扒我看过的那些Linux相关的书籍。
对于Linux的了解和接触,缘起自大一时候的Linux限选课,老师说这门课可选可不选,但是选修后考试挂了的话需要补考。当时的我还比较爱学习,于是兴冲冲地选修了这门课,用的是清华大学出版社出版的《Ubuntu Linux应用技术教程》。这本书写的并不是很好,里面对于图形界面的叫法还是最原始的XWindows,此书一大半都是基于图形界面说什么安装啊、应用软件使用啊、7788的。但也简单讲了bash
的使用和常见的命令,比如ls -all
然后用管道|
将输入导入至wc -l
来计算文件数,还有一些简单的vi编辑器的使用,Shell脚本的写法。
当时因为才开始学的原因,什么都不懂,渐渐地,也就失去兴趣没怎么好好学。课程对应的实验都是和老师卖萌才过的,考试的时候也就是背了一下往年的考题,考完就忘得一干二净。现在想起来,还有点小后悔。
本以为噩梦就此结束,我与Linux应该是老死不相往来,作为一名从小学四年级就开始学习使用Windows的用户,我真的很难适应和使用Linux。可是大二学习操作系统原理的时候再一次无奈了,我们的一切实验的环境都是在Linux下面,使用那些基本fork()
pipe()
等Linux下面的C函数进行操作系统的实验。当时在极其痛苦的情况下重拾课本,花了整整一周时间去学习使用Shell,学习简单的C语言(妈的,看的是谭浩强的书),会用vi来编辑,会手动写Makefile使用gcc编译。
这期间通过学长的介绍知道鸟哥这位Linux大牛,开始阅读他的《鸟哥的Linux私房菜》。很遗憾的是,鸟哥的教程是基于CentOS来介绍的,看完开头极其冗余复杂的安装部分,我就“阵亡了”。“妈妈啊,快来救我,Linux怎么这么复杂,什么Ubuntu、什么CentOS,还完全不怎么一样。”
真正意义上接触并使用Linux,严格意义上说还得感谢“笨兔兔”这位Linux大牛。当时 Ubuntu 12.04 正好才出,本着不装逼就不会死的精神,我安装了这个系统,准备弄个双系统来装装逼。在研究如何配置 Ubuntu 12.04 的时候正好搜到了笨兔兔在他的博客发表的配置博文,当时也就是按照教程一行一行地复制粘贴命令。稍微知道如何使用 PPA 来安装 Ubuntu Tweak (一个国人写的对Ubuntu进行简单定制和优化的软件,你可以理解为Win里面的360)。这期间阅读他的博客,接触到深度的Linux发行版Deepin Linux。
什么?专门为国人打造的便于国人使用的Linux?不错,装!
在我安装使用后立刻就被它的界面所吸引,坦白说 LinuxDeepin 12.04 真的很优秀,它基于Ubuntu 12.04 的基础上,去掉了那个真的超级丑超级难用的Unity,美化了各种常见的组件。直到现在,我家里上大学前的台式机还装的是此系统。
当时逛Deepin社区的时候,看到懒蜗牛Gentoo的《Linux入门很简单》出版了,看完电子版前2章后我就被此书深深地吸引了。真的,它一点都不枯燥,语言十分浅显风趣,内容也简单使用。实体版到货后我立刻通宵2天把它看完,虽然最后部分的程序编译有点云里雾里,但是基本的日常使用已经无碍。
这个时候Linux已经基本被我用于日常的装逼,每当我在自习室前排用着Linux上网,常常会以一种看土鳖的眼神看着那些 Mac 上装 Windows 的同学,心里暗自发笑。
故事本该到了这里就结束,反正Deepin日常使用已经无碍,还有什么好学的。可命运就是这么神奇,它往往会在你最得意的时候给你浇盆冷水,让你“压压惊”。
那时已经到了13年,我开始迷恋上写博客,在学校组团参加CCF大会的时候接触到阿里云,和阿里云的销售一聊天,他大手一挥给了我一张半年的代金券,此券也开启了我新的Linux学习之路。
下单安装ECS系统,果断Linux,选择系统的时候果断装逼,Ubuntu和Deepin一样,咱不屑于使用,咱要用CentOS。等云主机资源分配好可以运行时,我就傻眼了。纳呢,没有图形界面!只有一个简陋的Shell界面!这不是坑爹么!
没有熟悉的 apt-get,没有了熟悉的软件报名,我不得不重拾大一的课本继续蛋疼地看那些常见命令,yum 的使用也让我蛋碎一地。等我使用 yum 搭建好 LAMP 环境嘚瑟地在一个主机交流群里面炫耀时,某位大神(这里他要求不透露姓名)很是鄙视地说:现在流行LNMP,流行编译源代码。
得,你丫瞧不起我是吧,我也给你整出来……
这期间学会了很多,参考了各种官方文档、手册、教程,一点点学会如何wget
源码包,如何解包。看着./configure --help
后面的一大串长到吐的参数一点点配置,看着make
时候屏幕上滚动的各种debug信息暗自发呆。有时候为了解决一个简单的缺少依赖的问题Google一整个下午。即使是最后的编译完后,make install
之后的配置也让我头疼万分,Nginx与FastCGI的交互,php-fpm的配置,MySQL的优化等等……
很庆幸有这么一段黑暗的学习经历,因为真正的动手学习配置才对 Linux 有了深入的了解。当然,用前女友云儿的话说:装逼是要付出代价的。因为对 Linux 本身产生了极大的兴趣,这期间也读了很多设计的书籍,比如那本《Linux/Unix设计思想》。我至今依旧记得那个经典的小即是美的设计理念,没有代码层面的讲述,全书薄薄的一册介绍了各种Linux相关的编程理念,十分经典。
还有就是那本《Linux内核设计与实现》,当时因为上选修课需要用到此书,在老师的讲授下结合以前学过的操作系统知识,真的能学到很多东西。比如,如何时间调度,如何实现排序,如何中断……
2013年年底买了Kindle,又一次开始了我的新的Linux学习之路,当时国行还没上市。因为学生党,兜里银子少,就买了日货。可是问题由此而来,日版没有中文界面。在研究时发现Kindle官网部分开源了Kindle的源码,于是我便萌发了自己编译Kindle内核来装逼的想法。从基础的交叉编译工具链的搭建,到内核源码的定制配置,BusyBox的编译,UBoot的定制,还有Eink驱动的移植……
因为涉及的东西很多很杂,在别人的指导下先看完了LFS手册,本着不装逼就不会死的原则先行尝试编译LFS,然后慢慢上手嵌入式系统的编译。因为基础比较薄弱的问题(连Shell脚本都不会写),又买了一本《Unix&Linux大学教程》读完。
说了这么多废话,该讲讲今天参加图灵活动赠送的书籍《Linux就是这个范儿》。如果不是图灵市场部的英子姐姐在读者交流群里面公布了这个新书发布会,很有可能我就这的与这本好书擦肩而过。这本书是由阿里巴巴的两位大牛赵鑫磊和张洁写的,赵老师一直在淘宝大学里面做Linux的培训,此书的前身就是他的上课讲义。
书的内容真的很全很全,但很遗憾的是它不够细,可能是限于篇幅的原因,很多都只是简单介绍,一带而过。但是书籍的编写语言却十分风趣幽默,初看此书的第一眼,就有一种在看《Linux入门很简单的感觉》,十分亲切。
整个图书发布会上,张洁老师的精彩演讲,赵老师的健谈和广泛的知识面都让人印象十分深刻。很多问题,从他们的口中都能得到很好地解答。我曾经一个glibc的依赖问题将整个系统yum仓库弄坏,和赵老师交流时竟然发现他也有相似的经历,当然结果是无解。(╮(╯▽╰)╭)
还记得赵老师在《Linux就是这个范儿》一书开头的那个“黄色冷笑话”,简单回顾一下我这短暂的2年Linux学习历程。其实很容易发现,学习,就像爬山一样,没有平坦的大道,需要努力地去攀登,即使途中某段是平面,那是因为后面还有更加陡峭的阶梯等待着你去攀登。
学无止境!
原文地址:http://little.cat/posts/this-is-the-linux/
我的Linux学习历程:那些我看过的Linux书籍们的更多相关文章
- Linux学习历程——Centos 7重置root密码
一.自述 最近刚刚接触linux,因为我设置密码比较随性,把自己做系统的时候设置的root密码给forget,每当系统崩溃,重新把虚拟机备份还原后,就面临无法登陆的尴尬情况,只得重置root密码,好了 ...
- Linux学习历程(持续更新整理中)
1.文件目录操作命令 (1) ls 显示文件和目录列表 a ls -l 显示文件的详细信息 b ls -a 列出当前目录的所有文件,包含隐藏文件. c stat '目录/文件' 显示指定目录 ...
- Linux学习历程——Centos 7 ps命令基础
一.ps命令介绍 ps命令是Process Status的缩写,用于查看系统进程状态,ps命令输出值非常多,通常结合管道符使用. 二.实例 1.我们直接输入ps命令,不加任何参数. 可以看到默认输出4 ...
- Linux学习历程——Centos 7 账户管理命令(用户篇)useradd usermod userdel
一.命令介绍 useradd 用于创建新的用户 usermod 用于修改用户属性 userdel 用于删除用户 -------------------------------- ...
- linux学习(二)——汤哥的推荐书籍
成为一名精通 Linux程序设计的高级程序员一直是不少朋友孜孜以求的目标. 根据中华英才网统计数据,北京地区 Linux 程序员月薪平均为 Windows程序员的 1.8 倍.Java 程序员的 2. ...
- Linux学习历程——Centos 7 ls命令
一.命令介绍 ls命令用于显示目录中的信息. ----------------------------------------------------------------------------- ...
- linux学习历程
1.linux初步介绍:2.linux的第一次接触:3.linux用户管理4.linux常用命令(3600+个).5.linux下所有者,所在组和其他组的介绍6.linux下文件和目录权限机制 lin ...
- Linux学习历程——Centos 7 find 命令
一.命令介绍 find 命令用于按照指定条件来查找文件. 一些比较常用参数如下表 参数 作用 -name 匹配名称 -perm 匹配权限mode为完全匹配( –mode包含即可) -user 匹配所有 ...
- Linux学习历程——Centos 7 grep命令
一.命令简介 grep 命令用于在文本中执行关键词搜索,并显示匹配的结果. 由于grep命令参数很多,这里只列出一些常用的参数. 参数 作用 -b 将可执行文件当作文本文件来搜索 -c 仅显示找到的行 ...
随机推荐
- Android动画之二:View Animation
作为一个博客<Android其中的动画:Drawable Animation>.android动画主要分为三大部分.上一篇博客已经解说Drawable Animation的使用方法,即逐帧 ...
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context}
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to'org.eclipse ...
- Oracle trunc()函数
Oracle trunc()函数的用法 --Oracle trunc()函数的用法/**************日期********************/1.select trunc(sysd ...
- [LeetCode107]Binary Tree Level Order Traversal II 二叉树层次遍历
题目: Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from ...
- java中用正則表達式推断中文字符串中是否含有英文或者数字
public static boolean includingNUM(String str)throws Exception{ Pattern p = Pattern.compile(" ...
- pragma once与#ifndef的作用有什么区别
#pragma once 这是一个比较常用的指令,只要在头文件的最开始加入这条指令就能够保证头文件被编译一次 #pragma once用来防止某个头文件被多次include,#ifndef,#defi ...
- OCP-1Z0-051-题目解析-第14题
14. Using the CUSTOMERS table, you need to generate a report that shows 50% of each credit a ...
- JS call与apply
JS的call与apply call和apply是JS中比较重要的两个方法, 一般在框架和组件设计中用的较多,比如jQuery Code. 那么这两个方法是做什么的呢,下面我们通过代码来了解: 1 f ...
- Windows 驱动发展基金会(九)内核函数
Windows 驱动发展基金会系列,转载请注明出处:http://blog.csdn.net/ikerpeng/article/details/38849861 这里主要介绍3类Windows的内核函 ...
- 大约linux的几个问题,你能回答几个?--回复14-20称号
14.select和poll差异?Poll和epoll的差别? (1)select和poll的差别:(參考:http://blog.csdn.net/mituan2008/article/detail ...