0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

给Linux初学者的一些经验与建议与学习方法及其学习方向

Linux爱好者 来源:CSDN技术社区 作者:chopin11vip 2021-03-19 11:33 次阅读

这篇文章是写给 Linux 初学者的,我会分享一些作为初学者应该知道的一些东西,这些内容都是本人从事 Linux 开发工作多年的心得体会,相信会对初学者有所帮助。如果你是 Linux 老鸟,那可能就不需要再往下看啦

为啥要学Linux

作为从事 IT 工作的同学,对 Linux 系统一定不陌生。如今我们在各种领域都能看得到它的身影,比如,手机、服务器、嵌入式、电信设备、大型计算机,以及各种电子产品都离不开 Linux,它已经渗透到互联网世界的方方面面了。

包括那些火热的技术,比如云计算、虚拟化、容器、大数据、人工智能,几乎都是基于 Linux 技术的,那些平台系统,电商、团购、社交、新闻、快递,都是部署在服务器端,也几乎都是基于 Linux 技术的。

编程的世界中,Linux 就是主流,不会 Linux 你就可能会格格不入。如果你想进大公司,想学新技术,Linux 一定是一道绕不过去的砍,只有进入了 Linux 系统这扇大门,你才可能成为合格的软件工程师

企业服务器环境绝大部分都是 Linux 系统,所以不管你是从事前端、后端、运维、测试中的哪一类工作,Linux 都是你必须掌握的基础知识,只是不同类型工作需要学习 Linux 的方向不同而已。

经验与建议

下边的一些建议都是本人从事 Linux 开发多年的一些经验总结,相信会对 Linux 初学者有所帮助,当然如果有不准确的地方,还请指正。

一定要自己搭建Linux环境

