不一定,即使是开发Linux桌面项目现在也多用Qt和electron。除非是系统级编程、嵌入式开发,你需要学习C语言。

现在以deepin为代表国内Linux发行版方兴未艾,目标就是让Linux成为无需长期学习简单上手的桌面操作系统。


看你用Linux是为了干什么咯。

如果你说的想学好Linux指的是工作或日常能用Linux,或在上面开发点东西,那倒不必非得学会c语言。

但是如果你说的学好Linux说的是Linux kernel,或者你想「玩」好Linux,那就有必要学一学c语言了。


学好Linux是指Linux的哪些方面呢?

仅仅是像Windows那样日常使用?

那选Ubuntu或deepin,它们对新手友好,跟C语言没什么关系

想在Linux下开发?

如果开发的东西跟C语言没什么关系,那就不用

还是想学习Linux内核?

能问这个问题估计不是要学习内核了。。。。


学linux不是一定要啃内核。

这个是误导吧,开源的意思是你只要想,你就可以接触到它的全部代码,代码面前没有秘密。

能够做不是必须做。

操作系统可以学的部分太多了,大部分人不需要了解内核就能玩


这是屁话. 有固然好

当然深入研究 连linux内核都要搞清楚所以然的 是的要c基础知识.

运维0基础到高级篇学习方法(大致总结了下):

基础篇:

1.Linux入门介绍,版本,Http/Https,Tcp/ip协议等。

2.基础入门:系统安装,常用命令,SSH,telnet,xinetd服务,yum配置,rsync,scp,resync,pssh远程同步,iptables防火墙,网路配置,系统优化。

3.Lnmp服务体系

4.Tomcat/Resin服务体系

5.Git服务体系

6.MySQL基础,命令管理,多种备份,迁移,主从(全复制,延时,半复制),监控,优化,许可权控制等。

7.Shell基础到深入,从0到写一个跳板机管理(1000行代码+)

8.Cacti/Nagios/Zaabix体系

9.Ansible自动化体系详解,玩转ansible管理百台伺服器+。

10.维护中小企业百台伺服器规模案例

提升篇:

1.Lvs+Keepalived技术体系

2.Haproxy+Keepalived技术体系,Lvs+Haproxy 4-7层体系,slb,elb技术体系

3.openldap,openvpn,ppt,l2tp技术体系

4.Cobber自动化安装系统

5.Redis各种姿势

6.bind-view

7.cdn技术体系

8.自建cdn,外部购买cdn策略,视频,在线教育,游戏,搜索,电商案例

9.Kvm/docker技术体系

10.rabbitmq技术体系学习

11.各种公有云技术体系:ars,ali,qq,青云等

12.维护大型企业的架构

高级篇:

1.python基础:版本区别,集合,字典,元祖,列表,迭代器,封装,函数,装饰器,class类,打包,编译,常用库用法。

2.python框架Django:,Mvc原理,session,cookie,后端Api,登陆,许可权,资料库/缓存,增删改查,模版,static,celery,调度,错误定义,收集,request,行为监控等

3.前端技术:html,css,js,bootstrap

4.项目:cmdb,流程系统,批量系统,配置管理系统,发布系统,监控系统,自动化装机系统,查询系统,DB/Redis平台系统,Docker私有云系统,Docker持续集成系统,Cdn调度平台,图片系统,用户系统,许可权系统,后台系统,uuid自动分配系统,定时任务系统,预控系统,调度系统


看你想怎么学好。

使用,不需要会shell,懂命令就可以了

深入了解为什么?,看看专业的分析,有很多原理性的东西

修改,优化。这就需要用c语言了,看实现源码


完全不学一点C语言的话,就连shell脚本都写不好,因为很多shell命令的返回值就是它内部使用的最后一个API调用的返回值。


看你用linux来做什么,两者之间没有绝对的关系。如果学习源码的话,光懂c语言还远远不够。


提出这个问题是因为我前面看了《unix编程艺术》,大概了解了linux的由来和当时一个操作系统的局面。我就突然想到想要了解它是不是要去了解内核,要不然只会一个命令去使用它显得有点单薄,所以提了一个这个问题。

不是。

如果你是做互联网后台的,学好java和bash,再加上搞清楚linux系统原理,也就足够了。


推荐阅读:
相关文章