Linux运维

linux编程基础黑马程序员

主要包括 Linux基本命令(不含shell编程), Linux 系统编程, Linux 简单网络编程。

书单:    算法与数据结构:        数据结构(严蔚敏)/大话数据结构  //如果觉得教材无聊就可以看大话系列,印象中里面还有很多诗        剑指Offer/程序员面试金典/编程珠玑/编程之美/牛客网+leetcode        程序员笔试面试最优解(左程云)/不如直接看左神的笔试面试指南视频        Java的版本(不是很推荐):            数据结构与算法经典问题解析(Java语言描述)            图解数据结构(使用Java)    计算机网络:        计算机网络(谢希仁)        TCP/IP 详解        HTTP权威指南        图解TCP/IP        图解HTTP    数据库://数据库主要是多用,书上主要看索引和性能的部分        高性能MySQL/深入浅出MySQL    操作系统:        OS原理:操作系统(课本,黑色的那个)        Linux:            Linux私房菜 //鸟哥写的,很全,包括bash部分            跟阿铭学Linux //主要偏重于命令和操作,比较浅显    java:        Java疯狂讲义/Java编程思想/Java核心技术 卷1        深入理解Java虚拟机        并发编程的艺术/多线程编程核心技术        Effective Java        Java程序员面试笔试宝典 //何昊的那本,个人感觉是突击知识点的神器        Java程序性能优化        实战Java高并发程序设计    Java Web:        Spring实战/轻量级JavaEE 企业应用(红皮,讲SSH的) //主要看最后一部分Spring的就可以        深入JavaWeb技术内幕(阿里 许令波)//这个讲的还是比较深的        SpringBoot实战/深入实践SpringBoot    设计模式:        大话设计模式 //通俗易懂        各类博客的总结    分布式与大数据:        分布式服务框架原理与实践        大型网站技术架构        Hadoop实战(hadoop体系包括得很全)        //还有一本我暂时想不起来名字了    其他:        Git:            Git权威指南            Git官方讲解视频(牛客网有带字幕的)        Redis:            Redis实战    还买了docker、springCloud等等一些工具书,因为太小众就不列举了    除了上面说的书和视频,最有用的还是大家分享的各种面经。

linux编程基础黑马程序员

系统编程接口的基本特性和高级特性Linux进程环境、如何创建进程、线程,程序的存储空间分配、环境变量进程组、会话以及任务控制、进程优先级和调度动态库和静态库进程间通信:管道和FIFO、消息队列、信号量、共享内存、内存映射套接字和网络编程总之,这一阶段需要学习的是在 Linux 环境下的高级编程技巧,通过对这些内容的学习也能让你更深入的理解 Linux 系统是如何工作和运行的,并且真正的踏入 Linux 系统编程大门。

对于刚刚接触编程的新手,我本人不提倡直接在Linux环境编程(即使这样很装逼),也不提倡使用文本编辑器结合控制台指令编译的方式进行学习!

Linux下开发,两种基本语言,C和C++咯,至于其他人要说Python,Java,Ruby啥的不讨论,因为就讨论Linux下的开发,什么是Linux开发呢?就是利用Linux的API进行开发咯,首先你得会C语言或者C++语言啊,这个去看丹尼斯的《C程序设计语言》,注意是丹尼斯的,C++的就去看《Essential C++》或者《C++ Primer》,然后在Linux下的程序开发,Linux的API是遵循POSIX标准的,自行谷歌什么叫POSIX。Linux下程序开发几大块,文件操作,这个很重要,你要知道Linux下的一个思想叫一切皆文件,可见文件读写多重要了。I/O模型,五大I/O模型,阻塞,非阻塞,复用,信号驱动和异步I/O,环环相扣丝丝相连,概念和操作都要仔细琢磨,最重要的当属复用,就是select,poll和epoll,面试笔试就问这个东西,要知道他们的适用范围和优缺点。进程和线程,包括进程和线程的概念和区别,进程和线程的建立,同步,通信,互斥等等。网络编程,就是socket编程,Linux编程,这个学不好等于啥都没学,这个估计还得了解一下TCP/IP协议,编程方面主要是那几步,申请socket,bind,listen,accept几步,要熟悉种常见的服务器模型,进程池线程池方式的,多进程方式的,复用方式的,最重要的是复用方式的,这部分可以先只写服务器,测试直接用Telnet就好了,加快速度么。其余的就是数据库,这个东西不属于Linux,但是还得会,要不然啥都做不了,看那本《MySQL必知必会》,当然深入的话还得找本专业的书细细看。这个时候就可以真刀真枪的去干点有意思的事了,比如写个终端下的类似于QQ的软件啊,包括服务器和客户端啊,慢慢的增加并发数,比如可以同时支持五千人在线啊,文件传输啊等等。然后学学Qt,熟悉一下图形界面,可以把你的终端下的QQ完全改成图形界面下的。估计到这个时候,你差不多在Linux下进行像样的开发了吧。在这个过程的学习中,相信你已经学会Makefile的编写啊,编译啊,链接啊等等一些细枝末节的东西了,还得反思一下把零散的东西串一串,要系统化。

但是相比 Java 系更强调 Linux 系统编程、网络编程能力,有的还会涉及到服务端底层协议和网络框架开发。

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注