当前位置: 技术问答>linux和unix
以前做vc开发,现在准备转向到linux,还望大家不吝赐教
来源: 互联网 发布时间:2015-11-21
本文导语: 做了几年vc开发,昔日的激情早已当然无存,加之vc已是江河日下,经过衡量,偶考虑向linux转型 不过偶对linux还处于完全陌生状态,前几天刚装了redhat,现在正学习使用vi,其他一律不知. 现向大家咨询一些问题: 0、好像...
做了几年vc开发,昔日的激情早已当然无存,加之vc已是江河日下,经过衡量,偶考虑向linux转型
不过偶对linux还处于完全陌生状态,前几天刚装了redhat,现在正学习使用vi,其他一律不知.
现向大家咨询一些问题:
0、好像一般作linux+mysql+php/java开发的比较多,不过对这个没有什么兴趣
1、偶c++还算熟练,在linux下c++开发一般是用哪些工具,linux下c++开发一般是那些方向,个人偏向
网络程序设计
2、linux程序如何与windows通信??是com吗??
3、请给推荐几本linux开发的好书(最好是配以实际项目讲解的),优秀开源社区。
希望看到大家的意见,这里先谢过。
不过偶对linux还处于完全陌生状态,前几天刚装了redhat,现在正学习使用vi,其他一律不知.
现向大家咨询一些问题:
0、好像一般作linux+mysql+php/java开发的比较多,不过对这个没有什么兴趣
1、偶c++还算熟练,在linux下c++开发一般是用哪些工具,linux下c++开发一般是那些方向,个人偏向
网络程序设计
2、linux程序如何与windows通信??是com吗??
3、请给推荐几本linux开发的好书(最好是配以实际项目讲解的),优秀开源社区。
希望看到大家的意见,这里先谢过。
|
我是刚工作就转到linux的
上学的时候也是看mfc,win32什么的
说说我的体验
先看基本命令,不用多了,看也是看主要的常用参数
平时遇到不知道的就man,info去查找
然后,我找了一本,看了点boost(真的就一点)
接着是两本我觉的不错的入门书,
到此,我觉的算是入了个门(做C开发)
之后我看了点代码,什么代码?linux上的程序基本都带着代码啊
然后是shell
然后是内核分析和系统管理
还有就是常来csdn和chinaunix上看看帖子,发个言(混分)
剩下的事情就看你想做什么了,往什么方向发展了
这是我个人的路子,走的可能偏颇了,愿意参考的就看看,当个教训也好
上学的时候也是看mfc,win32什么的
说说我的体验
先看基本命令,不用多了,看也是看主要的常用参数
平时遇到不知道的就man,info去查找
然后,我找了一本,看了点boost(真的就一点)
接着是两本我觉的不错的入门书,
到此,我觉的算是入了个门(做C开发)
之后我看了点代码,什么代码?linux上的程序基本都带着代码啊
然后是shell
然后是内核分析和系统管理
还有就是常来csdn和chinaunix上看看帖子,发个言(混分)
剩下的事情就看你想做什么了,往什么方向发展了
这是我个人的路子,走的可能偏颇了,愿意参考的就看看,当个教训也好
|
0.这样的程序根本算不上linux程序,这样的程序在winodws下面一样可以运行。
1.linux下面有anjuta kdevelop 编译用gcc,make automake 等等等等,调试用gdb.
2.linux程序?为啥要和windows通信?主机之间通信用sokect。进程间还有管道啥的可以用。
3.开源社区啊,中国的就是linuxfans,linuxsir,还算几个项目。开发的好书?基本没什么好书,开发无非都是一些软件架构的思想加上编码的规范风格,剩下的api还是自己在网上查查吧。
1.linux下面有anjuta kdevelop 编译用gcc,make automake 等等等等,调试用gdb.
2.linux程序?为啥要和windows通信?主机之间通信用sokect。进程间还有管道啥的可以用。
3.开源社区啊,中国的就是linuxfans,linuxsir,还算几个项目。开发的好书?基本没什么好书,开发无非都是一些软件架构的思想加上编码的规范风格,剩下的api还是自己在网上查查吧。
|
0. 如楼上所说,不能叫linux开发,只能算linux下web开发。linux开发一般泛指linux下的c/c++开发。
1. gcc+vi是必须的,kdevelop 是一个很不错的IDE。
2. socket是网络通信的基础。
3. APUE(UNIX环境高级编程)第二版和UNP(UNIX网络编程)第一卷是不得不看的经典。建议你先看看,可以让你少提很多问题:),其他的所谓linux编程的书特别是国内人写的建议还是别看了。
1. gcc+vi是必须的,kdevelop 是一个很不错的IDE。
2. socket是网络通信的基础。
3. APUE(UNIX环境高级编程)第二版和UNP(UNIX网络编程)第一卷是不得不看的经典。建议你先看看,可以让你少提很多问题:),其他的所谓linux编程的书特别是国内人写的建议还是别看了。
|
首先说明希望学Linux的朋友能够忘记Windows2000,最起码忘记Windows下的盘符、应用程序等基础的东西,其次要深刻明白Linux和Windows是2个不同的系统平台,可以去对比着学习,但不要直接拿Windows那套东西直接套用到Linux学习中。
一、桌面系统
就是系统安装好后的视窗系统,在Windows下叫Windows,在Linux下叫 X Windows,其实只是名字不一样而已(看看红旗做的桌面,真是跟Windows要做象有多象,真 晕,这样虽然有助于Linux桌面的使用,但对于Linux系统的推广真是没什么好处)很多初学Linux人的安装好Linux后,进入其 X Windows桌面,兴奋不已,以为大功告成,Linux自己会了,这种想法是很可怕的;如果我告诉你Linux的X Windows环境不是Linux 系统,它只是在Linux下面运行的应用程序(类似于在Windows下运行office2000),你是怎么想的?Windows下的应用程序几乎是不能直接在Linux系统下安装和使用,学编程的应该明白,所以不要去找Windows工具盘安装你的RAR,QQ,realone等常用工具,你是装不上的。你可以尝试去安装你硬件的最新驱动程序,安装Linux下的常用工具,做一些Linux简单的汉化,你就会理解经常在论坛里问这方面问题的朋友的困难了。总之,学桌面,不是学Linux系统。
二、内核源代码学习
跟unix操作系统一样都是用C语言编写。去买正版的Linux系统(不是很贵),会附带一张或者2张Linux源代码盘,Linux程序员从这里开始,是起点也是终点。
三、系统管理
也就是管理Linux系统环境:SHELL、图形、系统服务、硬件驱动等等。系统管理Linux跟UNIX类似(是看了些Unix系统管理才这样说的),基本上都是通过命令----->配置文件----->脚本文件。初学这建议从这里开始,不要一味去安装XWindows,这个X Windows环境只要你尽量保持经常使用,相信学会是自然而然的事情.(感觉那真实没什么好学的,只要计算机应用在1年以上的朋友,应该都能在下面操作吧)
四、应用开发
在Linux应用上,Linux确实跟它的竞争对手Windows相比还有一定的差距。不过在高端的应用上,Linux的市场是越来越大,
如:Linux内核开发:
----PDA个人掌上电脑;
----专用的网络设备;防火墙设备,VPN设备等是用Linux编写的,国产的,现在销售的十分不错;
----硬件驱动程序;
Linux网络编程:
----php编程,建立动态站点;
----jsp编程;
----perl,cgi编程;
Linux系统下数据库的开发:
----my sql中小型数据库系统;
----oracle数据库;
----DB2数据库,IBM数据库系统;
五、服务器领域
一说Linux,很多自然就想到了做服务器,但现在网络服务器方面,Linux的市场占有率确实是第一的;
Linux服务器领域:
----代理服务器,使用的是Linux的iptables功能;
----电影服务器,使用的是Linux的samba服务的功能,文件和打印共享服务器;
----游戏服务器,cs服务器,在Linux系统下使用cs的Linux版本建立的服务器;
----客户存档服务器,采用的Linux的ftp服务器,常用的有:wu-ftp,pro-ftp软件建立的
----www服务器,使用的是Linux下的apache服务器软件;
----ftp服务器,下载服务器,使用的是Linux下的wu-ftp,pro-ftp,vs-ftp软件;----mail服务器,采用的是Linux下的sendmail,qmail软件;
----dns服务器,使用的是Linux下的bind软件;
----数据库服务器,使用的是mysql或者oracle软件;
----防火墙,软件防火墙服务器,使用的是Linux的iptables功能建立的;
----路由器,软路由器,使用的是Linux下的routed软件建立的;
----拨号服务器,vpn服务器等等;
六、系统集成范围太广,内容太多。相信IBM等建立的Linux研发中心主要就是做这个的。
一、桌面系统
就是系统安装好后的视窗系统,在Windows下叫Windows,在Linux下叫 X Windows,其实只是名字不一样而已(看看红旗做的桌面,真是跟Windows要做象有多象,真 晕,这样虽然有助于Linux桌面的使用,但对于Linux系统的推广真是没什么好处)很多初学Linux人的安装好Linux后,进入其 X Windows桌面,兴奋不已,以为大功告成,Linux自己会了,这种想法是很可怕的;如果我告诉你Linux的X Windows环境不是Linux 系统,它只是在Linux下面运行的应用程序(类似于在Windows下运行office2000),你是怎么想的?Windows下的应用程序几乎是不能直接在Linux系统下安装和使用,学编程的应该明白,所以不要去找Windows工具盘安装你的RAR,QQ,realone等常用工具,你是装不上的。你可以尝试去安装你硬件的最新驱动程序,安装Linux下的常用工具,做一些Linux简单的汉化,你就会理解经常在论坛里问这方面问题的朋友的困难了。总之,学桌面,不是学Linux系统。
二、内核源代码学习
跟unix操作系统一样都是用C语言编写。去买正版的Linux系统(不是很贵),会附带一张或者2张Linux源代码盘,Linux程序员从这里开始,是起点也是终点。
三、系统管理
也就是管理Linux系统环境:SHELL、图形、系统服务、硬件驱动等等。系统管理Linux跟UNIX类似(是看了些Unix系统管理才这样说的),基本上都是通过命令----->配置文件----->脚本文件。初学这建议从这里开始,不要一味去安装XWindows,这个X Windows环境只要你尽量保持经常使用,相信学会是自然而然的事情.(感觉那真实没什么好学的,只要计算机应用在1年以上的朋友,应该都能在下面操作吧)
四、应用开发
在Linux应用上,Linux确实跟它的竞争对手Windows相比还有一定的差距。不过在高端的应用上,Linux的市场是越来越大,
如:Linux内核开发:
----PDA个人掌上电脑;
----专用的网络设备;防火墙设备,VPN设备等是用Linux编写的,国产的,现在销售的十分不错;
----硬件驱动程序;
Linux网络编程:
----php编程,建立动态站点;
----jsp编程;
----perl,cgi编程;
Linux系统下数据库的开发:
----my sql中小型数据库系统;
----oracle数据库;
----DB2数据库,IBM数据库系统;
五、服务器领域
一说Linux,很多自然就想到了做服务器,但现在网络服务器方面,Linux的市场占有率确实是第一的;
Linux服务器领域:
----代理服务器,使用的是Linux的iptables功能;
----电影服务器,使用的是Linux的samba服务的功能,文件和打印共享服务器;
----游戏服务器,cs服务器,在Linux系统下使用cs的Linux版本建立的服务器;
----客户存档服务器,采用的Linux的ftp服务器,常用的有:wu-ftp,pro-ftp软件建立的
----www服务器,使用的是Linux下的apache服务器软件;
----ftp服务器,下载服务器,使用的是Linux下的wu-ftp,pro-ftp,vs-ftp软件;----mail服务器,采用的是Linux下的sendmail,qmail软件;
----dns服务器,使用的是Linux下的bind软件;
----数据库服务器,使用的是mysql或者oracle软件;
----防火墙,软件防火墙服务器,使用的是Linux的iptables功能建立的;
----路由器,软路由器,使用的是Linux下的routed软件建立的;
----拨号服务器,vpn服务器等等;
六、系统集成范围太广,内容太多。相信IBM等建立的Linux研发中心主要就是做这个的。
|
Linux开发分驱动开发 和 应用开发。
两者区别很大, 既然你选择的是应用,而且侧重网络应用,那就多看看上面提到的几本书
APUE 2rd UNP TCPIP, 都是Richard Stevens的经典著作, APUE 2rd是后人在一版的基础上增修的, 在Stevens生前这个人就有跟他合作的意思,只可惜他英年早逝。
搞Linux开发 , 你不能不听说Richard Stevens
正如你搞驱动开发, 不能不知道 LDD 一样。
你需要了解的跟项目相关的知识有
1 GNU Make(至少要能读懂Makefile)
2 autoconf automake libtool(Linux很多程序,直接./configure再make,都是通过这些工具弄的)
3 shell编程(至少能读懂)
4 vim(or emacs)
5 一般的Linux命令(没有它怎么玩得动Linux,呵呵)。
7 man 和 info是你的助手
8 Linux下的系统调用函数(man syscalls)
8 gcc/g++ 一般命令参数
9 调试工具gdb, strace等(不错的IDE - KDEVELOP)
10 如果涉及GUI,那么QT和GTK+都是很可能的选择
11 。。。
两者区别很大, 既然你选择的是应用,而且侧重网络应用,那就多看看上面提到的几本书
APUE 2rd UNP TCPIP, 都是Richard Stevens的经典著作, APUE 2rd是后人在一版的基础上增修的, 在Stevens生前这个人就有跟他合作的意思,只可惜他英年早逝。
搞Linux开发 , 你不能不听说Richard Stevens
正如你搞驱动开发, 不能不知道 LDD 一样。
你需要了解的跟项目相关的知识有
1 GNU Make(至少要能读懂Makefile)
2 autoconf automake libtool(Linux很多程序,直接./configure再make,都是通过这些工具弄的)
3 shell编程(至少能读懂)
4 vim(or emacs)
5 一般的Linux命令(没有它怎么玩得动Linux,呵呵)。
7 man 和 info是你的助手
8 Linux下的系统调用函数(man syscalls)
8 gcc/g++ 一般命令参数
9 调试工具gdb, strace等(不错的IDE - KDEVELOP)
10 如果涉及GUI,那么QT和GTK+都是很可能的选择
11 。。。
|
APUE+UNP+TCPIPV1
|
学Gcc/G++编译器,
学GDB调试器
学写Makefile
学Socket
学GDB调试器
学写Makefile
学Socket
|
com?
兄弟,你还真是windows下面做的多了,com是微软自己弄的
用socket来通信
兄弟,你还真是windows下面做的多了,com是微软自己弄的
用socket来通信
|
兄弟,我就是从VC转来的。
一步一步来,很快的!
先熟悉系统,然后熟悉开发。
一步一步来,很快的!
先熟悉系统,然后熟悉开发。
|
到现在工作快两年了,我是04年毕业的
|
shou le xue xi
|
^_^,当我从家中的FC5回到公司的WINDOWS时,就已经习惯了用esc退出记事本或者Editplus,然后不是用ctr+s保存,而是选择了:wq。
进入MS-DOS时,习惯了用ls,可是就是提示没有该命令
Linux不错~
进入MS-DOS时,习惯了用ls,可是就是提示没有该命令
Linux不错~
|
有基础,很快的!!
|
好贴,收藏
|
我也是初学者,获益良多啊,感谢楼上诸位!