如何学习linux的建议 linux 学习心得

如题所述

一.为什么要学linux?

  当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!

  二.起步

  你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix

  如何选择版本:北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的linux开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。

  对于初学linux的人来说,我建议是使用redhat,原因如下:

  1)现在很多书都是以redhat为例讲的,为了与书本协调一致

  2)周围的人都用redhat,交流比较方便

  3)redhat应用范围广,有典型性和代表性

  4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上而应集中精力学习最有用的东西。

  【注】现在觉得RH很死板,AS,ES等用在服务器上或许不错,Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake,因为她长得漂亮:)

  如果你并不打算深入学习linux,而是有诸如适应北京市政府办公平台迁移到linux上这种需要,那么中软,红旗等中文linux是不错的选择

  我强烈建议:自己亲自动手把linux装到你的硬盘上,你必须学会独立安装linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单

  从此现在开始,请不要以windows的工作方式来考虑问题,应该尝试挖掘linux身上的“天才unix”的气质。

  三.进阶

  掌握至少50个以上的常用命令

  理解shell管道"|",文件流重定向">"及追加">>"等

  熟悉Gnome/KDE等X-windows桌面环境操作

  掌握.tgz.rpm.biz等软件包的常用安装方法

  学习添加外设,安装设备驱动程序(比如modem)

  熟悉Grub/Lilo引导器及简单的修复操作

  熟悉系统固有目录的名称及公用

  学会用mount命令访问其他文件系统

  了解vi,gcc,gdb等常用编辑器,编译器,调试器

  学习linux环境下的简单组网

  建议:买一本不需要太厚的linux教材,大致可以满足要求(现在的书越来越多了,还带很多图,我当时可没这么多书)

  四.高级应用

  澄清一些概念:linux的普通操作与真正的系统管理不能相提并论,后者需要很多知识

  1.英语

  即使你不学linux,我也强烈建议你学好英文[U.S.english]。因为实质上计算机语言就是英文和字符,所谓的多国语言只是外部包装。你必须能无障碍的阅读大量的英文技术文档在搜索引擎找到的英文网站和网页中熟练的检索最好能有用英文直接交流的能力,摆脱了这个障碍,你的学习和理解速度就能快很多,你就有机会拉开和别人的差距。

  2.shell[sed/awk]

  shell是命令解释器,是内核与用户界面交流通道,shell写的小脚本有点类似于win下的.bat但shell比.bat强大的多,shell不只是解释命令,更是一种编程语言,有时候几百行的c用shell几十行就能代替完成工作,因为shell的工作方式建立在系统已有的众多应用程序之上

  这也是CS中的一个重要思想。此外,shell可以实现工作自动化,这个概念也比较重要sed,awk用来处理文本,历来很常用。

  3.Perl/PHP

  漂亮的脚本, CGI的首选,比ASP好,应用面很广

  4.C\C++

  C、C++是linux/unix的核心语言,系统代码都是C写的

  5.ASM

  系统底层及内核,硬件,设备驱动程序,嵌入式开发都需要。//走核心路线的话,c\c++,asm最重要

  6.Java,Python,Tcl,XML

  五、系统管理篇

  在熟悉linux的基础上还需要掌握至少一种unix。我首推Solaris,其次是FreeBSD比如运营级系统一般是Solaris+Oracle/DB2之类的学习apache、ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、MySQL/PostgreSQL/Oracle、Bind等各种应用服务器的构架及电子商务的应用熟悉TCP/IP协议族,学习诸如apache+php+proftp+mysql+quota的实现以及大型局域网,分布式集群等各种企业级应用解决方案熟悉多用户管理,数据库管理,文件系统,逻辑存储管理,日志分析,备份与灾难数据修复系统补丁,内核升级,以及在此基础上的防火墙构架等以保障系统安全在内的各种系统管理技能。

  我觉得,如果在此基础上再掌握路由/交换设备便是一个不错的系统管理员

  各种基于linux的解决方案可参考相关书籍和文献,必要时用google或各大linux站点站内搜索引擎寻找最新文档,以避免错误和漏洞有几本技术大全和技术内幕我认为都是这方面不错的书

  六、深入学习linux

  我个人理解的读linux内核需要的基础:在此之前,希望先把应用层的东西学一下,那样会比较好理解

  1.C

  如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种),建议再看一下《The C Programming Language》Second Edition这本圣经(如果想学缓冲区溢出,这点C的功力可能是不够的,还有<C陷阱与缺陷>,<C专家编程>,<C\C++深层探索>,反正经典书看多了是没有坏处的)

  2.asm (AT&T语法,保护模式)

  保护模式下的比较复杂,基本上每本讲内核的书都会有介绍有80x86 Intel语法的基础就行,

  有兴趣可以看看Intel的官方网站

  3.数据结构(离散数学)

  计算机专业的核心课程,重要性我就不说了

  4.操作系统原理

  看懂这个再去读linux吧

  5.微机原理/组成原理(数字电路)

  底层直接和硬件打交道,所以这个也要

  6.了解linux/unix

  我想至少你要会操作吧,了解unix的API

  7.软件工程/编译原理

  这方面的经典书去www.china-pub.com可以搜到很多我觉得APUE这种书不适合初学者,还是先看看UPE
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-05
一、从基础开始

  常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。例如:为什么使用一个命令的时候,系统告诉找不到该目录,要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。

