一.起步

  首先,应该为自己创造一个学习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

新手学习Linux之快速上手分析的更多相关文章

  1. 如何比较Keras, TensorLayer, TFLearn ?——如果只是想玩玩深度学习,想快速上手 -- Keras 如果工作中需要解决内部问题,想快速见效果 -- TFLearn 或者 Tensorlayer 如果正式发布的产品和业务,自己设计网络模型,需要持续开发和维护 -- Tensorlayer

    转自:https://www.zhihu.com/question/50030898/answer/235137938 如何比较Keras, TensorLayer, TFLearn ? 这三个库主要 ...

  2. 【学习总结】快速上手Linux玩转典型应用-第7章-WebServer安装和配置讲解

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. Apache的安装 2. Apache的虚拟主机配置及伪静态操作 3. Nginx的基本操作 4. Nginx伪静态的实现 5. 实例演 ...

  3. 【学习总结】快速上手Linux玩转典型应用-第6章-linux常用命令讲解

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 软件操作命令 2. 服务器硬件资源信息 3. 文件操作命令 4. Linux文本编辑神器vim与其他常用命令 5. 系统用户操作命令 6 ...

  4. 【学习总结】快速上手Linux玩转典型应用-第5章-远程连接SSH专题

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 认识SSH 2. 服务器安装SSH服务 3. 客户端安装SSH工具 4. 客户端链接SSH服务 5. SSH config 6. SSH ...

  5. 【学习总结】快速上手Linux玩转典型应用-第4章-准备工作

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 准备工作一 2. 准备工作二 ===================================================== ...

  6. 【学习总结】快速上手Linux玩转典型应用-第3章-CentOS的安装

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 虚拟机是什么 2. 在虚拟机中安装CentOS 3. 云服务器介绍 ================================== ...

  7. 【学习总结】快速上手Linux玩转典型应用-第2章-linux简介

    课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. 什么是Linux 2. Linux能够做什么事情 3. Linux的学习方法 4. 忘掉Windows的所有东西 1. 什么是Linux ...

  8. 【学习总结】快速上手Linux玩转典型应用-第1章-课程介绍

    课程目录链接 快速上手Linux玩转典型应用-目录 1. Linux有什么用 2. 课程安排 3. 课程收获 基本运维能力,等等 END

  9. 【学习总结】快速上手Linux玩转典型应用-目录

    内容链接 慕课网:快速上手Linux玩转典型应用 目录 第1章-课程介绍 第2章-linux简介 第3章-CentOS的安装 第4章-准备工作 第5章-远程连接SSH专题 第6章-linux常用命令讲 ...

随机推荐

  1. mingw 构建 gdal 2.1.2

    目录 1.准备 2.生成Makefile 3.编译 4.编译遇到错误及解决办法 1.生成静态库时候ar提示参数列表太长 2.生成动态库时候g++提示参数列表太长 前两日有人在oschian上问我min ...

  2. 【iOS】ARC-MRC下的单例及其应用

    单例的应用十分普遍,单例模式使一个类仅仅有一个实例. *易于供外界訪问. *方便控制实例个数,节约系统资源. *OC中的常见单例: 如:UIApplication,  NSNotificationCe ...

  3. 海外VPS

    缘由 国内从ISP拿到的只能是内网IP,当然如今IPv4地址紧张导致的也能够理解,使用免费DDNS能够同样也能将内网通过端口映射将服务发布外网.但是千万不要小瞧了ISP的觉醒,通过限制上行带宽(ADS ...

  4. python 验证码识别示例(二) 复杂验证码识别

     在这篇博文中手把手教你如何去分割验证,然后进行识别. 一:下载验证码 验证码分析,图片上有折线,验证码有数字,有英文字母大小写,分类的时候需要更多的样本,验证码的字母是彩色的,图片上有雪花等噪点,因 ...

  5. Deep Dive into Spark SQL’s Catalyst Optimizer(中英双语)

    文章标题 Deep Dive into Spark SQL’s Catalyst Optimizer 作者介绍 Michael Armbrust, Yin Huai, Cheng Liang, Rey ...

  6. python itertools 模块讲解

    1.介绍itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存. 使用这些工具,你将能够创建自己定制的迭代器用于高效率的循环. - 无限迭代器 itertool ...

  7. 企业级镜像仓库Harbor

    介绍: Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面, ...

  8. CentOS 服务器添加简易"回收站"

    删除是危险系数很高的操作,一旦误删可能会造成难以估计的损失.比如,一条简单的语句:rm –rf /* 就会把整个系统全部删除,而 Linux 并不会因为这条语句的不合理而拒绝执行. 在 Windows ...

  9. jQuery(三) javascript跨域问题(JSONP解决)

    加油~ --WH 一.什么是javascript跨域问题? 域:服务器域名,唯一标识(协议,域名,端口)必须保证一致,说明域相同 跨域:在一个服务器上,去访问另一个服务器上,并且得到另一个服务器返回回 ...

  10. 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇

    [原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...