一.起步

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

  问题1:版本的选择

  北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的,linux开发人员中用debian的最多,其次是redhat,从全球linux各应用领域市场份额来看无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。原则是:我们没有必要把时间浪费在"装系统"上而应集中精力学习最有用的东西。

  //注:现在觉得RH很死板,AS,ES等用在服务器上或许不错,Personal desktop用mandrake,debian,suse都不错。

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

  我强烈建议:自己亲自动手把linux装到你的硬盘上,你必须学会独立安装linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单从此现在开始,请不要以windows的工作方式来考虑问题,应该尝试挖掘linux身上的"天才unix"的气质。

  二.进阶

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

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

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

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

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

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

  熟悉系统固有目录的名称及学会用mount命令访问其他文件系统;了解vi,gcc,gdb等常用编辑器,编译器,调试器学习linux环境下的简单组网;

  建议:买一本不需要太厚的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之类的吧

  APUE:

  《advanced programming in the unix environment》

  《unix环境高级编程》

  作者:W.Richard.Stevens共有6本经典书,尊为"圣经"他的书为全世界黑客所拜读!

  UPE:《unix programming environment》

  《unix编程环境》比较适合初学者的,深入浅出,其中有一些比较重要的思想

  另外,介绍linux下应用层编程的书也有很多,比如

  《GNU\Linux编程指南》,redhat,redflag出的书........... 经典书还有很多很多......《 操作系统:设计与实现》//上海交大的考研参考书目,讲

  Minix的unix操作系统设计

  《4.4BSD操作系统设计与实现》

  《昂莱氏unix源代码分析》

  《ulk:understanding the linux kernel 》(2nd)深入理解linux内核

  《linux设备驱动程序 (2nd)》

  《linux内核源代码情景分析》

  《保护方式下的80386及其编程》

  五、上升到工程化Linux下环境开发:

  一、 科学哲学和管理哲学

  【1】 “程序开发心理学”(The Psychology of Computer Programming : Silver Anniversary Edition)

  【2】 “系统化思维导论”(An Introduction to Systems Thinking, Silver Anniversary Edition)

  【3】 “系统设计的一般原理”( General Principles of Systems Design)

  【4】 “质量·软件·管理(第1卷)—— 系统思维”(Quality Software Management:Systems Thinking)

  【5】 “成为技术领导者——解决问题的有机方法”(Becoming A Technical Leader:An Organic Problem-Solving Approach)

  【6】 “你的灯亮着吗?-发现问题的真正所在”( Are Your Lights On? How to Figure Out What the Problem Really Is)

  【7】 “程序员修炼之道”(The Pragmatic Programmer)

  【8】 “与熊共舞:软件项目风险管理” (Waltzing With Bears: Managing Risk on Software Projects)

  【9】 “第五项修炼: 学习型组织的艺术与实务”( The Fifth Discipline)

  二、 计算机科学基础

  【10】 “计算机程序设计艺术”(The Art of Computer Programming)

  【11】 “深入理解计算机系统”(Computer Systems A Programmer's Perspective )

  【12】 “算法导论”(Introduction to Algorithms, Second Edition)

  【13】 “数据结构与算法分析 —— C语言描述(原书第2版) ”(Data Structure & Algorithm Analysis in C, Second Edition) 31

  【14】 “自动机理论、语言和计算导论(第2版)”(Introduction to Automata Theory, Languages, and Computation(Second Edition))

  【15】 “离散数学及其应用(原书第四版)”(Discrete Mathematics and Its Applications,Fourth Edition)

  【16】 “编译原理”(Compilers: Principles, Techniques and Tools)

  【17】 “现代操作系统”(Modern Operating System)

  【18】 “计算机网络(第4版)”(Computer Networks)

  【19】 “数据库系统导论(第7版)”(An Introduction to Database Systems(Seventh Edition))

  三、 软件工程思想

  【20】 “人件”(Peopleware : Productive Projects and Teams, 2nd Ed.)

  【21】 “人件集 —— 人性化的软件开发”( The Peopleware Papers: Notes on the Human Side of Software)

  【22】 “人月神话”(The Mythical Man-Month)

  【23】 “软件工程 — 实践者的研究方法(原书第5版)”(Software Engineering: A Practitioner's Approach, Fifth Edition)

  【24】 “敏捷软件开发-原则、模式与实践”(Agile Software Development: Principles, Patterns, and Practices)

  【25】 “规划极限编程”( Planning Extreme Programming)

  【26】 “RUP导论(原书第3版)”(The Rational Unified Process:An Introduction,Third Edition )

  【27】 “统一软件开发过程”(The Unified Software Development Process)

  四、 软件需求

  【28】 “探索需求-设计前的质量”( Exploring Requirements: Quality Before Design)

  【29】 “编写有效用例”(Writing Effective Use Cases )

  五、 软件设计和建模

  【30】 “面向对象方法原理与实践”

  【31】 “面向对象软件构造(英文版.第2版)”(Object-Oriented Software Construction,Second Edition )

  【32】 “面向对象分析与设计(原书第2版)”(Object-Oriented Analysis and Design with Applications,2E )

  【33】 “UML面向对象设计基础”(Fundamentals of Object-Oriented Design in UML)

  【34】 “UML精粹 —— 标准对象建模语言简明指南(第2版)”( UML Distilled: A Brief Guide to the Standard Object Modeling Language (2nd Edition))

  【35】 “UML和模式应用(原书第2版)”(Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, Second Edition )

  【36】 “设计模式精解”(Design Patterns Explained)

  【37】 “设计模式:可复用面向对象软件的基础”( Design Patterns:Elements of Reusable Object-Oriented software)

  【38】 “面向模式的软件体系结构 卷1:模式系统”( Pattern-Oriented Software Architecture, Volume 1: A System of Patterns)

  【39】 “软件设计的艺术”(Bringing Design to Software)

  六、 程序设计(这个因人而异,术业有专攻,学学C#、JAVA也不错啊)

  【40】 “编程珠矶”(Programming Pearls Second Edition )

  【41】 “C程序设计语言(第2版·新版)”(The C Programming Language )

  【42】 “C++ 程序设计语言(特别版)”(The C++ Programming Language, Special Edition)

  【43】 “C++ Primer (3RD)”

  【44】 “C++语言的设计和演化”( The Design and Evolution of C++)

  【45】 “C++ 编程思想(2ND)”(Thinking in C++ Second Edition)

  【46】 “Effective C++” & “More Effective C++”

  【47】 “C++编程艺术 ”(The Art of C++ )

  【48】 “Java 编程思想:第3版”( Thinking in Java, Third Edition)

  【49】 “Effective Java”

  七、 软件测试

  【50】 “测试驱动开发(中文版)”(Test-driven development:by example )

  【51】 “面向对象系统的测试”(Testing Object-Oriented System: Models, Patterns, and Tools)

  【52】 “单元测试之道Java版 —— 使用Junit”/ “单元测试之道C#版——使用NUnit” (Pragmatic Unit Testing:In Java with JUnit / Pragmatic Unit Testing:In C# with NUnit )

  八、 软件维护和重构

  【53】 “重构-改善既有代码的设计”(Refactoring: Improving the Design of Existing Code)

  九、 配置管理和版本控制

  【54】 “版本控制之道 —— 使用CVS”(程序员修炼三部曲第一部:Pragmatic Version Control Using CVS)

  十、 领域专题(网络、平台、数据库相关) 99

  【55】 “TCP/IP详解”( TCP/IP Illustracted)

  【56】 “Unix网络编程”(UNIX Network Programming)

  【57】 “UNIX环境高级编程”(Advanced Programming in the UNIX Environment) 102

  【58】 “UNIX 编程艺术”(The Art of Unix Programming)

  【59】 “数据访问模式 —— 面向对象应用中的数据库交互”

Linux学习交流群:754207286

快速上手Linux视频资料

http://www.makeru.com.cn/live/1392_197.html?s=45051

转载于:https://www.cnblogs.com/QianD/p/10239102.html

新手学习Linux之快速上手分析相关推荐

  1. Linux工具快速上手,Linux很实用命令

    Linux工具快速上手 前言 Linux下有很多命令行工具供我们使用,每个工具总是提供了大量参数供我们选择: 实际工作中,我们用到的工具,最常用的总是那么几个参数组合: 为此,我写了这本书相对实用的书 ...

  2. Python学习笔记---day02快速上手

    day02快速上手 课程目标:学习Python最基础的语法知识,可以用代码快速实现一些简单的功能 课程概要: 初识编码(密码本) 编程体验 输出 初识数据类型 变量 注释 输入 条件语句 1. 编码 ...

  3. JavaEE学习笔记-SpringBoot快速上手、热部署、乱码问题、部分注解解释

    SpringBoot快速上手 一.快速创建SpringBoot应用 1.1利用IDEA提供的Spring Initializr创建Spring Boot应用 1.2Spring Boot生成的项目结构 ...

  4. 利用脑机接口提高意念打字速度,让新手用户也能快速上手意念交流

    脑机接口(BCI)通过将脑部活动转换为计算机命令来实现对外部设备的控制.例如,使用BCI拼写器,人们无需动一根手指就能打出单词和短语.这种技术对那些无法使用普通键盘的人来说至关重要. 当前表现最好的B ...

  5. 怎样学习C语言——快速上手C语言系列之—什么是指针

    指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识.所以本文尽可能的通过一篇文章完全讲解指针. 一,为什么需要指针? 指针解决 ...

  6. Lesson6 【LINUX】Linux系统快速上手

    1 什么是Linux操作系统 现在三大常用的系统:Windows,Linux,IOS Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程 ...

  7. clojure java math_Clojure学习笔记 02.快速上手

    这一节让我们来了解一下那些"使用Clojure编程必须要掌握的东西". 其实Clojure(以及其他lisp系语言)的学习曲线还是比较陡峭的.学习Clojure之前必须要掌握一些基 ...

  8. 良心推荐 最适合新手学习的Matlab快速入门教程

    MATLAB 快速入门教程(一) 一.关于MATLAB的基本操作和介绍 1. 如何打开matlab的文件 2. 如何运行一段代码 3. some tips about matlab 1. 如何打开ma ...

  9. oracle 快速上手,Oracle学习笔记:快速上手

    开启服务:先开启Lisenterner服务 再开启ORCL服务 oracle登录 用户: - 管理员 sysDBA - 无密码 - 系统用户 system - manager - 普通用户 scott ...

最新文章

  1. 自动白平衡之完美反射算法原理及C++实现
  2. 11月16日 个人战立会议内容报告
  3. CNCC 技术论坛 | 知识图谱赋能数字经济
  4. Glances:一款功能强大的操作系统安全监控平台
  5. 3D建模学什么?细分的话,有这么多方向
  6. 把html压缩成dll,一篇文章带你浅入webpack的DLL优化打包
  7. 学习方法:提出和解决问题
  8. Nonebot QQ机器人插件一:实时天气获取
  9. 无线局域网和蜂窝移动网络_手机连上无线网络后,应不应该关掉移动数据?
  10. win10 计算机菜单,win10系统计算机界面菜单栏不见了的还原方案
  11. mysql error 1114_ERROR 1114 (HY000): The table 'test1' is full 的解决
  12. Matlab画六边形蜂窝网络点(任意个数)
  13. 一个web页面的访问的过程
  14. Clickhouse导数工具waterdrop用法
  15. Struts2+Hibernate+Spring+ZTree+Dtree 实现树形菜单
  16. 06-散列(Hash)基础分析
  17. git分支管理和git提交规范
  18. 【TRIO-Basic从入门到精通教程十六】UDP通讯测试补充
  19. ublox8 M8协议介绍
  20. 1666_MIT 6.828 JOS隔离机制的大纲

热门文章

  1. 【YOLOv7】主要改进点详解
  2. macbook 外接显示器 模糊问题解决
  3. Profibus DP/PA/FMS
  4. 计算机网络考前复习知识点(基础)
  5. 剑桥商务英语中级BECV2013六月北外…
  6. jxl.read.biff.BiffException: Unable to recognize OLE stream原因及解决方法
  7. 12种食物最养男人,12种食物最养女人
  8. 抓紧供应链的绳子,每日优鲜和叮咚买菜何时翻过亏损大山?
  9. 音乐编辑 java_音乐制作软件怎么用?教你编辑音频文件的方法
  10. 多媒体计算机技术19秋作业1,多媒体计算机技术19秋在线作业1 在数字音频信息获取与处理过程 下述正确的顺序是...