我与Ubuntu的5年共成长

初次接触Ubuntu那还是2010年的初夏,那年大学二年级即将结束,为了增加计算机学院学生的技术能力和就业竞争力,学校组织了很多培训机构、公司企业来学校做技术宣讲、分享等

记得有一个企业是做Mp3 Mp4之类的嵌入式单片机开发的,大二那年也正好有《数电模电》的课,加上平时自己研究各种装操作系统的奇葩方法的经历,立刻产生了浓厚的兴趣,期间仔细的讯问了那位用笔记本给Mp4烧制rom的大叔,大叔操着一口浓重的陕普给大家介绍什么是“嵌入式”,其实我一点都不在意这个,而是瞅着他的笔记本操作系统十分好奇的看来看去,我一言不发地在人群中只是观察他的笔记本,等分享结束大家快走得没剩几个人的时候,大叔注意到我的“醉翁之意”,说道“哦,这个操作系统不是你们常用的windows,他是Linux,准确点是Ubuntu,这样吧,你有U盘的话拷给你,安装方法跟windows没啥区别,建议你用虚拟机装...”

我被大叔的洞察力惊倒了,于是就拿出随身携带的8G 金士顿U盘拷贝了那个几百兆的Ubuntu ISO镜像文件,大叔全程很和蔼,他非常仔细得跟我介绍他的工作以及行业,短短的几分钟,Linux、ssh、ROM、烧制、boot、嵌入式等等新的一些列概念飞入我的小宇宙,好了,我心满意足的带着U盘和大叔挥手告别,然后一路上思索着回到了宿舍

Ubuntu 10.04

当我用ISO烧制工具将镜像文件烧制到u盘时才清楚的在烧制工具里看到Ubuntu 10.04的字样,然后是一个高个子“企鹅”令我印象深刻。

紧接着我就尝试在我的Lenovo y460上安装Ubuntu了,那个时候我的操作系统只是也就只是停留在 usb boot 引导安装然后写入硬盘,等待展开并进入硬盘boot。

第一个大坑
装Ubuntu的时候看到这个界面,那时的我是一脸懵逼,完全摸不着北,来回试了多次,现在的我已经有了自己的理解

  • / 根挂载点是Linux操作系统的文件系统的根节点,可以用html或者xml那种dom结构来理解;
  • Linux操作系统里所有东西都被视为文件,目录也是文件;
  • / 节点下可以自定义很多挂载点,例如home,dev,等等
  • Linux的文件系统跟windows的格式不一样,我的理解是磁盘上的0 1 byte数据的布局不一样,进而导致二者在文件系统上的不一样处理,比如Linux就没有“磁盘分区”一说,你可以随意挂载已知的外设到你制定的dom节点上,也就是说Linux其实是可以识别windows的文件格式的,而相反windows去浏览Linux的磁盘文件就很吃力;
  • SWAP交换分区,相当于windows的虚拟内存,这个一般来讲如果你的内存小于4G你就设置为内存的2~2倍大小,内存大于4G就可以考虑等于或者略小于内存大小;
  • EFI,这个是2008年开始由几大硬件生产商以及微软等巨头共同协定的一套新的区别于BIOS的架构,我的理解是它首先是系统引导;其次,需要主板支持EFI;再次,多个操作系统可共用一块磁盘上的EFI区域。也就是说EFI是一种将所有操作系统共享同一台机器的新型BIOS;

第二个大坑

如果一切顺利,在输入玩用户名、密码、机器名之后你会迅速在一个拨浪鼓的声音中来到Ubuntu的桌面,是不是很惊呆?网卡、声卡、显卡都不用管就可以使用,不像windows那么坑;

  • 第一个快捷键:Ctrl+Alt+T可谓是最常用的了,呼出你的Terminal Console就可以随意挥洒Linux的命令行了,不过在敲命令行之前或许你需要学习一下Shell;shell的发展史也是很悠久的,目前Ubuntu上默认都是bash;系统的学习一下shell脚本会使你很多地方后知后觉。
  • 界面设置:点击桌面上的齿轮进入System Setting就可以设置很多类似windows上的诸如桌面壁纸、分辨率、主题、等等的配置了。
  • 安装java:或许其实根本不必安装,你在Terminal里试一下敲当初学java在windows dos窗口上敲过的指令就可以确认java有没有存在了。答案是必须的,ubuntu已经默认安装了Open JDK,当然不是最新的,但是如果你有强迫症你就没办法了,反正我就是强迫症,这里暂且记下这第二个大坑里的第一个小坑

