邵兴旺
对于Linux应用的学习,主要有六部分:1. 环境搭建;2. 基本操作;3. 系统编程;4. 网络编程;5. 数据库编程,6. Shell编程。下面一一详细介绍。
1. 环境搭建
作为Linux工程师,毋庸置疑一定需要Linux环境。对于Linux环境的获取,我们通常有两种方式: 将电脑整体安装为Linux系统; 在电脑里安装一个虚拟机,跑Linux电脑; Window+Linux双系统。 得到Linux环境后还不够,还要知道如何配置、如何远程连接Linux电脑、如何与Linux电脑互传文件、如何在主机上阅读Linux电脑中的代码,等等。
2. 基本操作
众所周知,Linux很少或几乎没有界面,所有的操作几乎都可以通过命令行来完成。对于运维人员来说,需要掌握相当大量的Linux命令。而对于应用、驱动方向的人员来说,只需掌握一些基本的常用的命令即可。对于这部分很多人建议看 「鸟哥的私房菜」 ,但我觉得这个更适合运维人员,我们无需掌握那么多命令。
3. 系统编程
在学系统编程之前,一定要先学习Makefile,这会为后续的学习提高很大效率。之后的系统编程,主要有几大块:IO编程、进程、线程、进程间通讯(包括管道、信号、信号量、共享内存等)。这几部分学完了,基本也就差不多了。
4. 网络编程
网络编程主要就是socket,poll,epoll,以及对TCP/IP的理解,同时要学会高并发式服务器的编写。
5. 数据库编程
数据库的内容其实并不属于Linux,但在项目中经常要用到。这部分主要要学会数据库的基本操作,以及如何写一套接口去操作数据库。
6. Shell编程
Shell是Linux下的脚本语言,功能虽然不如高级语言强大,但它可能做很多事,在某些场合甚至比高级语言要方便得多。当然除了Shell脚本,还有Python脚本。
Linux应用编程书籍推荐:
UNIX环境高级编程。
简称APUE,号称程序员的圣经。它不是一本API字典,它还讲述了很多操作系统的细节,内存,文件系统等方面,是一本难得的好书。但是它起点有点高,不适合初学者。
Linux程序设计。
如果觉得APUE有点难入门的话,可以选择此书进行入门。
Unix/Linux系统编程手册。
这本书号称是一本超越APUE的书,它是一本比较新的书,里面新增了APUE所没有的Linux/Unix新特性。而且对于一些概念性的东西讲的确实比APUE好。但至于能否超载APUE,还有待历史的考验。
UNIX 网络编程。
也是一本非常经典的书,主要是网络编程方向的。 MySQL必知必会。本书在Amazon上长期排在数据库销售榜首,建议想快速了解数据库原理和MySQL的新手阅读。快餐性质,简洁明快,小开本,而且很薄,比较好阅读。
Linux Shell脚本攻略。
这本书很薄很精华,它追求的不是全,而是精,所以用它来入门再适合不过了。
学完以上六部分,基本就有能力完成Linux环境下的应用编程了。
良许Linux
自学Linux可以从三个步骤入手学习
1.选择一门合适学习书籍
鸟哥的私房菜
很多linux初学者的首选书籍,linux学习先从基础的命令行入手,常用的命令大约20个,然后慢慢切入学习
常见命令:
2.安装一个linux系统
目前开发主要用的是deb系,ubuntu现在作为桌面版选择用的比较多,这个就要看个人喜好了
3.书本和系统都安装好了之后就可以进入学习阶段,这涉及到在linux操作系统上玩什么编程语言
通常而言除了windows自带的编程系列语言,别的编程语言都可以玩,目前主流的编程语言C语言,C++,java,python,php等等都可以在这玩。
在这就不一一罗列,现在就如何在ubuntu下面编译第一个C语言程序的过程简单介绍下
(1)安装编译环境
apt-get install vim
apt-get install gcc
(2)用vim或者gedit编译第一个hello world 语言
(3)编译执行
gcc -o hello hello.c
./hello
Hello, Linux
现在只是针对C语言做了一个简单的范例,可以根据自己的爱好尝试别的编程语言。
找到自己想学的编程语言,然后全力以赴去学习。
大学生编程指南
作为一名linux曾经的学习以及现在的使用者,这个话题我觉得很有必要来回答。
想想第一次接触学习Linux是四年前的事情了,时间过得好快啊!下面结合我自己学习linux的经历分享一下如何从0到1。
1.安装一个linux系统。
你可以选择在自己的实体电脑中安装双系统,注意安装某些配置文件时一定要安装好,不然你的系统要GG了。当然我推荐在VMware workstation或者virtual box虚拟机中安装,比较方便,可以安装很多系统,不过电脑内存至少有8G。就系统来说一般是centos、Ubuntu、Redhat在服务器中使用较多。个人比较喜欢centos,Linux各个版本的系统中的命令差不多,学一个就好,在安装系统的过程中你可以了解一下分盘、挂载数据盘等的知识。当然你也可以学学Kali,做个黑客也不错。顺手打开虚拟机一看,发现我的里面还有KALI,前面做安全攻防用过。
2.Linux基本命令学习
Linux学习最重要的是命令的学习。你可以安装桌面版的系统,Linux系统可以直接从桌面版切换到黑窗模式,也可以在桌面版的终端进行命令操作。
2.1图书学习
图书学习的话我推荐鸟哥的私房菜,鸟哥的私房菜应该将很多同仁引领到了Linux学习的道路中。里面对Linux的命令讲的比较详细,你是做软开的话,只需要了解基础的linux操作命令即可,例如cd、ls、netstat、chmod、pwd、vi、find、cp、mv、防火墙、rm -rf /*(非常重要以及好用的命令)。刚好我这有两本差点被我扔掉的9成新私房菜,见下图:
2.2视频学习
如果是要看视频学习的话,如果我没记错,你可以找找马哥的linux视频,我一朋友给我推荐的,他现在在思科,膜大佬。
下面是阿铭讲的linux视频,不过是我15年跟他要的,可以看一下。
https://pan.baidu.com/s/1os0WMhf91nRwB3ixDors1Q3.手动配置开发环境
学习好基础的Linux命令后,需要检验学习成果,那么你需要配置开发环境。一定要亲自手动配置好一个一个模块。比如PHP开发需要配置lnmpa——Linux+nginx+mysql+php+apache。记住一定要手动利用源码进行编译安装,虽然这个配置过程会非常的艰辛,你可能会遇到很多问题,但是你可以学到很多知识,切记第一次不要用一键安装包进行安装。java开发环境的话需要你配置jdk、Tomcat等等,可能你开发过程中会用到redis,值得一学(切记配置redis不要选择默认配置,容易被黑,伤心的过去)
4.学习shell或者python脚本
因为你在以后的工作中很可能需要写一些脚本用于定时执行,前期学好后期不愁,别问我为什么。如果你以后选择做运维工程师,那么你肯定需要写脚本简化运维工作。
5.撸代码搞开发
前面四条你学好了,那么你可以在此基础上搞开发,比如未来测验PHP环境是否搭好,可以写个简单的留言板,即使默认页面已经能够正常运行。或者用Java写个项目放到服务器或者虚拟机中,都是不错的选择。
总而言之言而总之,Linux学习需要多实践,多敲命令,一不敲命令很容易忘记。
我是萌新程序猿,科技圈的事情欢迎邀请我来回答!
码了这么多字,点个赞关注下再走吧!!!
关注萌新程序猿(本人咯),跟小编一起从菜鸟成为大佬,了解更多IT以及程序猿的知识!!
萌新程序猿
Linux职业的方向大概有两个:
Linux的网络、系统,服务应用方向如:Linux鸟哥私房菜
Linux下软件开发方向
下面我们来详细的说:
Linux的系统、网络、服务、网站,集群,Oracle数据库应用方向:
1.数据库服务器如Oracle Sybase
2.Mail应用服务器如163或者外企mail系统等
3.web应用服务器如 sina baidu 大型网站
4.中间件或者J2EE服务器,如JBOSS Weblogic等等
5.网络应用等
嵌入式开发、UNIX/Linux应用系统开发,Linux内核驱动开发方向,主要有一下几类:
1.Linux下面的C/C++程序开发。建议看:《Linux程序开发》
2.Linux平台java体系开发。 建议看:《java编程思想》
3.Linux下的图形界面开发。 建议看:《Gtk+程序设计:C语言版/Syd Logan》
4.Linux底层内核/驱动开发 建议看:《Linux设备驱动程序(第三版)》
5.嵌入式Linux开发等 建议看:《arm嵌入式系统开发-软件设计与优化》
《嵌入式linux应用开发完全手册》
楼主问的是要从哪方面学习,你可以参考以上几点,看看你希望从哪方面学习,再决定买相关书籍。以上介绍了学科和相关书籍。下面给大家具体介绍一下有关Linux的基本步骤,我们先说初级阶段。
初级阶段:
1.Linux常用的命令大概是80个左右,这些常用的一定要掌握,而且要熟练。
2.下面就要掌握linux软件包的常用安装方法,例如源码安装,rpm安装方式等等。
3.学习安装设备驱动程序,就比如是网卡、显卡驱动等
4.熟悉Grub/lilo引导程序以及简单的修复操作。
5.熟悉Linux文件系统和目录结构,以及linux的运行的基本原理。
6.vi,gcc,gdb等常用编辑器,编译器,调试器。
7.理解shell的别名、管道、l/O重定向、输入和输出以及shell简单脚本编程。
8.学习Linux环境下的网络基本组建
其实还应该有高级阶段的,但不知道各位需要吗。在这里说一下
1:尝试阅读linux内核源码:
因为C/C++是linux/unix的核心语言,系统代码都是C写的(回答结束后附送C语言学习路径)
2.尝试编译安装和调试自己的linux内核:
可以阅读源码了解一下linux的底层运行原理,然后编译出一个适合自己的linux系统;
3.深入学习shell,perl,cgi等脚本语言:
这些脚本的语言在linux下面是很强的,熟练掌握这些语言可以完成很多你想要做的事。
4.构建企业级linux高可用集群系统:
linux下有很多开源免费的集群软件的,利用这些免费的集群可以构建出与商业unix的系统可以去比较的集群系统。
下面附送大家C语言的学习线路图,希望大家多多关注本账号,会给大家提供更丰富更有效的问答和文章。
传智播客
Linux如何自学,我这里整理了6大模块。分别是:
Linux的介绍和安装Linux的常用命令Linux环境的基本配置Linux上常用的软件安装Linux高级命令shell编程我这里有些笔记可以分享给你,这里是四天的笔记,我们从右往左看,由浅入深,如果这些东西够你学习一段时间,看完之后,我相信你也知道你的下一步目标是什么了。
除了文档的资源,我这里还有我们学习的视频,基础学习。
还有一些整理的文档,也可以分享给你想学习的你。下面这些主要是教我们如何搭建服务器,还有一个简单的实例。
获取方式
1.首先右上角点击【关注】,关注我的头条号~
2、个人主页关注上面私信我:Linux
如果觉得资源不错,请给个好评,谢谢各位了,来个转发、收藏哦!
感谢坚持关注的朋友~
世界很大,幸好有你~
欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。
聚焦最新科技咨讯,探寻未来智能领域,我是女陶Mario
码里行间
题主想自学的话,可以在网上搜索一些相关的教程,或者找前辈带着学。自学会比较枯燥和痛苦,有问题的话没有人沟通。所以条件允许的话,可以报班学习,或者有了一点基础以后,进入相关的公司实习。有实际的项目工作经验会成长很快。