当前位置: 首页 > news >正文

本科理工男如何学习Linux

我是一个本科学电子的理工男,但是一直对计算机感兴趣,所以平时自己在课下喜欢学一些与计算机有关的东西。由于对计算机感兴趣,所以后来我参加了学校的计算机社团,在那里接受一些培训和指导。当时在社团里看到师兄在弄Linux,我这才接触到了Linux。不过当时只知道Windows系统,并不知道除了Windows,世界上还存在其他的操作系统。所以就很好奇,并在师兄的指导下,在电脑上装了个系统,便开始了一番探索,当然开始也是很迷茫的,也走了一些弯路。
接下来我就浅谈一下如何学习Linux,当然我也是个初学者,所以哪里有不对的地方,还望指正。
本科理工男如何学习Linux
首先,应该为自己创造一个学习linux的环境--在电脑上装一个linux系统。由于Linux发行版众多,但是大同小异,所以我们首先找到适合我们的版本。所以下面我将为你介绍几款十分流行的Linux发行版本,希望对你的选择有所帮助。

Debian运行起来极其稳定,这使得它非常适合用于服务器。Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Redhat是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。Arch是一款采用滚动发行方式的操作系统:只要安装一次就够了;每当发行了某个新版本,就可以升级发行版,不需要重新安装。OpenSuse这款Linux发行版是免费的,并不供商业用途使用,仍然供个人使用。此外还有很多出名的发行版本,不再列举。原则是:我们没有必要把时间浪费在"装系统"上而应集中精力学习最有用的东西。如果你并不打算深入学习linux,而是只是想像使用Windows一样进行日常的办公还有娱乐等,那么国内的优麒麟,红旗、deepin等中文linux操作系统同样是不错的选择。
好了,以上就是我对操作系统的推荐。下面你需要做的就是安装属于你的Linux操作系统了。我强烈建议:自己亲自动手把linux装到你的硬盘或者虚拟机上,你必须学会独立安装linux系统的技能。虽然第一次安装Linux会遇到很多的问题,而且安装过程中为有很多地方都不懂,但是你一定要亲自动手尝试安装。你可以去网上找一篇文章跟着安装,如果哪里不懂或者不知道怎么做,你可以通过百度来解决问题,总之, 你一定要学会安装Linux系统。当你第一次安装成功后,你会发现你特别有成就感,并且你会在安装过程中学到很多东西。

等你安装完Linux系统后,真正的学习就要开始了。我们应该掌握至少50个以上的常用命令:

  1. 理解shell管道"|",文件流重定向">"及追加">>"等;
  2. 熟悉Gnome/KDE等X-window桌面环境操作;
  3. 掌握.tgz.rpm.biz等软件包的常用安装方法;
  4. 学习添加外设,安装设备驱动程序(比如modem);
  5. 熟悉Grub/Lilo引导器及简单的修复操作;
  6. 熟悉系统固有目录的名称及学会用mount命令访问其他文件系统;了解vi,gcc,gdb等常用编辑器,编译器,调试器学习linux环境下的简单组网。

个人建议:买一本不需要太厚的linux教材,大致可以满足要求。(现在的书越来越多了,还带很多图,我当时可没这么多书:)这里我要推荐一本我入门时候学习Linux的书籍《Linux就该这么学》。这本书在我看来,是你入门Linux的绝佳选择。可以让你很快的就上手Linux系统。我本人就是看着这本书一点点从入门到精通的。

后续我们需要学点高级的了。比如shell编程。shell是命令解释器,是内核与用户界面交流通道,shell写的小脚本有点类似于win下的.bat但shell比.bat强大的多,shell不只是解释命令,更是一种编程语言,有时候几百行的c用shell几十行就能代替完成工作,因为shell的工作方式建立在系统已有的众多应用程序之上这也是Linux中的一个重要思想。

接下来,如果你决定深入学习Linux的话,我个人理解的读linux内核需要的基础:在此之前,希望先把应用层的东西学一下,那样会比较好理解。

首先我建议你学C语言,如果学过潭浩强的大学教科书,然后再去看《C Primer plus》,建议再看一下《The C Programming Language》,《C陷阱与缺陷》,《C专家编程》,《C\C++深层探索》等等。反正经典书看多了是没有坏处的。然后开始看数据结构(离散数学),这是计算机专业的核心课程,重要性我就不说了。接下来,我们需要学习操作系统原理和微机原理/组成原理,看懂这个再去读linux内核源代码吧,那时候你就会知道Linux是多么伟大的杰作了。

转载于:https://blog.51cto.com/14164498/2347009

相关文章:

  • [洛谷P2511][HAOI2008]木棍分割
  • C语言之路-2-判断
  • JavaScript面向对象名词详解
  • java对象拷贝最完全解说
  • JVM,DVM,ART
  • 微软工程师认为 Mozilla 也应该拥抱 Chromium
  • 司法部:做好春节期间在押罪犯的离监探亲工作
  • 斯内德将出任2020欧洲杯荷兰地区形象大使
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • 使用Jmeter输出错误响应结果到日志
  • Hunt framework 2.0.0 发布,简单且高性能的 Web 服务框架
  • 补贴退坡幅度进一步加大 新能源汽车会涨价吗
  • Linux基础_软件包管理
  • Nginx配置文件的高亮显示设置
  • 【leetcode】983. Minimum Cost For Tickets
  • 分享一款快速APP功能测试工具
  • [LeetCode] Wiggle Sort
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 77. Combinations
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Python实现BT种子转化为磁力链接【实战】
  • Redis 中的布隆过滤器
  • win10下安装mysql5.7
  • 动态魔术使用DBMS_SQL
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 关于字符编码你应该知道的事情
  • 三栏布局总结
  • 删除表内多余的重复数据
  • 深入浏览器事件循环的本质
  • 与 ConTeXt MkIV 官方文档的接驳
  • ​学习一下,什么是预包装食品?​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #、%和$符号在OGNL表达式中经常出现
  • (20050108)又读《平凡的世界》
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (第27天)Oracle 数据泵转换分区表
  • (万字长文)Spring的核心知识尽揽其中
  • (一)kafka实战——kafka源码编译启动
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)3D模板阴影原理
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET 依赖注入和配置系统
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .Net下的签名与混淆
  • .Net中的集合
  • .Net组件程序设计之线程、并发管理(一)
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [20180129]bash显示path环境变量.txt
  • [C++]18:set和map的使用
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云