二、Linux命令是必须学习

  虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。举一个例子:Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是一旦学会就爱不释手.它的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。

  不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给,通过这些基础命令的学习可以进一步理解Linux系统:

  安装和登录命令:login、shutdown、halt、reboot、mount、umount、chsh

  文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln

  系统管理相关命令:df、top、free、quota、at、lp、adduser、groupaddkill、crontab、tar、unzip、gunzip、last

  网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup

  系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho

三、选择一本好的工具书

  工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。

四、选择一个适合Linux发行版本

  目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。

五、养成在命令行下工作

  一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。

六、选择一个适合Linux社区

  随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。建议选择一些适于初学者的Linux社区。

七、勤于实践

  要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于自己的Linux能力必然大有斩获。对Linux命令熟悉后,可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。当然不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮解决问题。
第2个回答  2019-09-12
  1、第一个,需要掌握好扎实的基本功,对于学习任何一门语言来说,扎实的基本功都是非常重要的,不仅可以提高我们的效率,同时具有开拓思路的效果。
  对于Linux基础学习来说,很多人可能觉得是非常枯燥无味的,我们可以通过理解性的背诵方式来学习Linux的一些代码以及语法,然后通过实战操作方法进行辅助,在进行实际操作的过程中,一定要自己亲自动手去完成,千万不要偷工减料,借助工具,自己动手才能够更快的掌握。
  2、第二个,就是要学会学以致用了,学习Linux主要就是为了工作以及日后应用的,所以说linux知识是比较零散的技术,在没有应用到实际项目操作的时候,很难理解他的真实价值,所以我们需要学以致用,通过项目进行了解,赶开始的时候,可以做一些比较简单的项目,之后比较熟悉之后,可以做一些比较难的项目,学会不断的成长以及进步,只有不断提升自己,才能够真正的掌握。
  3、学习linux联机帮助,任何的时候很多的教材都不会完全讲述Linux的知识,一般讲的都是一些比较常用常用或者是最具有代表性的内容,但是我们难免会在以后的工作中遇到一些比较生僻的技能以及知识,那么我们就需要更深的知识进行问题解决了,推荐查阅Linux帮助文档,能够很好的解决我们的问题。
  4、学习多种方法学习内容,也可以通过网络上寻找资源,在学会Linux的过程中,我们难免会遇到一些没有思路、不知道如何进行解决的问题,面对这种情况下,我们就需要寻找网络上的帮助了,可以搜搜相关的问题,也可以询问一些技术性高的前辈以及相关人员,帮助我们来解决问题。
第3个回答  2019-11-19
学习linux的心得就是一定要多练习,熟能生巧一定要有自己的想法。
第4个回答  2019-06-05
个人觉得学习还是要线下,自学的话你可以看看视频。
相似回答