不一定,即使是開發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系統原理,也就足夠了。


推薦閱讀:
相關文章