好累,忙了半天终于装好Linux了,听会儿歌看个视频休息会儿吧,于是我打开FireFox(第一次接触这个浏览器)进入百度Mp3打算听会儿歌:

结果一脸蒙逼了,诶?明明音乐滚动条在走动,咋没声音呢?
一脸委屈的我看着这个陌生的操作系统感觉啥也不会了
好吧,还是去windows下听歌吧,于是点击关机键选择重新启动
坐等几分钟,待主板intel的log一闪而过之后发现整个世界都不好了,什么?oh no 我的win7呢?(⊙o⊙)尼玛 !逗我?
已经是晚上10点多了,11点就熄灯了,这可如何是好?
正在我捉急的时候宿舍一哥们儿说:windows还在呢,你现在得去手动编辑MBR引导,把windows的引导序列加上去

  • Windows MRB引导丢失:早期的Ubuntu安装过程中如果操作不对有非常大的几率重新覆盖掉已有的MBR信息,因此早期版本13.04之前在一台已经安装windows的机器上安装Ubuntu的时候经常要注意MBR写入问题,如果windows找不到了不要慌,在Ubuntu下手动编辑下即可,具体操作找度娘很多资料的,这里不再赘述;
  • 显卡驱动问题:自从在Ubuntu上装steam玩cs起,我变发觉显卡明明是独立的,为什么还是很卡,最终才找到Y460原来是独显集显可切换的,真是汗了一地,在早期版本中可以在SystemSettings -> Software&Updates的Addtional Drivers tab页中找到额外的驱动程序,当然咯,需要进入bios手动设置为独显模式,如果通过Ubuntu仍无法自动发现并安装显卡驱动,那么你可以查到你的电脑显卡的具体型号然后去官网上去下载linux的驱动源码,构建过程在对应显卡的官网上都是有说明的,我只记得经常用到service lightdm start&stop;
  • 蓝牙、WIFI驱动:如果也是发现不了那也可以采取如上同样的办法去下载源码进行编译,如今很多驱动都会托管在github上,基本上在readme的指引下就可以协助开发者进行编译并构建出可执行的安装包,具体怎么做度娘页不少,个人建议用google比较直截了当;

曾被人嘲笑坚持不了多久

  5年里曾经有很多android开发程序员看到我用ubuntu操作系统后不约而同的来一句“唉 也就是玩玩 看着吧,过几天你就再也不用了”;每次听到类似的话语我都是笑呵呵的回答“贵在坚持”!

  1. 为了掌握Ubuntu首先得必须能够正确得认识操作系统的原理,简单的安装系统以及多系统配置管理以及切换都是最基础的能力;
  2. 接下来就是系统化的清除Linux的发展历史,京东上随便买本Linux的指导书都可以得到所有需要的一切,文件系统、内核boot步骤、以及一系列Linux锁特有的属性,然后学会shell编程,至少学会如何用shell脚本完成Bash中通过手动输入才能执行的命令;
  3. 紧接着要掌握Linux的用户体系,经常见到有些新手一上来就是root用户,最后导致各种permmision的问题,要搞清楚chmod、chown这两个命令的用法;
  4. 学会修改hosts,github上很多,或者可以尝试有偿使用vpn的方式,为使用google做保障,为什么呢?因为我想表达“遇到问题要善于第一去查资料”
  5. 解决了问题要善于总结和存储,使用chrome浏览器可以同步你的浏览器大部分网上常用的账号密码、以及收藏,对收藏分门别类便于今后使用

  就这样,反复的摸爬滚打,反复的装Ubuntu系统保守估计有100多次了,有时候桌面不见了?有时候鼠标不见了、有时候缺少依赖的so,又或者32位库在64位机器上招不到等等问题,但都一一克服