Linux 系统学习是很重实践的,仅学习理论知识是不能真正掌握 Linux 的。我推荐在个人电脑上安装虚拟机,虚拟机的方式非常灵活,既可以提供 Linux 环境,也不会影响宿主机的正常使用。对于虚拟机软件的选择,可以考虑使用 VMware 或 VirtualBox 。虚拟机的快照功能一定要用好,尤其是对新手来说,它可以将你不小心搞坏的环境恢复到初始化状态,就像是重新安装了操作系统一样,从此妈妈再也不用担心我 rm -rf /* 了。

Linux发行版的选择

由于 Linux 的强大,目前存在太多的发行版本了,有些同学在选择上可能会有些纠结。这里我推荐选择使用 CentOS 就行,由于免费且稳定,国内企业服务器使用最多的就是 CentOS 了,使用上和 RedHat 几乎没有什么区别。当然你可以选择 Ubuntu 系统,国内服务器使用份额仅次于 CentOS。其实所有发行版都是基于 Linux 内核的,只是扩展了相关的系统组件和软件库,本质上都是 Linux 系统,学会了 CentOS 后就很容易上手其它版本的系统了,所以无需太关注和纠结这个问题。

一定要使用命令行

大部分初学者经常喜欢安装图形桌面,因为我们之前都习惯了 win 或 mac 的图形操作。但我强烈建议,安装系统时不要安装桌面,平时的操作和学习都坚持使用命令行。学习前期可能会比较痛苦,但熬过了阵痛期,熟练使用之后,就能享受到命令行带来的强大功能。命令行不仅功能强大,而且可以极大的提高效率,因为命令行就意味着能够自动化,自动化能为你释放很多重复性的工作,让你有充足的时间去学习更有价值的知识。另外,图形界面在 linux 系统上作为一个独立软件存在,会额外消耗服务器的资源,企业的服务器一定是不会安装图形的,所以需要你一定要在 Linux 世界中忘掉 windows 的思维方式。

Linux 是开源的

开源意味着你能够查看 Linux 源码,可以从代码层面理解系统实现的原理,这些可以让你达到一通百通、醍醐灌顶的效果,而不是简单的使用它。

养成安全严谨的良好习惯

对于初学者来说,虽然大部分时间是在虚拟机上操作,有快照的加持,可以毫无顾忌的进行各种实验性的操作。但我还是强烈建议初学者一定要养成良好的操作习惯:

1.经常备份重要的数据;

2.少用 root 用户进行各种操作;

3.敲命令不是越快越好;

4.服务器密码尽可能的复杂些,不要使用 123456 这类弱密码,服务器很可能被侵入当肉鸡;

5.服务器密码不要简单记录在文档上或 U 盘之类的移动设备上;6.对生产环境一定要有敬畏心。

如何学习?

高效的学习方法往往能够帮助你事半功倍,下边是我分享的一些自己的学习心得和方法,希望对大家有帮助。

一定要多实践

Linux 是一门实操性非常强的学科,初学者需要多敲命令,多实践和练习。与学习其它东西是一样的,大多时候我们不需要非得先将理论知识学的通透后才来实践动手,而是从实践中发现问题后再深度学习,这样效果可能会更好。

有效的学习方式

说到学习方式,每个人学习的方式可能不太一样。我推荐 视频 + 看书 的方式,视频教程可以让你快速上手,快速了解相关的概念,而看书可以更加全面的学习具体的细节,会让你有更多的思考,看书可以作为视频的补充和扩展。

思考,总结与归纳

不管以什么形式来学习,我们都需要对学习中的每个问题和概念认真思考,需要从 what、how、why 三个角度进行学习,作为学习的问题模板。学习任何新技术,我们都需要知道这个技术知识点的应用场景,以及能够解决什么问题,是否有类似的解决方案,此技术点有什么优势。

输出是一种高效学习方法

在学习过程中,必不可少的一个环节就是归纳和总结,总结就要输出,可以是文档形式的笔记或者其它。我比较推荐写博客,有条件的话一定要写,因为写博客可以帮助你更有效地、更系统的总结和学习。写博客是一种 教 的形式,如果能够将自己学到的知识在博客上清晰的讲清楚,教会别人,那才说明你是真正的掌握了它。如果博客写的不错的话也能为自己够积累影响力,对自己将来的求职也会有帮助。另外如果别人从你博客学习到了东西而且觉着不错的话,会给你点赞、留言、赞赏,这都是对你写博客和学习的正反馈,同时也能够刺激你保持学习的兴奋和激情,呵呵。

制定明确的学习目标

做任何事,有了目标才能够走的更远,少走弯路。我们学习 Linux 也一样,需要根据自己的实际情况,制定适合自己的学习目标。个人建议目标不要太大,时间周期也不要太长,要切合实际,比如制定三个月的学习目标。有了目标后,就要确定详细的学习计划,细化到每周需要完成的任务列表。注意,你需要为计划任务指定结果检验的方式,比如写一篇博客文章或是笔记,计划真实落地才是最困难的,因为执行力是一种稀缺资源。

坚持与激情,获得正反馈

学习是一件逆人性的事情,大部分人在遇到诸多问题后就很容易会放弃。1.合理的学习计划和结果输出,能够让你继续保持学习的激情;2.写博客、讨论交流等方式也可以获得正向的反馈,从而激励着你继续向前;3.坚持学习也能够帮你养成良好的习惯,无形中提高自己的执行力,个人认为这些收获可能远比具体的技术知识更加重要。

如何解决问题

在学习 Linux 技术的时候,初学者肯定会遇到各种 奇怪 的问题,面对这些问题时,我们要学会分析错误信息,尝试以目前学习到的技术来思考找答案。

如果解决不了,可以使用搜索引擎,对于初学者遇到的问题,百度一般都能够解决。如果实在解决不了,可以请教身边的高手,不过提问问题时,一定要描述清楚问题,带着谦虚请教的态度。

应该学习的基础知识

Linux 系统涉及的技术知识点非常广泛,学习者可以根据自己的实际情况,选择相应的主题方向进行学习,不可盲目的跟随他人的学习路线,有可能适得其反,学习效果事倍功半,得不偿失,所以选择适合自己的学习路线非常重要。

因为每个人将来从事的工作和方向不同,需要重点学习的内容也不一样,而且本文目标也只是分享给 Linux 初学者一些实用的经验心得,所以后边内容中只简单罗列了最通用和实用的一些技术,这些是学习 Linux 技术的所有同学都应该知道的技术知识点。

学习 vim

在 Linux 系统下,基本没有什么可以与之竞争的编辑器(不接受反驳),你只需要花费 1-2 天的时间来熟悉 vim 的基本使用操作即可,无需研究那些高大上的各种插件使用技巧。要知道 vim 的学习是有难度的,不过一旦熟练使用后,就会得心应手,能极大提高编辑效率。这里推荐陈皓的《简明 vim 练级攻略》。

简单的文件管理

这些都是一些非常基础的操作与文件的管理命令,如:ls、less、head、tail、du、df、ln 等,当然 find 是查找文件的非常有用的命令,功能非常强大。

基础的网络管理

常用的网络管理命令,一定要学会使用,这对平时工作或学习时的网络诊断和网络配置非常有用。比如 ip 或 ifconfig 等网络命令,还有网络诊断工具 netstat、ping、traceroute 等。

学些 shell 脚本编程

我们知道 Linux 特点之一就是命令行,上边我们说过,命令行就意味着可以自动化,自动化后就能够规模化。shell 脚本就是我们实现自动化的最有效的方式,因为 shell 程序是最擅长与 Linux 内核打交道的。我们可以利用 shell 脚本帮我们做很多重复性的工作,来释放我们工程师的双手去创造更大的价值。

熟悉作业管理

我们需要经常在命令行终端上管理应用程序,启动或关闭程序。你需要知道这些概念,如:进程、进程组、会话、终端,学会使用 jobs、fg、bg、kill、Ctrl-C、Ctrl-Z,以及信号的相关操作,需要知道 kill -9 到底是在干什么。

学习使用软件包的管理

国内最常用的 Linux 发行版是 ubuntu、centos,需要学会使用 apt-get、yum 命令来查找和安装相关的软件包,当然也要学会试着从源码编译方式安装软件。

学习简单的数据处理

我们在工作和学习中也会经常需要处理文本信息,Linux 在这方面提供了很多的工具,组合起来能够非常方便的实现强大的功能。常见的命令 sort、uniq、cut、split,还有 Linux 经典的三剑客 sed、awk、grep,这三个工具都是上古神器,功能非常强大,awk 还有专门的书籍来讲解它,可见功能之强大与复杂,我们初学者只需要熟练掌握一些常用的功能即可。

学会看文档

虽然不是具体的技术知识,但它却非常重要,初学者在学习命令时总是希望能记住所有的参数和选项,其实这些参数我们不需要记忆(大脑是用来思考的而不是存储的),我们可以通过 Linux 手册来查看,通常使用 man ifconfig 就能够查看该命令的官方文档说明,既准确又清晰。当然在遇到问题时,也可以查看手册来确认命令的使用方法是否正确。

Linux 系统涉及的技术知识点非常复杂,上述所分享的仅是一些必学基础知识,如果能够认真学习并够掌握好,基本上算是入门 Linux(存活的级别)。

如果你是运维方向,至少需要更深入的学习:用户管理、磁盘管理、系统日常管理、常见服务的搭建、高可用集群、系统监控等运维知识。

如果你是后端开发方向,至少需要更深入学些 Linux 操作系统、进程与线程、进程间通信、信号、网络编程、系统调用、Linux 内核等知识。

如果你是嵌入式方向,你至少需要深入研究 Linux 内核源码、设备驱动程序了。

编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11236

    浏览量

    209024
  • 网络管理
    +关注

    关注

    0

    文章

    118

    浏览量

    27661
  • IT
    IT
    +关注

    关注

    2

    文章

    860

    浏览量

    63479

原文标题:写给 Linux 初学者的一封信

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    《DNESP32S3使用指南-IDF版_V1.6》第章 本书学习方法

    都可以先去开源电子网搜索下,基本上你能遇到的问题,我们论坛都有人问过了,所以可以很方便的找到一些参考解决方法。如果实在找不到,你也可以在论坛提问,每天原子哥都会在上面大家做解答。1
    发表于 11-20 09:54

    什么是机器学习?通过机器学习方法能解决哪些问题?

    计算机系统自身的性能”。事实上,由于“经验”在计算机系统中主要以数据的形式存在,因此机器学习需要设法对数据进行分析学习,这就使得它逐渐成为智能数据分析技术的创新源之
    的头像 发表于 11-16 01:07 285次阅读
    什么是机器<b class='flag-5'>学习</b>?通过机器<b class='flag-5'>学习方法</b>能解决哪些问题?

    分享一些常见的电路

    理解模电和数电的电路原理对于初学者来说可能比较困难,但通过一些生动的教学方法和资源,可以有效地提高学习兴趣和理解能力。 下面整理了一些常见的
    的头像 发表于 11-13 09:28 236次阅读
    分享<b class='flag-5'>一些</b>常见的电路

    嵌入式学习建议

    的平衡,要在理解软件工程基本原理基础上理解硬件构件与软件构件等基本概念。 以上建议,仅供初学者参考。当然,以上只是基础阶段的学习建议。要成为良好的嵌入式系统设计师,还需要在实际项目中
    发表于 10-22 11:41

    初学STM32的常见误区与解决方法

    对于初学者来说,STM32是种功能强大但也相对复杂的微控制器平台。许多人在学习了几天后,常常会感到困惑和迷茫。这种情况并不罕见,尤其是在缺乏扎实基础的情况下直接接触这样复杂的芯片。这篇文章旨在
    的头像 发表于 09-05 08:00 445次阅读
    <b class='flag-5'>初学</b>STM32的常见误区与解决<b class='flag-5'>方法</b>

    《DNK210使用指南 -CanMV版 V1.0》第章本书学习方法

    1.2 本书参考资料1.3 本书编写规范1.4 本书代码规范1.5 例程资源说明1.6 学习资料查找1.7 初学者建议 1.1 本书学习
    发表于 08-28 17:57

    深度学习中的无监督学习方法综述

    应用中往往难以实现。因此,无监督学习在深度学习中扮演着越来越重要的角色。本文旨在综述深度学习中的无监督学习方法,包括自编码器、生成对抗网络、聚类算法等,并分析它们的原理、应用场景以及优
    的头像 发表于 07-09 10:50 576次阅读

    国内哪家的FPGA适合初学者

    如题,想着手学习FPGA的话,国内哪家的比较好,更适合初学者学习?这方面的经验,是点都没。
    发表于 04-14 19:17

    细谈SolidWorks教育版的一些基础知识

    SolidWorks教育版是款广泛应用于工程设计和教育领域的三维建模软件。它具备直观易用的操作界面和强大的设计功能,为学生提供了学习和实践的平台。在本文中,我们将详细探讨SolidWorks教育版的
    的头像 发表于 04-01 14:35 325次阅读

    单片机开发好学吗?学习中有哪些乐趣与挑战?

    提到单片机学习大家都会觉得难学,事实真的是这样吗?今天就来探讨一些单片机学习的那点事儿。对于许多初学者来说,刚开始接触单片机编程可能会感到
    的头像 发表于 03-28 08:04 1835次阅读
    单片机开发好学吗?<b class='flag-5'>学习</b>中有哪些乐趣与挑战?

    新手学习单片机最常见的六大误区!

    ,扮演着至关重要的角色。然而,学习单片机并非帆风顺,初学者常常会面临各种挑战和困惑。因此,了解并避免新手常见的误区,将有助于使学习过程更加顺利和愉快。新手
    的头像 发表于 03-28 08:03 786次阅读
    新手<b class='flag-5'>学习</b>单片机最常见的六大误区!

    盘点那些硬件+项目学习套件:STM32MP157 Linux开发板及入门常见问题解答

    来盘点下,比较受欢迎几款“硬件+项目”学习套件,以及一些初学者比较关注的问题。 盘点:STM32MP157
    发表于 02-01 14:25

    值得多看的FPGA 学习路线

    网上看到篇文章,对于初学者很有用,学习的过程和注意点都很详细,值得大家分享分享 出处: https://zhuanlan.zhihu.com/p/345303288 以下是部分摘要
    发表于 01-02 23:03

    请问初学者要怎么快速掌握FPGA的学习方法?

    对于初学者 FPGA的编程语言是什么? FPGA芯片的基础结构也不了解. FPGA开发工具的名称和使用方法都不知道. 要学的很多啊,请问有什么自学的学习方法么?
    发表于 01-02 23:01

    Linux常用命令自学手册》+试读报告

    高级命令的讲解,这些命令通常被认为是比较复杂的,但是通过本书的讲解,读者可以轻松掌握这些高级命令的使用。 总的来说,《Linux常用命令自学手册》是本非常实用的Linux命令行手册,无论你是
    发表于 12-14 16:59