在我看來,人人都應該學習linux,但這不是本文探討的重點。
本文主要從軟件測試人員的角度談談學習和掌握linux的重要性、必要性、緊迫性。linux
另外:shell
若是你是一名軟件測試人員,尤爲,是一名還沒有掌握linux的測試人員,如下內容,請必定要隻字不落地閱讀,認真地思考,若是承認,請踐行起來。編程
在此以前,先來討論一個看似無關的話題。vim
通常來講,能力是完成一項目標或者任務所體現出來的素質。解釋中暗含了「能力是一個絕對值(正數)」的意思,是比較學術的解釋。
而從職業的場景、實戰的角度看,能力應當是相對的概念:
在某些方面,當你具有一些素質,而其餘人並不具有時,說明你有着相應的能力。
即,
能力是參照於其餘人高出的那部分素質,而這參照範圍能夠大到全部人、一個行業的從業人員,也能夠小到一個公司的員工,甚至是幾我的。windows
舉例來講,不管是招聘網站的職位上,仍是你本身的簡歷上,幾乎不會出現「能熟練使用windows操做系統、熟練使用Android系統、熟練使用IOS系統」等這樣的要求和能力說明。由於,在測試人員裏,這些能力是底限,是基礎中的基礎,本就應該是測試人員都具有的,甚至都快成了網民大衆的基本功。換句話說,具有了這些能力,在測試行業裏沒有任何優點。但,linux則不一樣,它經常出如今測試職位的技能要求裏;求職者也經常會把本身熟悉linux這一事實顯式地直白地體如今簡歷裏,哪怕是不算太熟悉,也會代表本身有所瞭解。這意味着,熟練使用linux操做系統,甚至是簡單地會用,在測試人員羣體中,還算是稀缺的,是綜合能力的一種體現。安全
經過這個現象能夠得出一個結論,學習任何知識和技能時,不要懼怕門檻高,學習成本高,由於門檻高,也是切切實實的好事兒。假若門檻低,別人也能輕易獲取和學習,那你就沒有什麼優點了。門檻高了(其實大部分狀況下只是看起來門檻高),意味着許多人都會被排除在門檻外,那你就得到了足夠的優點。總結一句話,在培養一種技能和能力時,儘可能選擇有門檻的、稀缺的、有技術壁壘的。服務器
思考與討論:編程語言
若是你有這方面的經歷和想法,歡迎暢言。工具
linux系統在IT行業的地位和重要性世人皆知,關於Unix和Linux的種種,也請自行搜索。除此以外,對測試人員來講,linux還有其它非凡的意義。性能
對於軟件測試人員來講,測試的任何產品都基於操做系統,如常見的Windows、Android、Ios、Linux系統等。熟練使用操做系統自己就是測試人員的基本功。而隨着對操做系統內核的深刻理解和掌握,對提升測試能力大有幫助,也有利於測試得更加深刻。
linux系統是與windows系統大相徑庭的操做系統,它們的設計理念、內核原理有着巨大的差別。一種內核原理對應着它獨有的一片天地,掌握一種操做系統,就掌握了該操做系統下的那片天地:處理器管理、存儲器管理、文件管理、設備管理、安全性、內核結構、系統特性等。掌握這些內容,不只增加學識,也是你測試能力向深層次提升的關鍵一步。
unix和linux的家族足夠龐大,就連移動端操做系統IOS和Android,也分別是基於Unix和Linux而衍生出來的做品。掌握了linux,也就天然而然地熟知Android、Ios、Mac OS X等系統。熟悉了linux系統的命令行操做,對Android的shell,adb shell命令、Mac OS X的shell的熟悉天然不在話下。linux仍是最佳的也是應用最多的服務器端操做系統。
因此,掌握了它,至關於get了一堆技能。
不能否認,windows的操做對測試人員影響至深,尤爲是對功能測試人員。從咱們一開始接觸電腦開始,windows的圖形化操做就深深地影響了咱們。幾年下來,咱們對全部的圖形化界面操做彷佛有了一種天生的能力,能夠不加思索地使用它們。因此,當你第一次接觸蘋果的Mac OS X系統或linux系統的圖形化界面時,也能夠很輕鬆地使用起來。由於咱們已然具有了對圖形化界面操做的經驗和思惟習慣,因此新掌握一門圖形化操做系統沒有難度,一樣也沒有優點。
習慣甚至安逸於圖形化的操做,長遠看,對於測試人員自身素質的培養是有阻力的。
linux的命令行操做會改變你的操做習慣和思惟習慣。它使你的雙手可以更加密切地配合和協做,更好更快地完成各項工做。
圖形化界面雖然好看易用,但解決問題還得靠命令行。
熟練使用linux,你會體會到什麼是快,以及怎樣更快。測試人員做爲技術人員,應該有技術極客精神,linux在這點上支持得足夠好。
linux的速度快,我想至少有這幾個方面的因素:
圖形化操做系統在下降了學習成本和認知門檻,提升了可讀性和可操做性的同時,也下降了操做系統的性能和操控的速度。沒必要對比linux和windows,在windows上就有很好的例證:
你有沒有嘗試過,當在windows上想把多個超過1G的文件拷貝到U盤上時,使用cmd命令拷貝會比圖形化操做要快得多的多,並且拷貝期間基本不影響你同時作別的事情。
linux的命令行操做,能夠高效精準地完成各項工做。同時,它也使得常用linux的人輸入速度和準確率更高,眼疾手快。
在實際工做中,須要用linux完成的工做,雖然能夠「曲線救國」在windows下完成,但卻會花費較多的時間。好比,不熟悉linux時,常常會把文件從linux系統中拷貝到windows系統中處理,減慢了速度不說,還常常由於系統換行符的差別傷腦筋,錯誤百出。在「不會使用linux」的困難面前,可以想到用windows來解決問題,是值得鼓勵的,這符合「沒有辦法創造辦法也要上」的精神。但反覆這麼作,卻歷來不突破瓶頸,就有問題了。
linux在速度快這方面的優點就不一一列舉了。這裏也並不是是詆譭windows,只爲體現linux的優點而已。
熟悉了linux的命令行操做,你將會對全部的命令行操做有着自然的喜歡和自通,哪怕是windows的dos命令。
linux的幾乎每一個命令(工具)都很好用,有些甚至很強大,如awk、sed、vim、sar等等,就拿awk來講,它在許多場合下被稱做是編程語言——處理文本數據的編程語言
。
尤爲是功能測試人員,掌握了linux命令,可謂是以最便捷、最低成本的方式打開了編程的大門,由於會使用linux命令離會shell編程僅半步之遙。
linux有不少哲學和文化,在linux以外的世界裏一樣適用。好比,linux系統的設計理念是,讓每個命令作好一件事(實現一個功能),用管道線將這些命令組合起來,去實現更多的功能。——這也稱得上是人生哲學了:
對我的而言,努力作好每一件事、仔細打磨每同樣技能,將它們的價值組合起來,價值則會更大;
對團隊而言,每一個成員都有本身的分工,把本身專職的部分作好。再把團隊成員的能力組合起來,就能作更多更有價值的事情了。
這類的哲學還有許多,知中有行,行中有知,就不一一列舉了。
除以上以外,linux還有着其它的輔助做用。
linux的命令行是基於文本的,於是在使用linux的過程當中你不得不保持時刻閱讀文本的狀態。長此以往,閱讀和理解的能力得以提高。再者,linux的聯機手冊、命令的出錯信息、系統信息等都是英文的,這會極大地提升英語閱讀能力、擴大英語詞彙量等。
有很多測試人員看到程序的出錯信息,就會一律認爲是「出錯了、程序運行異常、程序不能運行」等,已經徹底不具有閱讀信息的能力。而可以熟練使用linux的人,則不會存在這種狀況。
學習linux是有成本的,同時也很是超值。專業人士應該有專業人士的技術壁壘。
linux涉及的技能棧如此普遍,好處這麼多,這在測試人員的要掌握的技能(技能棧)中是罕見的。因此,若是你沒有佔領linux這塊高地,這在與同行競爭時是很是吃虧的。
隨着你工做年限的增長,不能熟練使用linux就愈加變成你的軟肋,除非你在其它方面有切切實實的優點和積累。
在學習和成長的路上,有一個陷阱,看起來正確無比,很具備迷惑性,實際則否則,那就是「用到了再學」。在很長的一段時間裏,我掉在這個陷阱裏不能自拔。
近水樓臺先得月,但首先得先是個樓臺。用到了再學,也是同樣。在用到以前,首先得知道,而後纔是邊用邊學地漸進式的成長。而從「不知道」到「知道」,是不連續的,每每須要先破冰。
「爲了儲備知識去學學不進去,我這我的適合用到了再學。」
「系統學習效率過低,用到了再學豈不是更快?」
「學這個幹什麼?如今又用不到!」
……
但,不少時候,因爲對一門知識或技能的知之甚少,你根本就沒有機會用到它,甚至根本未曾據說它。它在你的世界裏屬於「你不知道你不知道」的那部分。
舉個親身經歷的例子:
當我學會了用vim對文件內容進行批量替換,我興奮不已,我不再用逐個編輯要修改的內容了,也沒必要將那些配置文件先下載到pc上用notepad++進行批量替換了。我將「用vim對配置文件的特定內容進行批量替換」這一系列的操做用得是爐火純青,以致於輸入命令的速度、使用vi的速度都獲得了極大的提升,曾被戲稱爲「無影手」。比起以前,vim已經極大地提升了個人效率。直到我又學習到了sed這個命令,才發現原來非交互式地修改文件內容更爲高效!!!如今我知道了sed這個命令,我天然能夠將其認真學習一番,這並不難,但「windows上編輯文本→linux下用vim」,「vim→sed」卻不得不須要破冰。
我想,我並不孤獨。你也必定有類似的經歷。linux中這類的例子很是常見,有時候多掌握某個命令的一個參數就會讓你效率提高不少。
在軟件測試領域裏,必需要學習和掌握的內容遠遠不止linux一項,這也是咱們後續會聊到的話題。但就普及程度、應用範圍、重要程度而言,linux是名列前茅的。
許多人可以意識到掌握linux的重要性和必要性,但卻遲遲沒有開始(沒有意識到緊迫性)。這些人老是有着這樣或那樣的藉口。好比,如今還用不到、沒時間,沒環境,等等。讀了上述內容,你是否有些心動了呢?