总结 

  与Ubuntu共相随的这5年,从10.04到16.04,几乎每个版本我都有亲力亲为,遇到问题处理问题遇到不知所错的情况每每能够最终找到解决方案,这离不开google、stackoverflow、github、javaeye、cnblog、csdn等等很多互联网上的免费分享,得益于他人的“分享”我不断的自我强大,从不知所错一脸茫然到现在Ubuntu上各种比跟Windows玩得还6的样子,我在成长,它也在成长!

  曾经的我成长在别人的分享中,如今的我带着感恩的心成为乐于分享的一员

时间: 2024-10-12 16:02:38

我与Ubuntu的5年共成长的相关文章

Linux下yum订购具体解释

1.描述 yum = Yellow dog Updater, Modified/删除/更新RPM包.它能自己主动解决包的倚赖性问题.类似于Ubuntu的apt.它能便于管理大量系统的更新问题. 配置文件:/etc/yum.conf 特点: *能够同一时候配置多个资源库(Repository) *简洁的配置文件(/etc/yum.conf) *自己主动解决添加或删除rpm包时遇到的倚赖性问题 *使用方便 *保持与RPM数据库的一致性 2.命令 yum install yum-fastestmirr

Linux下yum命令详解

1.简述 yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.类似于Ubuntu的apt.它能便于管理大量系统的更新问题. 配置文件:/etc/yum.conf 特点: *可以同时配置多个资源库(Repository) *简洁的配置文件(/etc/yum.conf) *自动解决增加或删除rpm包时遇到的倚赖性问题 *使用方便 *保持与RPM数据库的一致性 2.命令 yum install yum-fastes

Memcached初体验及原理解说

1.简单介绍 Memcached 是一个 高性能的 分布式 内存对象缓存系统,用于动态Web应用降低数据库负载,提升性能. 2.试用场景 1.变化频繁,具有不稳定性的数据 (比方用户在线状态.在线人数..) 2.门户站点的新闻等,认为页面静态化仍不能满足要求,能够放入到memcache中. 什么样的数据不适合放入memcached中? (银行,股票.证券系统.) 过大的数据不能放入到memcache(优酷网.) --我自己的一个小结怎样决定是否使用memcached --假设是一个小站点,pv值

Hadoop读书笔记(八)MapReduce 打成jar包demo

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 Hadoop读书笔记(三)Java API操作HDFS:http://blog.csdn.net/caicongyang/article/details/41290955

Hadoop读书笔记(六)MapReduce自定义数据类型demo

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 Hadoop读书笔记(三)Java API操作HDFS:http://blog.csdn.net/caicongyang/article/details/41290955

Hadoop读书笔记(四)HDFS体系结构

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 Hadoop读书笔记(三)Java API操作HDFS:http://blog.csdn.net/caicongyang/article/details/41290955

Hibernate复习(七)常见的映射类型B

1.继承关联映射 1.1继承关系映射到多张表 配置: <class name="Product"....> .... <joined-subclass name="" table=""> <key column="t_product_id"/> <property ... /> </joined-subclass> </class> 基本操作:  保存:

KeyMob移动广告聚合平台简介

现在很多开发者在进行APP应用盈利模式思考的时候,都会把广告平台列为首选,其中有很大一部分的个人APP,广告平台就是APP应用盈利的唯一形式,APP应用盈利形式太单一,收益就会附带上太多的不确定因素,比如收入低.平台不稳定,等等. KeyMob移动广告聚合平台隶属湖南常乐网络旗下程序开发部.程序开发部共有团队成员30多人,其中包含产品技术部.客服.互联网营销部等.各部门各司其责,运转有效,保证广告平台能更好的服务于各位开发者. KeyMob移动广告聚合平台支持百度广告.admob广告.广点通.m

KeyMob聚合顶尖的移动广告聚合平台

广告收入一直是APP应用收入的重要来源,很多APP应用都是依靠广告平台赚取收益,由此可见广告平台对应用及开发者的重要性.尽管现在市场上的广告平台非常多,平台非常丰富,但是平台的品质良莠不齐,开发者的利益仍然得不到保障. 为了让开发者更加专心运营.安心赚钱,一直致力于为开发者提供平台解决方案的KeyMob也推出了与开发者关系密切的移动广告聚合平台--KeyMob聚合.广告平台,意在帮助更多开发者持续获得收入,帮助APP应用取得长久发展. 依托KeyMob移动广告聚合平台强大资源聚合能力,KeyMo