web後端攻城獅要學linux嗎,一般要學到什麼水平呢?
如題,本人想往php後端方向走,看好多招聘要懂linux,想提前了解下
需要學習,非常重要。
至少需要會以下幾點:
1、常用命令:cd, ls, cp, mkdir, mv, top, ps, cat, ssh, scp, tail, head, find, grep, chmod, chown,kill, rm, ping等等。2、一些基本的概念:管道,重定向,標準輸出,標準錯誤輸出等等。3、vi或vim的基本操作。
4、計劃任務的配置。5、日誌查看分析。6、了解php, apache, nginx等的配置。7、能讀懂一些bash shell腳本,會一些df,du,netstat之類的命令。我說一下,為什麼需要學習linux。
我是做PHP的,之前在一家國內電商公司做促銷相關開發。
1、我接手這個項目的時候,很多東西都是沒有文檔的,我必須自己上伺服器去摸清楚一些狀況。
1)我想知道有哪些腳本在跑,這些腳本是否都有日誌輸出等等。 這個就需要會一些linux基本命令,cd,ls,find,cat,crontab等等。2) 我想了解一些web項目放在什麼位置,配置的域名,訪問日誌放在哪兒。
這個就需要我知道查看nginx的虛擬主機配置,vim等的基本用法。2、部署上線是有專門運維負責的,但是上線之後,我得確認一切運行正常。 對於web程序,線上頁面上作一些操作測試就行。 對於腳本,最好的方法當然是查看日誌了,crontab, cat, tail等命令必不可少。 對於數據,就得mysql命令行查看了。3、負載情況查看,有時候,運維會在伺服器上裝上一些zabbix之類的東西,讓你可以很方便地在網頁上查看伺服器上的狀況。 但是有的伺服器上沒有裝,那你只好自己上伺服器看了。top,sar, ps等命令就有必要了。4、統計,有時候產品會讓你幫統計一些數據。sed, grep, wc等就有了必要。5、排查線上問題。這個時候所需要會的是最多的。1)、分析日誌很重要。cat, sed, tail, wc等必不可少。
2)、一些查看進程,磁碟狀況,連接數,DNS狀況的命令必不可少,ps, df, du, netstat, nslookup, ping等。公司是有專業運維的,但是他們是不了解的你的項目的,脫離你的項目,有些 問題單靠運維是發現不了的,所以這些你也得會。6、有一次有個腳本,我們希望它循環執行,每次執行只有幾秒的時間間隔,這個單靠計劃任務不好弄,所以我還得會一些bash shell。7、運維只管線上,開發環境和測試環境一般是不管的。那麼對於有些項目,我們得自己安裝一些擴展或軟體,自己在開發環境和測試環境中部署。我現在這個公司,有些東西運維是不管的,得自己去部署。
那就得會chmod, chown, scp, svn,mkdir, rm, crontab等命令了,得了解nginx, rsync的一些配置。樓里人說不重要,用winscp就行了。1、實際上,對許可權管理稍微嚴格的公司,是不可能讓你直接通過ssh協議登上去的,所以像winscp這樣的軟體根本就用不了。 我目前所在的公司,都是先登錄到通道機,再登錄到目的伺服器上的。2、難道大家做的項目中一個腳本都沒有,不需要查看計劃任務,不需要重定向輸出計劃任務的輸出?3、日誌,有時候雖然運維通會讓你能夠直接通過web界面獲取日誌,但如果這個日誌有好幾個G呢?
作為一個專門研究Linux學習的團隊,給大家看一下我們對Linux運維學習的總結,歡迎大家拍磚,下面我們團隊整理的學習路線,一般的話Web工程師學完下面的第一階段就OK了。
運維學習階段,需要分為四個階段,linux初級入門-àlinux中級進階-àlinux高級提升,和資深方向細化。
第一階段:初級入門
初級階段需要把linux學習路線搞清楚,任何學習都是循序漸進的,所以學linux也是需要有一定的路線。
個人建議學習的路線如下:
初級入門:
1、Linux基礎知識、基本命令(起源、組成、常用命令如cp、ls、file、mkdir等常見操作命令)
2、Linux用戶及許可權基礎
3、Linux系統進程管理進階
4、linux高效文本、文件處理命令(vim、grep、sed、awk、find等命令)
5、shell腳本入門(可邊練習邊學習)
第二階段:中級進階
中級進階需要在充分了解linux原理和基礎知識之後,對上層的應用和服務進行深入學習,其中說到服務肯定涉及到網路的相關知識,是需要花時間學習的。
1、TCP/IP網路基礎(差不多CCNA、NP的知識就夠用)
2、Linux企業常用服務(如dns、http、ftp、mail、nfs等)
3、Linux企業級安全原理和防範技巧(系統性能/安全、安全威脅模型和保護方法
4、 加密/解密原理及數據安全、系統服務訪問控制及服務安全基礎
5、iptables安全策略構建
6、shell腳本進階(主要是結合一些應用,寫一些案例)
7、MySQL應用原理及管理入門(能管理和搭建一個個人博客站點)
學到這裡,掌握的基本技能,已經夠用了,已經能做一些基礎的運維工作和簡單維護了。
第三階段:高級提升
1、http服務代理緩存加速(其中主要學習varnish、nginx緩存系統,要對CDN的知識有所了解。)
2、企業級負載集群(其中主要學習nginx、haproxy、lvs要對主要知識熟練掌握,對負載均衡演算法有清晰認識,)
3、企業級高可用集群 (其中需要對keepalived,heartbeat等進行深入講解)
4、運維監控zabbix詳解(主要是zabbix、cacti、nagios等監控系統,現在用的比較多的是zabbix)
5、運維自動化學習(需要學一些開源運維自動化工具的使用如ansible、puppet、cobbler等運維自動化工具)
能掌握到這裡,基本能處理搞定很多工作了,可以去面試高級運維工程師,差不多薪資能達到12-18K左右
第四階段:資深方向進階
1、 大數據方向(需要對hadoop、storm等常見開源大數據系統需要深入了解)
2、 雲計算方向(主要是openstack這套東西,當然像一些kvm等虛擬化技術,也是需要掌握的,現在docker也比較流行)
3、 運維開發(主要是python運維開發)
4、 自動化運維(在之前自動化基礎上做深入)
5、 運維架構師(主要需要廣度,差不多5年左右以上經驗,可以擔當此職位)
另外我們整理了一個學習知識庫,你可以看一下:
【超全整理】《Linux雲計算從入門到精通》系列實戰筆記全放送 | Linux運維部落
Apache,Nginx配置什麼的要會吧。。。。最起碼的
謝邀,正如上面各位所答,如果僅僅是工作需要。並不需要太多的Linux水平。日常操作也不用登錄到Linux中,刪改文件用winscp拉到Windows就好了。然而,如果題主把Linux作為興趣,在業餘時間鑽研的話。那麼對你PHP的幫助決不是一星兩點的。熟悉Linux及其工作機制的話,你解決PHP問題的能力和速度都會有很大的提升。
本人去年應屆PHP,目前已經離不開Linux下的操作,個人看法是:非常有必要。原因上面的答案已經有提到一些了。
Web 後端, Linux 學得多深都不為過啊
別學做包這種沒用的,學學lnmp環境的搭建(lamp已經過時了,不過學學也可以),學學性能分析和優化
看情況,普通PHP只要會文件操作,如果想成為大師級必須精通。
軟體測試
一般學到會自製rpm/deb包的程度就差不多了。
因為目前業界99%都是 Linux 系。所以一定要學。但是懂 Linux 操作只是基本,那些命令,各種服務安裝和配置,只要去用,就一定能學會,沒什麼難的。更重要的是原理,Linux 的基石,就算不學透至少要清楚,建議那些命令會了後要再看看 TCP/IP 協議詳解,APUE。這樣以後稱自己是後端開發才有底氣。
推薦閱讀:
※關於linux目錄刪除的問題?
※Linux 伺服器有必要開啟 iptables 防火牆么?
※Linux文件系統的核心結構?
※為什麼把部分蘋果設備的系統時間調整為1970.1.1,重啟後就會變磚?
※QT5 中的.pro 文件中為何要加入QT += widgets,而不能在包頭文件的時候就包一個widgets/QApplication呢?