寫在前面
在我看來廊营,人人都應(yīng)該學(xué)習(xí)linux衰齐,但這不是本文探討的重點(diǎn)任斋。
本文主要從軟件測試人員的角度談?wù)剬W(xué)習(xí)和掌握linux的重要性、必要性耻涛、緊迫性废酷。
另外:
- 這里所說的linux系統(tǒng),是unix系統(tǒng)和類unix系統(tǒng)的統(tǒng)稱抹缕;
- 這里提到的linux操作澈蟆,指的是它的命令行操作;
為什么必須掌握
如果你是一名軟件測試人員卓研,尤其趴俘,是一名尚未掌握linux的測試人員,以下內(nèi)容奏赘,請(qǐng)一定要只字不落地閱讀寥闪,認(rèn)真地思考,如果認(rèn)可磨淌,請(qǐng)踐行起來疲憋。
在此之前,先來討論一個(gè)看似無關(guān)的話題梁只。
什么是能力缚柳?
一般來說,能力是完成一項(xiàng)目標(biāo)或者任務(wù)所體現(xiàn)出來的素質(zhì)敛纲。解釋中暗含了“能力是一個(gè)絕對(duì)值(正數(shù))”的意思喂击,是比較學(xué)術(shù)的解釋。
而從職業(yè)的場景淤翔、實(shí)戰(zhàn)的角度看翰绊,能力應(yīng)當(dāng)是相對(duì)的概念:
在某些方面,當(dāng)你具備一些素質(zhì),而其他人并不具備時(shí)监嗜,說明你有著相應(yīng)的能力谐檀。
即,
能力是參照于其他人高出的那部分素質(zhì)裁奇,而這參照范圍可以大到所有人桐猬、一個(gè)行業(yè)的從業(yè)人員,也可以小到一個(gè)公司的員工刽肠,甚至是幾個(gè)人溃肪。
舉例來說,無論是招聘網(wǎng)站的職位上音五,還是你自己的簡歷上惫撰,幾乎不會(huì)出現(xiàn)“能熟練使用windows操作系統(tǒng)、熟練使用Android系統(tǒng)躺涝、熟練使用IOS系統(tǒng)”等這樣的要求和能力說明厨钻。因?yàn)椋跍y試人員里坚嗜,這些能力是底限夯膀,是基礎(chǔ)中的基礎(chǔ),本就應(yīng)該是測試人員都具備的苍蔬,甚至都快成了網(wǎng)民大眾的基本功诱建。換句話說,具備了這些能力银室,在測試行業(yè)里沒有任何優(yōu)勢(shì)涂佃。但,linux則不同蜈敢,它常常出現(xiàn)在測試職位的技能要求里辜荠;求職者也常常會(huì)把自己熟悉linux這一事實(shí)顯式地直白地體現(xiàn)在簡歷里,哪怕是不算太熟悉抓狭,也會(huì)表明自己有所了解伯病。這意味著,熟練使用linux操作系統(tǒng)否过,甚至是簡單地會(huì)用午笛,在測試人員群體中,還算是稀缺的苗桂,是綜合能力的一種體現(xiàn)药磺。
通過這個(gè)現(xiàn)象可以得出一個(gè)結(jié)論,學(xué)習(xí)任何知識(shí)和技能時(shí)煤伟,不要害怕門檻高癌佩,學(xué)習(xí)成本高木缝,因?yàn)殚T檻高,也是切切實(shí)實(shí)的好事兒围辙。倘若門檻低我碟,別人也能輕易獲取和學(xué)習(xí),那你就沒有什么優(yōu)勢(shì)了姚建。門檻高了(其實(shí)大部分情況下只是看起來門檻高)矫俺,意味著許多人都會(huì)被排除在門檻外,那你就獲得了足夠的優(yōu)勢(shì)掸冤±逋校總結(jié)一句話,在培養(yǎng)一種技能和能力時(shí)稿湿,盡量選擇有門檻的催烘、稀缺的、有技術(shù)壁壘的缎罢。
思考與討論:
- 想想在你的學(xué)習(xí)和成長生涯中,有哪些知識(shí)和技術(shù)是讓你望而卻步考杉,不敢涉足的策精?
- 現(xiàn)在想想,這些技術(shù)別人是不是也有同樣的感覺崇棠?
- 那些你樂意學(xué)習(xí)的咽袜、可輕松掌握的,是否長遠(yuǎn)看有足夠的優(yōu)勢(shì)枕稀?
- 比你更優(yōu)秀的人询刹,比你多掌握了哪些有門檻的技術(shù)或能力呢?
如果你有這方面的經(jīng)歷和想法萎坷,歡迎暢言凹联。
掌握linux的好處
linux系統(tǒng)在IT行業(yè)的地位和重要性世人皆知,關(guān)于Unix和Linux的種種哆档,也請(qǐng)自行搜索蔽挠。除此之外,對(duì)測試人員來說瓜浸,linux還有其它非凡的意義澳淑。
技能棧足夠?qū)?/h4>
對(duì)于軟件測試人員來說,測試的任何產(chǎn)品都基于操作系統(tǒng)插佛,如常見的Windows杠巡、Android、Ios雇寇、Linux系統(tǒng)等氢拥。熟練使用操作系統(tǒng)本身就是測試人員的基本功蚌铜。而隨著對(duì)操作系統(tǒng)內(nèi)核的深入理解和掌握,對(duì)提高測試能力大有幫助兄一,也有利于測試得更加深入厘线。
linux系統(tǒng)是與windows系統(tǒng)截然不同的操作系統(tǒng),它們的設(shè)計(jì)理念出革、內(nèi)核原理有著巨大的差異造壮。一種內(nèi)核原理對(duì)應(yīng)著它獨(dú)有的一片天地,掌握一種操作系統(tǒng)骂束,就掌握了該操作系統(tǒng)下的那片天地:處理器管理耳璧、存儲(chǔ)器管理、文件管理展箱、設(shè)備管理旨枯、安全性、內(nèi)核結(jié)構(gòu)混驰、系統(tǒng)特性等攀隔。掌握這些內(nèi)容,不僅增長學(xué)識(shí)栖榨,也是你測試能力向深層次提高的關(guān)鍵一步昆汹。
unix和linux的家族足夠龐大,就連移動(dòng)端操作系統(tǒng)IOS和Android婴栽,也分別是基于Unix和Linux而衍生出來的作品满粗。掌握了linux,也就自然而然地熟知Android愚争、Ios映皆、Mac OS X等系統(tǒng)。熟悉了linux系統(tǒng)的命令行操作轰枝,對(duì)Android的shell捅彻,adb shell命令、Mac OS X的shell的熟悉自然不在話下鞍陨。linux還是最佳的也是應(yīng)用最多的服務(wù)器端操作系統(tǒng)沟饥。
所以,掌握了它湾戳,相當(dāng)于get了一堆技能贤旷。
操作和思維習(xí)慣
不可否認(rèn),windows的操作對(duì)測試人員影響至深砾脑,尤其是對(duì)功能測試人員幼驶。從我們一開始接觸電腦開始,windows的圖形化操作就深深地影響了我們韧衣。幾年下來盅藻,我們對(duì)所有的圖形化界面操作似乎有了一種天生的能力购桑,可以不加思索地使用它們。所以氏淑,當(dāng)你第一次接觸蘋果的Mac OS X系統(tǒng)或linux系統(tǒng)的圖形化界面時(shí)勃蜘,也可以很輕松地使用起來。因?yàn)槲覀円讶痪邆淞藢?duì)圖形化界面操作的經(jīng)驗(yàn)和思維習(xí)慣假残,所以新掌握一門圖形化操作系統(tǒng)沒有難度缭贡,同樣也沒有優(yōu)勢(shì)。
習(xí)慣甚至安逸于圖形化的操作辉懒,長遠(yuǎn)看阳惹,對(duì)于測試人員自身素質(zhì)的培養(yǎng)是有阻力的。
linux的命令行操作會(huì)改變你的操作習(xí)慣和思維習(xí)慣眶俩。它使你的雙手能夠更加密切地配合和協(xié)作莹汤,更好更快地完成各項(xiàng)工作。
圖形化界面雖然好看易用颠印,但解決問題還得靠命令行纲岭。
速度快
熟練使用linux,你會(huì)體會(huì)到什么是快线罕,以及怎樣更快荒勇。測試人員作為技術(shù)人員,應(yīng)該有技術(shù)極客精神闻坚,linux在這點(diǎn)上支持得足夠好。
linux的速度快兢孝,我想至少有這幾個(gè)方面的因素:
- 操作系統(tǒng)本身的性能穩(wěn)定且強(qiáng)悍窿凤;
- 命令行操作起來流暢且快速;
- 用命令來編碼跨蟹,實(shí)現(xiàn)復(fù)用雳殊,一次執(zhí)行多次使用;
圖形化操作系統(tǒng)在降低了學(xué)習(xí)成本和認(rèn)知門檻窗轩,提高了可讀性和可操作性的同時(shí)夯秃,也降低了操作系統(tǒng)的性能和操控的速度。不必對(duì)比linux和windows痢艺,在windows上就有很好的例證:
你有沒有嘗試過仓洼,當(dāng)在windows上想把多個(gè)超過1G的文件拷貝到U盤上時(shí),使用cmd命令拷貝會(huì)比圖形化操作要快得多的多堤舒,而且拷貝期間基本不影響你同時(shí)做別的事情色建。
linux的命令行操作,可以高效精準(zhǔn)地完成各項(xiàng)工作舌缤。同時(shí)箕戳,它也使得經(jīng)常使用linux的人輸入速度和準(zhǔn)確率更高某残,眼疾手快。
在實(shí)際工作中陵吸,需要用linux完成的工作玻墅,雖然可以“曲線救國”在windows下完成,但卻會(huì)花費(fèi)較多的時(shí)間壮虫。比如澳厢,不熟悉linux時(shí),經(jīng)常會(huì)把文件從linux系統(tǒng)中拷貝到windows系統(tǒng)中處理旨指,減慢了速度不說赏酥,還經(jīng)常因?yàn)橄到y(tǒng)換行符的差異傷腦筋,錯(cuò)誤百出谆构。在“不會(huì)使用linux”的困難面前裸扶,能夠想到用windows來解決問題,是值得鼓勵(lì)的搬素,這符合“沒有辦法創(chuàng)造辦法也要上”的精神呵晨。但反復(fù)這么做,卻從來不突破瓶頸熬尺,就有問題了摸屠。
linux在速度快這方面的優(yōu)勢(shì)就不一一列舉了。這里也并非是詆毀windows粱哼,只為體現(xiàn)linux的優(yōu)勢(shì)而已季二。
編程捷徑
熟悉了linux的命令行操作,你將會(huì)對(duì)所有的命令行操作有著天然的喜歡和自通揭措,哪怕是windows的dos命令胯舷。
linux的幾乎每個(gè)命令(工具)都很好用,有些甚至很強(qiáng)大绊含,如awk桑嘶、sed、vim躬充、sar等等逃顶,就拿awk來說,它在許多場合下被稱作是編程語言——處理文本數(shù)據(jù)的編程語言
充甚。
尤其是功能測試人員以政,掌握了linux命令,可謂是以最便捷伴找、最低成本的方式打開了編程的大門妙蔗,因?yàn)闀?huì)使用linux命令離會(huì)shell編程僅半步之遙。
知行合一
linux有很多哲學(xué)和文化疆瑰,在linux之外的世界里同樣適用眉反。比如昙啄,linux系統(tǒng)的設(shè)計(jì)理念是,讓每一個(gè)命令做好一件事(實(shí)現(xiàn)一個(gè)功能)寸五,用管道線將這些命令組合起來梳凛,去實(shí)現(xiàn)更多的功能。——這也稱得上是人生哲學(xué)了:
對(duì)個(gè)人而言梳杏,努力做好每一件事韧拒、仔細(xì)打磨每一樣技能,將它們的價(jià)值組合起來十性,價(jià)值則會(huì)更大叛溢;
對(duì)團(tuán)隊(duì)而言,每個(gè)成員都有自己的分工劲适,把自己專職的部分做好楷掉。再把團(tuán)隊(duì)成員的能力組合起來,就能做更多更有價(jià)值的事情了霞势。
這類的哲學(xué)還有許多烹植,知中有行,行中有知愕贡,就不一一列舉了草雕。
除以上之外,linux還有著其它的輔助作用固以。
其它
linux的命令行是基于文本的墩虹,因而在使用linux的過程中你不得不保持時(shí)刻閱讀文本的狀態(tài)。久而久之憨琳,閱讀和理解的能力得以提升诫钓。再者,linux的聯(lián)機(jī)手冊(cè)栽渴、命令的出錯(cuò)信息、系統(tǒng)信息等都是英文的稳懒,這會(huì)極大地提高英語閱讀能力闲擦、擴(kuò)大英語詞匯量等。
有不少測試人員看到程序的出錯(cuò)信息场梆,就會(huì)一概認(rèn)為是“出錯(cuò)了墅冷、程序運(yùn)行異常、程序不能運(yùn)行”等或油,已經(jīng)完全不具備閱讀信息的能力寞忿。而能夠熟練使用linux的人,則不會(huì)存在這種情況顶岸。
學(xué)習(xí)linux是有成本的腔彰,同時(shí)也非常超值叫编。專業(yè)人士應(yīng)該有專業(yè)人士的技術(shù)壁壘。
不掌握有沒有壞處霹抛?
不進(jìn)則退
linux涉及的技能棧如此廣泛搓逾,好處這么多,這在測試人員的要掌握的技能(技能棧)中是罕見的杯拐。所以霞篡,如果你沒有占領(lǐng)linux這塊高地,這在與同行競爭時(shí)是非常吃虧的端逼。
隨著你工作年限的增加朗兵,不能熟練使用linux就越發(fā)變成你的軟肋,除非你在其它方面有切切實(shí)實(shí)的優(yōu)勢(shì)和積累顶滩。
學(xué)習(xí)中的陷阱
在學(xué)習(xí)和成長的路上余掖,有一個(gè)陷阱,看起來正確無比诲祸,很具有迷惑性浊吏,實(shí)際則不然,那就是“用到了再學(xué)”救氯。在很長的一段時(shí)間里找田,我掉在這個(gè)陷阱里不能自拔。
近水樓臺(tái)先得月着憨,但首先得先是個(gè)樓臺(tái)墩衙。用到了再學(xué),也是一樣甲抖。在用到之前漆改,首先得知道,然后才是邊用邊學(xué)地漸進(jìn)式的成長准谚。而從“不知道”到“知道”挫剑,是不連續(xù)的,往往需要先破冰柱衔。
“為了儲(chǔ)備知識(shí)去學(xué)學(xué)不進(jìn)去樊破,我這個(gè)人適合用到了再學(xué)∷纛恚”
“系統(tǒng)學(xué)習(xí)效率太低哲戚,用到了再學(xué)豈不是更快?”
“學(xué)這個(gè)干什么艾岂?現(xiàn)在又用不到顺少!”
……
但,很多時(shí)候,由于對(duì)一門知識(shí)或技能的知之甚少脆炎,你根本就沒有機(jī)會(huì)用到它梅猿,甚至根本不曾聽說它。它在你的世界里屬于“你不知道你不知道”的那部分腕窥。
舉個(gè)親身經(jīng)歷的例子:
當(dāng)我學(xué)會(huì)了用vim對(duì)文件內(nèi)容進(jìn)行批量替換粒没,我興奮不已,我再也不用逐個(gè)編輯要修改的內(nèi)容了簇爆,也不必將那些配置文件先下載到pc上用notepad++進(jìn)行批量替換了癞松。我將“用vim對(duì)配置文件的特定內(nèi)容進(jìn)行批量替換”這一系列的操作用得是爐火純青,以至于輸入命令的速度入蛆、使用vi的速度都得到了極大的提高响蓉,曾被戲稱為“無影手”。比起之前哨毁,vim已經(jīng)極大地提高了我的效率枫甲。直到我又學(xué)習(xí)到了sed這個(gè)命令,才發(fā)現(xiàn)原來非交互式地修改文件內(nèi)容更為高效6笸省O牖谩!現(xiàn)在我知道了sed這個(gè)命令话浇,我自然可以將其認(rèn)真學(xué)習(xí)一番脏毯,這并不難,但“windows上編輯文本-->linux下用vim”幔崖,“vim-->sed”卻不得不需要破冰食店。
我想,我并不孤獨(dú)赏寇。你也一定有相似的經(jīng)歷吉嫩。linux中這類的例子非常常見,有時(shí)候多掌握某個(gè)命令的一個(gè)參數(shù)就會(huì)讓你效率提升很多嗅定。
總結(jié)
在軟件測試領(lǐng)域里自娩,必須要學(xué)習(xí)和掌握的內(nèi)容遠(yuǎn)遠(yuǎn)不止linux一項(xiàng),這也是我們后續(xù)會(huì)聊到的話題渠退。但就普及程度忙迁、應(yīng)用范圍、重要程度而言智什,linux是名列前茅的动漾。
許多人能夠意識(shí)到掌握linux的重要性和必要性丁屎,但卻遲遲沒有開始(沒有意識(shí)到緊迫性)荠锭。這些人總是有著這樣或那樣的借口。比如晨川,現(xiàn)在還用不到证九、沒時(shí)間删豺,沒環(huán)境,等等愧怜。讀了上述內(nèi)容呀页,你是否有些心動(dòng)了呢?