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呢?

TAG:PHP | 後端技術 | Linux | Linux開發 | Linux運維 |