1. 本文內容來源:本文是將自己在20年里找作業的部分筆記重新整理了下,不少內容當時是查閱的知乎、博客園、書籍等(部分還能找到原帖的均附上了鏈接),我自己在這一年里也是從牛客上學習了很多面經和經驗帖,識訓了好幾家大廠offer,最近整理出來這些,也算是回饋牛客吧,希望能對找測開崗的牛友們有幫助!
2. 本文內容順序:測驗基礎理論、測驗崗經常被問到的場景題、智力題、測驗崗高頻演算法題、資料庫、 Linux知識點,
3. 本文閱讀建議:我結合了自身的面試經歷,把高頻的、重要的知識點都用★標注了,★越多代表自己被問得次數越多,(當然這也只是我的面試經歷,存在局限性,)
4. 叨逼叨:親測,測驗崗的面試難度相對開發崗確實低一些,不過面試的內容差別倒不是特別大,像計網、OS、資料結構、資料庫、演算法/刷題這些都是要準備的,并且測驗崗的面試還需要你額外掌握測驗相關的知識,也就是本文的一、二兩部分內容,不然你叫面試官怎么想你呢?你一點測驗的理論知識都不了解,對方只會覺得你大概率是做不來開發才想著試試測驗崗吧,所以得快速支棱起自己的測驗技能樹,讓面試官覺得你是有志于干測驗開發的, 這一點很重要,
5. 如果你是正在找實習,也可以參考我的另一篇關于找作業的文章: https://www.nowcoder.com/discuss/603681?source_id=profile_create_nctrack&channel=-1
常用自動化測驗工具
1、Appium
官網: http://appium.io
AppUI自動化測驗
Appium 是一個移動端自動化測驗開源工具,支持iOS 和Android 平臺,支持Python、Java 等語言,即同一套Java Python 腳本可以同時運行在iOS 和Android平臺,Appium 是一個C/S 架構, 核心是一個 Web 服務器,它提供了一套 REST 的介面,當收到客戶端的連接后,就會監聽到命令,然后在移動設備上執行這些命令,最后將執行結果放在 HTTP 回應中返還給客戶端,
License:免費
2、Selenium(★★)
官網: https://www.seleniumhq.org/download/
WebUI自動化測驗
Selenium是一個用于Web應用程式測驗的工具,Selenium已經成為Web自動化測驗工程師的首選,Selenium測驗直接運行在瀏覽器中,就像真正的用戶在操作一樣,支持的瀏覽器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等,這個工具的主要功能包括:測驗與瀏覽器的兼容性——測驗你的應用程式看是否能夠很好得作業在不同瀏覽器和作業系統之上,測驗系統功能——創建回歸測驗檢驗軟體功能和用戶需求,支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測驗腳本,Selenium 是ThoughtWorks專門為Web應用程式撰寫的一個驗收測驗工具,其升級版本為Webdriver,
License:免費
3、Postman(★★★)
官網: https://www.getpostman.com
介面測驗
Postman 提供功能強大的 Web API 和 HTTP 請求的除錯,它能夠發送任何型別的HTTP 請求 (GET, POST, PUT, DELETE…),并且能附帶任何數量的引數和 Headers,不僅如此,它還提供測驗資料和環境配置資料的匯入匯出,付費的 Post Cloud 用戶還能夠創建自己的 Team Library 用來團隊協作式的測驗,并能夠將自己的測驗收藏夾和用例資料分享給團隊,
License:免費
4、Jmeter(★★★)
官網: https://jmeter.apache.org
介面測驗,性能測驗
JMeter是Apache組織的開放源代碼專案,它是功能和性能測驗的工具,100%的用java實作;
JMeter可以用于測驗靜態或者動態資源的性能(檔案、Servlets、Perl腳本、java物件、資料庫和查詢、ftp服務器或者其他的資源),JMeter用于模擬在服務器、網路或者其他物件上附加高負載以測驗他們提供服務的受壓能力,或者分析他們提供的服務在不同負載條件下的總性能情況,你可以用JMeter提供的圖形化界面分析性能指標或者在高負載情況下測驗服務器/腳本/物件的行為,
使用Jmeter做介面測驗需要注意一點,小心使用“用戶定義變數”,Jmeter組件有優先級的,如果多個執行緒同時執行的時候,“用戶定義變數”組件定義的變數可能會亂套,
License:免費
5、Loadrunner
官網: https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview
性能測驗
LoadRunner,是一種預測系統行為和性能的負載測驗工具,通過以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題,LoadRunner能夠對整個企業架構進行測驗,企業使用LoadRunner能最大限度地縮短測驗時間,優化性能和加速應用系統的發布周期, LoadRunner可適用于各種體系架構的自動負載測驗,能預測系統行為并評估系統性能,
License:商業
6、Jenkins(★★★★★)
官網: https://jenkins.io
持續集成
自動化構建 編譯,部署,任務執行,測驗報告,郵件通知等,
License:免費
手機兼容性測驗(機型選擇)

測驗基礎理論
https://blog.csdn.net/lim13760114815/article/details/88396681
軟體測驗開發流程:
1.需求分析
在測驗前拿到產品需求檔案,進行需求分析及需求評審前先對需求檔案進行詳細的閱讀,對有疑問的地方進行標注,
具體可從以下進行:
a.分析產品功能點
b.產品核心競爭力
c.Kano模型、馬斯洛需求分析、多問幾個為什么、背景關系分析法
2.制訂測驗用例(重要)
工欲善其事,必先利其器;對測驗而言,測驗用例就是器,做好了才能把好關
a.使用思維導圖列舉測驗大綱,盡量發散,想到什么就寫什么,;先放后收,對知識點進行總結和歸納,標記重點測驗模塊,洗掉冗余及重復測驗點,
b.可使用邊界值法、等價類劃分法、錯誤推測法、因果圖法等設計案例
c.根據測驗大綱制定測驗用例,需包含模塊名、測驗優先級、操作步驟、期望結果、測驗結果、備注
3.評審測驗用例
a.測驗作為主導,聯合開發、專案經理、PM進行測驗用例評審
b.可先講解測驗大綱,讓開發、專案經理、PM心中對測驗用例有個大概;后再進行詳細測驗用例講解
4.執行測驗
a.根據測驗用例執行測驗
b.發現問題保留現場,記錄測驗方法,通知開發解決問題
c.覆寫測驗用例之外若有時間可進行探索性測驗
5.提交Bug并推動Bug解決
a.在Bug管理工具上提交Bug,詳細記錄測驗步驟
b.根據Bug嚴重程度劃分Bug等級:致命、嚴重、一般、提示
c.推動開發解決問題,記錄問題進展,一般聊天溝通,若問題嚴重則需通過郵件推動解決
6.回歸測驗
a.對已修復的Bug進行驗證
b.對Bug所在模塊進行基本功能測驗;整體進行冒煙測驗,確保不會因為修改Bug而引起其他功能出現問題
7.撰寫并提交測驗報告
可使用金字塔原理設計測驗報告,先總后分,上級統領下級,下級推匯出上級,環環相扣
a.對Bug進行匯總,篩選出各個等級的Bug存活情況
b.制訂Bug發現及解決曲線圖,一般版本正常應是前期多,后期收斂,存活的是級別較低的Bug
c.總結歸納版本情況,評估發布與否
軟體測驗方法(★★★★★)
1. 軟體測驗方法 :白盒測驗、黑盒測驗、灰盒測驗、靜態測驗、動態測驗
2. 白盒測驗 :是一種測驗用例設計方法,在這里盒子指的是被測驗的軟體,白盒,顧名思義即盒子是可視的,你可以清楚盒子內部的東西以及里面是如何運作的,因此白盒測驗需要你對系統內部的結構和作業原理有一個清楚的了解,并且基于這個知識來設計你的用例,
白盒測驗技術一般可被分為靜態分析和動態分析兩類技術,
靜態分析主要有:控制流分析技術、資料流分析技術、資訊流分析技術,
動態分析主要有:邏輯覆寫率測驗(分支測驗、路徑測驗等),程式插裝等,
白盒測驗優點:迫使測驗人員去仔細的思考軟體的實作;可以檢測代碼中的每條分支和路徑;揭示隱藏在代碼中的錯誤;對代碼的測驗比較徹底;最優化,
白盒測驗缺點:昂貴;無法檢測代碼中遺漏的路徑和資料敏感性錯誤;不驗證規格的正確性,
3. 黑盒測驗又叫功能測驗 ,這是因為在黑盒測驗中主要關注被測軟體的功能實作,而不是內部邏輯,在黑盒測驗中,被測物件的內部結構,運作情況對測驗人員是不可見的,測驗人員對被測產品的驗證主要是根據其規格,驗證其與規格的一致性,
在絕大多數沒有用戶參與的黑盒測驗中,最常見的測驗有:功能性測驗、容量測驗、安全性測驗、負載測驗、恢復性測驗、標桿測驗、穩定性測驗、可靠性測驗等,
4. 灰盒測驗 :白盒測驗和黑盒測驗往往不是決然分開的,一般在白盒測驗中交叉使用黑盒測驗的方法,在黑盒測驗中交叉使用白盒測驗的方法,灰盒測驗就是這類界于白盒測驗和黑盒測驗之間的測驗,
最常見的灰盒測驗是集成測驗 ,
5. 靜態測驗 :是一種不通過執行程式而進行測驗的技術,它的關鍵功能是檢查軟體的表示和描述是否一致,沒有沖突或者沒有歧義,
6. 動態測驗 :包含了程式在受控的環境下使用特定的期望結果進行正式的運行,它顯示了一個系統在檢查狀態下是正確還是不正確,
單元測驗屬于白盒測驗范疇;集成測驗屬于灰盒測驗范疇;系統測驗屬于黑盒測驗范疇 ,
CI/CD理解(★★★★★)
摘自 如何理解持續集成、持續交付、持續部署? - yumminhuang的回答 - 知乎 https://www.zhihu.com/question/23444990/answer/89426003
持續集成

持續集成強調開發人員提交了新代碼之后,立刻進行構建、(單元)測驗,根據測驗結果,我們可以確定新代碼和原有代碼能否正確地集成在一起,
持續交付

持續交付在持續集成的基礎上,將集成后的代碼部署到更貼近真實運行環境的「類生產環境」(production-like environments)中,比如,我們完成單元測驗后,可以把代碼部署到連接資料庫的 Staging 環境中更多的測驗,如果代碼沒有問題,可以繼續手動部署到生產環境中,
持續部署

持續部署則是在持續交付的基礎上,把部署到生產環境的程序自動化,
我個人覺得持續集成、持續交付、持續部署非常值得推廣,開發程序中最怕集成時遇到問題導致返工,而持續集成、持續交付、持續部署恰恰可以早發現早解決,從而可以避免這個問題,
介面檔案(★★★)
一、什么是介面檔案?
在專案開發中,web專案的前后端分離開發,APP開發,需要由前后端工程師共同定義介面,撰寫介面檔案,之后大家都根據這個介面檔案進行開發,到專案結束前都要一直維護,
二、為什么要寫介面檔案?
1、專案開發程序中前后端工程師有一個統一的檔案進行溝通交流開發
2、專案維護中或者專案人員更迭,方便后期人員查看、維護
三、介面規范是什么?
首先介面分為四部分:方法、uri、請求引數、回傳引數
1、方法:新增(post) 修改(put) 洗掉(delete) 獲取(get)
2、uri:以/a開頭,如果需要登錄才能呼叫的介面(如新增、修改;前臺的用戶個人資訊,資金資訊等)后面需要加/u,即:/a/u;中間一般放表名或者能表達這個介面的單詞;get方法,如果是后臺通過搜索查詢串列,那么以/search結尾,如果是前臺的查詢串列,以/list結尾;url引數就不說了,
3、請求引數和回傳引數,都分為5列:欄位、說明、型別、備注、是否必填
欄位是類的屬性;說明是中文釋義;型別是屬性型別,只有String、Number、Object、Array四種型別;備注是一些解釋,或者可以寫一下例子,比如負責json結構的情況,最好寫上例子,好讓前端能更好理解;是否必填是欄位的是否必填,
4、回傳引數結構有幾種情況:1、如果只回傳介面呼叫成功還是失敗(如新增、洗掉、修改等),則只有一個結構體:code和message兩個引數;2、如果要回傳某些引數,則有兩個結構體:1是code/mesage/data,2是data里寫回傳的引數,data是object型別;3、如果要回傳串列,那么有三個結構體,1是code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5個引數,其中list是Arrary型別,list里放object,object里是具體的引數,
注意:uri地址里不允許出現大寫字母,如果是兩個單詞拼接,用/分開
示例:
請求地址:get /a/student/list
請求引數:

回傳引數:

單元測驗(★★★)
理解:類比電視機組裝完后不能點亮,如果檢測的話,需要一個一個電器器件去排查,如果從一開始對每個元器件進行測驗,就能夠極大程度的排除這個問題,
定義:單元測驗是指,對軟體中的最小可測驗單元在與程式其他部分相隔離的情況下進行檢查和驗證的作業,這里的 最小可 測驗單元通常是指 函式或者 類,
單元測驗通常由開發工程師完成,一般會伴隨開發代碼一起遞交至代碼庫,單元測驗屬于 最嚴格的軟體測驗手段,是最接近代碼 底層實作的驗證手段,可以在軟體開發的早期以最小的成本保證區域代碼的質量,另外,單元測驗都是以自動化的方式執行,所以在大量 回歸測驗的場景下更能帶來高收益,
如何設計一個好的測驗用例:(★★★)
“好的”測驗用例一定是一個 完備 的集合,它能夠 覆寫所有等價類 以及各種 邊界值 ,而跟能否發現缺陷無關,
一個“好的”測驗用例,必須具備以下 三個特征 ,
1. 整體完備性 : “好的”測驗用例一定是一個完備的整體,是有效測驗用例組成的集合,能夠完全覆寫測驗需求,
2. 等價類劃分的準確性 : 指的是對于每個等價類都能保證只要其中一個輸入測驗通過,其他輸入也一定測驗通過,
3. 等價類集合的完備性 : 需要保證所有可能的邊界值和邊界條件都已經正確識別,
三種最常用的測驗用例設計方法:
等價類劃分法、邊界值分析法、錯誤推測方法,
第一,等價類劃分法
我們只要從每個等價類中任意選取一個值進行測驗,就可以用少量具有代表性的測驗輸入取得較好的測驗覆寫結果,
現在,我給你看一個具體的例子:學生資訊系統中有一個“考試成績”的輸入項,成績的取值范圍是0~100之間的整數,考試成績及格的分數線是60,為了測驗這個輸入項,顯然不可能用0~100的每一個數去測驗,通過需求描述可以知道,輸入0~59之間的任意整數,以及輸入60~100之間的任意整數,去驗證和揭露輸入框的潛在缺陷可以看做是等價的,
那么這就可以在0~59和60~100之間各隨機抽取一個整數來進行驗證,這樣的設計就構成了所謂的“有效等價類”,
你不要覺得進行到這里,已經完成了等價類劃分的作業,因為 等價類劃分方法的另一個關鍵點是要找出所有“無效等價類” ,顯然,如果輸入的成績是負數,或者是大于100的數等都構成了“無效等價類”,
在考慮了無效等價類后,最終設計的測驗用例為:
有效等價類1:0~59之間的任意整數;
有效等價類2:59~100之間的任意整數;
無效等價類1:小于0的負數;
無效等價類2:大于100的整數;
無效等價類3:0~100之間的任何浮點數;
無效等價類4:其他任意非數字字符,
第二,邊界值分析方法
邊界值分析是對等價類劃分的補充,你從工程實踐經驗中可以發現,大量的錯誤發生在輸入輸出的邊界值上,所以需要對邊界值進行重點測驗,通常選取正好等于、剛剛大于或剛剛小于邊界的值作為測驗資料,
我們繼續看學生資訊系統中“考試成績”的例子,選取的邊界值資料應該包
括:-1,0,1,59,60,61,99,100,101,
第三,錯誤推測方法
錯誤推測方法是指 基于對被測驗軟體系統設計的理解、過往經驗以及個人直覺,推測出軟體可能存在的缺陷,從而有針對性地設計測驗用例的方法, 這個方法強調的是對被測驗軟體的需求理解以及設計實作的細節把握,當然還有個人的能力,
錯誤推測法和目前非常流行的“探索式測驗方法”的基本思想和理念是不謀而合的,這類方法在目前的敏捷開發模式下的投入產出比很高,因此被廣泛應用,但是,這個方法的缺點也顯而易見,那就是難以系統化,并且過度依賴個人能力,
總結:在我看來,深入理解被測軟體需求的最好方法是,測驗工程師在需求分析和設計階段就開始介入,因為這個階段是理解和掌握軟體的原始業務需求的最好時機,
上文摘自《測驗工程師全堆疊技術進階與實踐》 茹炳晟
針對某一個產品寫測驗用例:(★★★★★)
此類問題幾乎每個面試官都會問!基本思路:可以從功能測驗,UI測驗,穩定性測驗,壓力測驗(邊界極限),安全測驗,本地化測驗等角度去考慮
測驗水杯(★)
1、基本功能測驗
硬度:是否達到設計標準
裝載能力:在杯子內分別裝入少量的、半杯的、潢杯的,看其裝載量是否達到設計標準
裝載種類:開水(是否產生異味)、溫水、冷水、咖啡
用水杯裝水看漏不漏;水能不能被喝到
輸入條件: 冷水,熱水,冰水,,,
輸出條件: 是否退色 是否變形 是否有毒
一杯開水(假定100攝氏度)保溫的時間(多久后變到室溫),自然還有冰塊在室溫下多長時間融化
2、界面測驗(UI測驗)
看其形狀、大小設計是否符合需求規格說明書的定義,適合人方便拿起喝水;
外觀是否吸引人,賞心悅目;
廣告圖案沾水后是否掉色、模糊;
廣告圖案是否使用環保材料、不影響使用者健康和回收再利用;
廣告圖案是否和當地政治、宗教符合,沒有沖突;
廣告圖案是否做到了本地化和國際化,
3、易用性測驗
看其形狀、大小設計是否適合人方便拿起;
殘疾人士用此杯去喝水的容易程度;
杯子設計是否上大下小,在運輸程序中可以套在一起有效利用空間,在使用時也容易拿開
4、穩定性測驗(24*7)
裝入液體后記錄其多久以后會漏水;
5、安全性測驗
杯子所用的材料(包括紙基、涂層和廣告顏料)是否符合食品衛生標準,在內外溫度待環境因素下是否會與所盛各種飲料反應,而產生對人體有害的物質;
6、本地化測驗
為國際化和本地化的需要,廣告圖案和文字是否在政治、宗教和文化方面具有廣泛的適用性;
安全性:杯子有沒有毒或細菌;
可靠性:杯子從不同高度落下的損壞程度;
可移植性:杯子再不同的地方、溫度等環境下是否都可以正常使用;
7、對設計的改進建議
“如果是一次性杯子,能否標示已使用(比如:變色)”和“杯子是否有使用者標貼(多人使用時防止混淆)”,
壓力測驗:用根針并在針上面不斷加重量,看壓強多大時會穿透
8、 性能測驗
溫度/杯質的抗壓力/壽命/廣告漆的耐久度/等等
測驗一個輸入框(計數)(★★)
相信不少朋友在筆試的時候都遇到過測驗用例設計的筆試題,通常是一個登陸頁面,上面有用戶名,密碼的輸入框,再多一點的有個驗證碼,
不過要是你見到的是以下的這道測驗用例設計筆試題,不用問,面試官一定是看過《Google軟體測驗之道》的,(也腦補一下,萬一面試官是看過CC先生的簡書呢…… 嗯嗯,夢想還是要有的)
出題時間:
在一個Web測驗頁面上,有一個輸入框,一個計數器(count)按鈕,用于計算一個文本字串中字母a出現的個數,這里的問題是,請設計一系列測驗用例用以測驗這個Web頁面,

很多朋友可能拿到這道題的時候已經開始寫下1.2.3.了,不過根據經驗上來說,追求數量而非質量的傾向,是一種低效的作業方式,(特別在有面試官在旁邊看到你答題的時候,請保持沉思者狀保持10-15秒)
能夠針對題目提出一些問題來的候選者會被認為更有潛質來做測驗人員,比如大寫還是小寫?只是英語嗎?計算完成后文本會被清除嗎?多次按下按鈕會發生什么事情?諸如此類,
通常說來,我們考慮一個測驗物件的時候至少從以下六方面來考慮,
- 功能性
- 易用性
- 可靠性
- 性能
- 安全
- 兼容性
如果你是一個測驗菜鳥,從功能性出發,你可能會列出以下一個典型的串列:
- “banana”:3(一個合法的英文字),
- “A” 和“a”:1(一個簡單有正常結果的合法輸入),
- “”:0(一個簡單的結果為0的合法輸入),
- Null:0(簡單的錯誤輸入),
- “AA” 和“aa”:2(個數大于1并且所有字符都為a/A的輸入),
- “b”:0(一個簡單的非空合法輸入,結果為0),
- “aba”:2(目標字符出現在開頭和結尾,以尋找回圈邊界錯誤),
- “bab”:1(目標字符出現在中間),
- space/tabs:N(空白字符與N個a的混合),
- 不包含a的長字串:N(N大于0),
- 包含a的長字串:N(N是a的倍數,試試龍媽的名字),
{java/C/HTML/JavaScript}:N是a出現的個數(可執行字符,或錯誤,或代碼解釋),
….
更優秀的測驗工程師,會開始考慮后面五個方面,設計以下用例,
- 質疑界面的外觀、調色板和對比度(這與相關應用風格一致么?)
- 文本框太小了,建議加長以便顯示更長的輸入字串
- 這個應用能否在同一臺服務器上運行多個實體,多個用戶同時使用是否會有問題,
- 是否會根據用戶的輸入自動匹配內容?
- 建議使用真實的資料,如從詞典或書中選擇輸入內容,
- 提出疑問:“輸入的資料是否會被保存”,輸入字串可能包含地址或其他身份資訊,
- 輸入HTML和JavaScrip,看是否會破壞頁面渲染,
- 嘗試復制/粘貼字串,
- 提出疑問:“計算足夠快么?在大并發下使用”,
- 提出疑問:“用戶怎么找到該頁面?”
- 提出疑問:“有快捷鍵的設定么?比如輸完字符后敲入回車鍵而不是點擊提交按鈕”
還有一些測驗點,只有經驗豐富的測驗工程師才會想到,
- 意識到計算會通過URL-encodedHTTP GET請求傳遞到服務器,字串可能會在網路傳輸時被截斷,因此,無法保證支持多長的URL,
- 建議將此功能引數化,為什么只對字母a計算呢?
- 考慮計算其它語言中的a(α,Alpha),
- 考慮到該應用是否應該國際化,
- 考慮到輸入法全角輸入和半角輸入是否相同,
- 考慮撰寫腳本或者手工采樣來探知字串長度的上限,然后確保在此區間內功能正常,
- 考慮背后的實作和代碼,也許已經有一個計數器遍歷該字串,
- 提出疑問:“HTTP POST方法和引數會被黑掉碼?也許有安全漏洞?”
- 用腳本創建各種有趣的排列組合和字串特性,如長度、a的個數等,自動生成測驗輸入和驗證,
針對“用戶登錄”設計測驗用例(★★★)
以用戶登錄為例,一般的小白可能只能夠想到一些功能性測驗(如下),
現在,針對“用戶登錄”功能,基于等價類劃分和邊界值分析方法,我們設計的測驗用例包括:
1. 輸入已注冊的用戶名和正確的密碼,驗證是否登錄成功;
2. 輸入已注冊的用戶名和不正確的密碼,驗證是否登錄失敗,并且提示資訊正確;
3. 輸入未注冊的用戶名和任意密碼,驗證是否登錄失敗,并且提示資訊正確;
4. 用戶名和密碼兩者都為空,驗證是否登錄失敗,并且提示資訊正確;
5. 用戶名和密碼兩者之一為空,驗證是否登錄失敗,并且提示資訊正確;
6. 如果登錄功能啟用了驗證碼功能,在用戶名和密碼正確的前提下,輸入正確的驗證碼,驗證是否登
錄成功;
7. 如果登錄功能啟用了驗證碼功能,在用戶名和密碼正確的前提下,輸入錯誤的驗證碼,驗證是否登
錄失敗,并且提示資訊正確,
的確,上面的測驗用例集已經涵蓋了主要的功能測驗場景,但是在一個優秀的測驗工程師眼中,這些用例只能達到勉強及格的標準,
現在,我跟你分享一下有經驗的測驗工程師會再增加的測驗用例:
1. 用戶名和密碼是否大小寫敏感;
2. 頁面上的密碼框是否加密顯示;
3. 后臺系統創建的用戶第一次登錄成功時,是否提示修改密碼;
4. 忘記用戶名和忘記密碼的功能是否可用;
5. 前端頁面是否根據設計要求限制用戶名和密碼長度;
6. 如果登錄功能需要驗證碼,點擊驗證碼圖片是否可以更換驗證碼,更換后的驗證碼是否可用;
7. 重繪頁面是否會重繪驗證碼;
8. 如果驗證碼具有時效性,需要分別驗證時效內和時效外驗證碼的有效性;
9. 用戶登錄成功但是會話超時后,繼續操作是否會重定向到用戶登錄界面;
10. 不同級別的用戶,比如管理員用戶和普通用戶,登錄系統后的權限是否正確;
11. 頁面默認焦點是否定位在用戶名的輸入框中;
12. 快捷鍵Tab 和Enter等,是否可以正常使用,
從軟體測驗的維度來看,還應該包含非功能性需求,主要涉及 安全性、性能以及兼容性 三大方面, 在上面所有的測驗用例設計中,我們完全沒有考慮對非功能性需求的測驗,但這些往往是決定軟體質量的關鍵因素,
安全性測驗用例包括:
1. 用戶密碼后臺存盤是否加密;
2. 用戶密碼在網路傳輸程序中是否加密;
3. 密碼是否具有有效期,密碼有效期到期后,是否提示需要修改密碼;
4. 不登錄的情況下,在瀏覽器中直接輸入登錄后的URL地址,驗證是否會重新定向到用戶登錄界面;
5. 密碼輸入框是否不支持復制和粘貼;
6. 密碼輸入框內輸入的密碼是否都可以在頁面原始碼模式下被查看;
7. 用戶名和密碼的輸入框中分別輸入典型的“SQL注入攻擊”字串,驗證系統的回傳頁面;
8. 用戶名和密碼的輸入框中分別輸入典型的“XSS跨站腳本攻擊”字串,驗證系統行為是否被篡改;
9. 連續多次登錄失敗情況下,系統是否會阻止后續的嘗試以應對暴力破解;
10. 同一用戶在同一終端的多種瀏覽器上登錄,驗證登錄功能的互斥性是否符合設計預期;
11. 同一用戶先后在多臺終端的瀏覽器上登錄,驗證登錄是否具有互斥性,
性能壓力測驗用例包括:
1. 單用戶登錄的回應時間是否小于3秒;
2. 單用戶登錄時,后臺請求數量是否過多;
3. 高并發場景下用戶登錄的回應時間是否小于5秒;
4. 高并發場景下服務端的監控指標是否符合預期;
5. 高集合點并發場景下,是否存在資源死鎖和不合理的資源等待;
6. 長時間大量用戶連續登錄和登出,服務器端是否存在記憶體泄漏,
兼容性測驗用例包括:
1. 不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;
2. 相同瀏覽器的不同版本下,驗證登錄頁面的顯示以及功能正確性;
3. 不同移動設備終端的不同瀏覽器下,驗證登錄頁面的顯示以及功能正確性;
4. 不同解析度的界面下,驗證登錄頁面的顯示以及功能正確性,
微信紅包測驗用例(★★★★★)
單個紅包:
1、紅包金額為空、0、0.01、200.00、200.01、199.99、200
2、留言輸入數字、字母、漢字、特殊字符
3、留言長度
4、留言復制粘貼
5、表情選擇收藏表情、其他表情
6、洗掉表情、重新選擇表情
7、選擇支付方式 零錢、銀行卡、添加新卡支付,其中錢數<紅包錢數、其中錢數=紅包錢數、其中錢數>紅包錢數
8、使用指紋確認付款(正確的、錯誤的指紋)
9、使用密碼確認付款(正確的、錯誤的密碼)
10、紅包成功發送后 相應支付方式中錢數減少(減少金額與紅包金額一致)
11、接受者能看到紅包具體資訊,紅包金額、留言、表情均能正確顯示
12、紅包被拆開后顯示已領取,領取者零錢中增加正確金額,再次領取只能查看紅包資訊
13、發紅包者自己領紅包
14、紅包24小時未被領取提示紅包被退回,相應支付方式中錢數增加(增加金額與紅包金額一致),對方不能領紅包
群發紅包-普通紅包: (只寫了與單個紅包不同的地方)
1、紅包個數 為空、0、001、100、99、101
2、紅包拆開每個金額一樣 均為發紅包時設定的單個金額對應的錢數
3、紅包被拆時,有相應提示
4、發紅包者自己領紅包
5、紅包24小時內未被拆完,剩余錢被退回,相應支付方式中錢數增加
群發紅包-拼手氣紅包:
1、紅包總額/紅包個數<0.01
2、紅包每個人拆開金額不同,總金額與發紅包設定的總額一致
3、紅包24小時內拆完后顯示最佳手氣
4、紅包24小時內未被拆完不顯示最佳手氣
兼容性: 安卓、蘋果 不同型號版本手機
UI測驗: 界面無錯別字,風格統一
中斷測驗: 不同應用之間切換、斷網、來電、短信、低電量、手機沒電
網路測驗: 2g/3g/4g WiFi 移動聯通電信 弱網 無網
微信朋友圈測驗用例(★★★★★)
功能測驗
1、朋友圈發送功能
1)只發送文本
a、考慮文本長度:1-1500字符(該資料為百度資料)、超出最大字符長度
b、文本是否支持復制粘貼
c、為空驗證
2)只發送圖片
a、本地相冊選擇/拍攝
b、圖片數量驗證:1-9張圖片、超出9張
c、為空驗證
3)只發送視頻
a、本地相冊選擇/拍攝
b、視頻秒數驗證:1-10s,超出10s
c、視頻個數驗證:1個,超出1個
d、視頻格式驗證:支持的視頻格式,例mp4、不支持的視頻格式
e、視頻大小驗證:蘋果400kb以內、Android200-300kb(此為百度資料)、超出規定大小
f、視頻預覽增刪改操作
g、為空驗證
4)發送文本+圖片:輸入滿足要求的文本、圖片進行一次驗證
5)發送文本+視頻:輸入滿足要求的文本、視頻進行一次驗證
6)發送圖片+視頻:不支持發送
7)朋友圈發送內容是否有限制,例如涉及黃賭毒等敏感字
8)所在位置
a、不顯示位置:發送到朋友圈動態不顯示位置
b、選擇對應位置:搜索支持、自動定位、手動編輯
C、點擊取消,回傳上一級頁面
9)誰可以看
a、設定公開:所有朋友可見
b、設定私密(僅自己可見):自己查看朋友圈-可見、好友查看朋友圈-不可見
c、設定部分可見(部分朋友可見):選擇的部分好友-可見、不被選擇的好友-不可見、是否有人數上限
d、設定不給誰看(選中的朋友不可見):不被選中的朋友-可見、被選中的朋友-不可見、是否有人數上限
e、點擊取消,回傳發送頁面
10)提醒誰看
a、提醒單人/提醒多人:被提醒的朋友-收到訊息提醒、未被提醒-未有訊息提醒
b、是否有人數上限
c、點擊取消,回傳發送頁面
11)同步QQ空間:默認不同步、同步到QQ空間
12)取消發送朋友圈操作
a、選擇相機,點擊取消,回傳朋友圈頁面
b、進入朋友圈發送頁面,選擇文本圖片,點擊取消
13)朋友圈當天發送次數是否有上限限制
2、朋友圈瀏覽功能
1)文本查看:
a、過長文本內容是否隱藏,并支持查看全文
b、右鍵選擇復制、收藏、翻譯
c、url鏈接是否支持點擊跳轉網頁
2)圖片查看
a、小圖右鍵支持收藏/編輯
b、點擊支持大圖瀏覽
c、選擇發送給朋友、收藏、保存圖片、編輯
d、多張圖片支持左右滑動瀏覽
3)視頻查看
a、右鍵視頻支持靜音播放/搜藏
b、點擊視頻播放按鍵支持播放視頻
c、選擇發送給朋友、收藏、保存視頻、編輯
4)分享動態瀏覽:QQ空間/公眾號文章/非騰訊產品分享后朋友圈是否正常顯示
5)贊:點贊、取消點贊
6)評論
a、評論長度:評論字數合理長度、評論超過字數上限
b、評論型別:純中文、純數字、純字母、純字符、純表情(微信表情/手機自帶表情)、混合型別、包含url鏈接;
c、評論是否支持復制粘貼
d、為空驗證
e、發表評論后洗掉
f、評論回復操作
7)洗掉朋友圈動態
8)更換相冊封面
9)重繪是否正常獲取新動態
10)上滑是否加載更多
界面/易用性測驗
1、技術人員角度:頁面布局設計是否跟產品原型圖/ui效果圖一致
2、但除了考慮1之外,我們同樣要考慮到用戶使用:功能操作是否簡便,頁面布局排版風格是否美觀合理,提示語相關資訊是否易于理解
中斷測驗
1、主要考慮:a)核心功能 b)當前功能存在實時資料交換,例發朋友圈、瀏覽朋友圈進行中斷,是否容易出現崩潰
2、中斷包括:前后臺切換、鎖屏解鎖、斷網重連、app切換、來電話/來短信中斷、插拔耳機線/資料線
網路測驗
1、三大運營商不同網路制式測驗
2、網路切換測驗:WIFI/4G/3G/2G
3、無網測驗:對于快取在本地的資料,部分朋友圈資訊是否支持瀏覽
4、弱網測驗:
a、延時:頁面回應時間是否可接受、不同網路制式是否區分超時時長、出現請求超時,是否給予相應的提示
b、丟包:有無超時重連機制、如果未回應,是否給予相應提示
c、頁面呈現的完整性驗證
兼容性測驗
1、Android手機端、蘋果手機端、pad版(主流)功能界面顯示是否正常
2、各平臺朋友圈展示資料是否一致
安全測驗
發送朋友圈時,文本輸入腳本代碼,是否出現例外
性能測驗
1、服務器性能測驗
可通過loadrunner/jmeter工具實作,主要關注TPS、回應時間、吞吐量、CPU、記憶體等
2、app客戶端性能測驗
可通過GT工具實作,運行時關注cpu、記憶體、流量、電量等占用率
3、app壓力穩定性測驗
通過monkey工具實作,頻繁發送朋友圈,瀏覽朋友圈請求,是否容易發生崩潰
智力題
- 1000 瓶無色無味的藥水,其中有一瓶毒藥,10只小白鼠拿過來做實驗,喝了無毒的藥水第二天沒事兒,喝了有毒的藥水后第二天會死亡,如何在一天之內(第二天)找出這瓶有毒的藥水?(被問過)
- 現在有9個球,其中有1個球相對輕一點,你手里只有一個天平,稱2次,怎樣找出那個輕的球?(被問過)
- 25匹馬賽跑,共有5個賽道,最少賽多少次可以找出前三名、前五名?(被問得太多)
- 64匹馬賽跑,8個賽道的問題,
- 一個瓶子,有三種顏色糖果,問多少次,能確保拿到兩個顏色一致的糖果,
- 70克鹽,20克砝碼,一個天平,稱出5克鹽,
- 兩個杯子倒水:一個7升,一個3升,如何在一個杯子倒出5升?(被廣州一家公司問過,公司名字我記不太清了,當時說了兩種方法)
- 兩根分布不均勻的蠟燭,每根燃燒的時間是一個小時,問怎樣算出15分鐘的時間?(秋招時上海美團三面有問,一開始沒思路,面試官一直在引導)
測開崗高頻演算法題:
- 三個數字的最大乘積
- 有兩個很長很很長的字串,但是字符都是數字,實作這倆字串的加法,輸出為一個字串,如str1="1231213347845713824718237489123748343246217489132", str2="623478573127438912743892017489132748172341324132"
- 兩數之和 標簽:哈希表 (★★★)
- str1能不能最多交換兩次字符變成str2,并設計測驗用例,
- 和為s的連續正數序列 標簽:暴力、雙指標
- 有效括號 標簽:堆疊 (★★★★)
- 陣列中重復的數字 標簽:哈希表 (★★★★★)
- 7的倍數或者包含7列印"-",其余的列印數字,每行不超過5個數字
- 從1到100000000中取出一個數(自己申明一個變數,比如num = 2333),寫代碼找出取出的是哪個數, 標簽:二分查找
- 一個數在有序陣列里出現的次數,標簽:二分
- 字串轉整數,并寫測驗用例, 標簽:數學,有很多非數字型別需要考慮,還有數字越界的情況需要考慮,比較考察測驗思維 (★★★★★)
- 連續子陣列的最大和 標簽:分治、DP (★★★★)
- 在字串中找出沒有重復字符的最長的連續子串,并回傳子串及長度,譬如“aaabcdcbcbbb" 最長子串為abcd,長度為4
- 判斷鏈表是否有環 標簽:雙指標
- 兩個堆疊實作一個佇列 (★★)
- 最長不含重復字符的子字串 標簽:雙指標、滑動視窗 (★★★★★)
可以發現,測開崗的演算法題難度相對要低一些,差不多都是 劍指offer上或者 力扣上的熱門且難度為簡單、中等的題,把每個 標簽的前5~10道題刷一刷,面試的時候基本夠用,
資料庫:
- 資料庫:三張表food(id,name), materials(id, price), xxx(food_id, materials_id, quality) 給food_id,求成本
- 資料庫:表中有學生,課程,分數,求平均分最高的學生
- 給定成績表中的id、name、subject、score、stu_id,計算每個人的總成績并排名(要求顯示欄位:姓名,總成績)
- mysql陳述句統計表中男女生人數
- SQL多表聯結
- 資料庫:查找平均分>60分的學生姓名 -- 采用嵌套查詢
- left join , right join, inner join的區別
- SQL陳述句:三張表學生表,成績表,課程表查詢學生A的語文成績
- Sql--查詢每門課程都大于60分的學生姓名
- MYSQL對學生成績串列進行分組求和并對成績從高到低排序
- sql陳述句查詢課程1的成績比課程2 的成績高的學號
- 聯表查詢 學生表(學生id,姓名,性別,分數)student(s_id,name,sex,score),班級表(班級id,班級名稱)class(c_id,c_name),學生班級表(班級id,學生id)student_class(c_id,s_id) ,(1)查詢一班得分在80分以上的學生 (2)查詢所有班級的名稱,和所有班中女生人數和女生的平均分
Linux知識點(★★★★)
摘自:https://www.cnblogs.com/zhangchaocoming/p/12501088.html
已根據面試經歷,將高頻考點用★標注,可以優先看帶★的,
題一:(★★★★★)
絕對路徑用什么符號表示?當前目錄、上層目錄用什么表示?主目錄用什么表示? 切換目錄用什么命令?
答案:
絕對路徑: 如/etc/init.d
當前目錄和上層目錄: ./ ../
主目錄: ~/
切換目錄: cd
問題二:(★★★★★)
怎么查看當前行程?怎么執行退出?怎么查看當前路徑?
答案:
查看當前行程: ps
執行退出: exit
查看當前路徑: pwd
問題三:
怎么清屏?怎么退出當前命令?怎么執行睡眠?怎么查看當前用戶 id?查看指定幫助用什么命令?
答案:
清屏: clear
退出當前命令: ctrl+c 徹底退出
執行睡眠 : ctrl+z 掛起當前行程fg 恢復后臺
查看當前用戶 id: ”id“:查看顯示目前登陸賬戶的 uid 和 gid 及所屬分組及用戶名
查看指定幫助: 如 man adduser 這個很全 而且有例子; adduser --help 這個告訴你一些常用引數; info adduesr;
問題四:(★★★★★)
Ls 命令執行什么功能? 可以帶哪些引數,有什么區別?
答案:
ls 執行的功能: 列出指定目錄中的目錄,以及檔案
哪些引數以及區別: a 所有檔案l 詳細資訊,包括大小位元組數,可讀可寫可執行的權限等
問題五:
建立軟鏈接(快捷方式),以及硬鏈接的命令,
答案:
軟鏈接: ln -s slink source
硬鏈接: ln link source
問題六:(★★★★)
目錄創建用什么命令?創建檔案用什么命令?復制檔案用什么命令?
答案:
創建目錄: mkdir
創建檔案:典型的如 touch,vi 也可以創建檔案,其實只要向一個不存在的檔案輸出,都會創建檔案
復制檔案: cp 7. 檔案權限修改用什么命令?格式是怎么樣的?
檔案權限修改: chmod
格式如下:
chmodu+xfile給file的屬主增加執行權限chmodu+xfile給file的屬主增加執行權限 chmod 751 file 給 file 的屬主分配讀、寫、執行(7)的權限,給 file 的所在組分配讀、執行(5)的權限,給其他用戶分配執行(1)的權限
chmodu=rwx,g=rx,o=xfile上例的另一種形式chmodu=rwx,g=rx,o=xfile上例的另一種形式 chmod =r file 為所有用戶分配讀權限
chmod444file同上例chmod444file同上例 chmod a-wx,a+r file同上例
$ chmod -R u+r directory 遞回地給 directory 目錄下所有檔案和子目錄的屬主分配讀的權限
問題八:(★★★★★)
查看檔案內容有哪些命令可以使用?
答案:
vi 檔案名 #編輯方式查看,可修改
cat 檔案名 #顯示全部檔案內容
more 檔案名 #分頁顯示文件內容
less 檔案名 #與 more 相似,更好的是可以往前翻頁
tail 檔案名 #僅查看尾部,還可以指定行數
head 檔案名 #僅查看頭部,還可以指定行數
問題九:
隨意寫檔案命令?怎么向螢屏輸出帶空格的字串,比如”hello world”?
答案:
寫檔案命令:vi
向螢屏輸出帶空格的字串:echo hello world
問題十:
終端是哪個檔案夾下的哪個檔案?黑洞檔案是哪個檔案夾下的哪個命令?
答案:
終端 /dev/tty
黑洞檔案 /dev/null
問題十一:(★★★★)
移動檔案用哪個命令?改名用哪個命令?
答案:
mv mv
問題十二:(★★★★)
復制檔案用哪個命令?如果需要連同檔案夾一塊復制呢?如果需要有提示功能呢?
答案:
cp cp -r ????
問題十三:(★★★★)
洗掉檔案用哪個命令?如果需要連目錄及目錄下檔案一塊洗掉呢?洗掉空檔案夾用什么命令?
答案:
rm rm -r rmdir
問題十四:
Linux 下命令有哪幾種可使用的通配符?分別代表什么含義?
答案:
“?”可替代單個字符,
“*”可替代任意多個字符,
方括號“[charset]”可替代 charset 集中的任何單個字符,如[a-z],[abABC]
問題十五:(★★★★★)
用什么命令對一個檔案的內容進行統計?(行號、單詞數、位元組數)
答案:
wc 命令 - c 統計位元組數 - l 統計行數 - w 統計字數,
問題十六:(★★★★★)
Grep 命令有什么用? 如何忽略大小寫? 如何查找不含該串的行?
答案:
是一種強大的文本搜索工具,它能使用正則運算式搜索文本,并把匹 配的行列印出來,
grep [stringSTRING] filename grep [^string] filename
問題十七:(★★★★★)
Linux 中行程有哪幾種狀態?在 ps 顯示出來的資訊中,分別用什么符號表示的?
答案:
(1)、不可中斷狀態:行程處于睡眠狀態,但是此刻行程是不可中斷的,不可中斷, 指行程不回應異步信號,
(2)、暫停狀態/跟蹤狀態:向行程發送一個 SIGSTOP 信號,它就會因回應該信號 而進入 TASK_STOPPED 狀態;當行程正在被跟蹤時,它處于 TASK_TRACED 這個特殊的狀態,
“正在被跟蹤”指的是行程暫停下來,等待跟蹤它的行程對它進行操作,
(3)、就緒狀態:在 run_queue 佇列里的狀態
(4)、運行狀態:在 run_queue 佇列里的狀態
(5)、可中斷睡眠狀態:處于這個狀態的行程因為等待某某事件的發生(比如等待 socket 連接、等待信號量),而被掛起
(6)、zombie 狀態(僵尸):父親沒有通過 wait 系列的系統呼叫會順便將子行程的尸體(task_struct)也釋放掉
(7)、退出狀態
D 不可中斷 Uninterruptible(usually IO)
R 正在運行,或在佇列中的行程
S 處于休眠狀態
T 停止或被追蹤
Z 僵尸行程
W 進入記憶體交換(從內核 2.6 開始無效)
X 死掉的行程
問題十八:
怎么使一個命令在后臺運行?
答案:
一般都是使用 & 在命令結尾來讓程式自動運行,(命令后可以不追加空格)
問題十九:(★★★★★)
利用 ps 怎么顯示所有的行程? 怎么利用 ps 查看指定行程的資訊?
答案:
ps -ef (system v 輸出)
ps -aux bsd 格式輸出
ps -ef | grep pid
問題二十:
哪個命令專門用來查看后臺任務?
答案:
job -l
問題二十一:
把后臺任務調到前臺執行使用什么命令?把停下的后臺任務在后臺執行起來用什么命令?
答案:
把后臺任務調到前臺執行 fg
把停下的后臺任務在后臺執行起來 bg
問題二十二:(★★★)
終止行程用什么命令? 帶什么引數?
答案:
kill [-s <資訊名稱或編號>][程式] 或 kill [-l <資訊編號>]
kill-9 pid
問題二十三:
怎么查看系統支持的所有信號?
答案:
kill -l
問題二十四:
搜索檔案用什么命令? 格式是怎么樣的?
答案:
find <指定目錄> <指定條件> <指定動作>
whereis 加引數與檔案名
locate 只加檔案名
find 直接搜索磁盤,較慢,
find / -name "string*"
問題二十五:
查看當前誰在使用該主機用什么命令? 查找自己所在的終端資訊用什么命令?
答案:
查找自己所在的終端資訊:who am i
查看當前誰在使用該主機:who
問題二十六:
使用什么命令查看用過的命令串列?
答案:
history # 查看歷史命令 保留1000個歷史命令,超出會將最老的洗掉
!951 # 可以根據查得命名編號直接在其前個感嘆號執行這個編號對應的命令
問題二十七:(★★★★★)
使用什么命令查看磁盤使用空間? 空閑空間呢?
答案:
df -hl
檔案系統 容量 已用 可用 已用% 掛載點
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot
問題二十八:(★★★★★)
使用什么命令查看網路是否連通?
答案:
netstat
問題二十九:(★★★★★)
使用什么命令查看 ip 地址及介面資訊?
答案:
ifconfig
問題三十:
查看各類環境變數用什么命令?
答案:
查看所有 env
查看某個,如 home: env $HOME
問題三十一:
通過什么命令指定命令提示符?
答案:
\u:顯示當前用戶賬號
\h:顯示當前主機名
\W:只顯示當前路徑最后一個目錄
\w:顯示當前絕對路徑(當前用戶目錄會以~代替)
$PWD:顯示當前全路徑
:顯示命令列’:顯示命令列’:顯示命令列’'或者’#'符號
#:下達的第幾個命令
\d:代表日期,格式為week day month date,例如:"MonAug1"
\t:顯示時間為24小時格式,如:HH:MM:SS
\T:顯示時間為12小時格式
\A:顯示時間為24小時格式:HH:MM
\v:BASH的版本資訊 如export PS1=’[\u@\h\w#]$‘
問題三十二:
查找命令的可執行檔案是去哪查找的? 怎么對其進行設定及添加?
答案:
whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S <目錄>...][檔案...]
補充說明:whereis 指令會在特定目錄中查找符合條件的檔案,這些檔案的烈性應屬于原始代碼,二進制檔案,或是幫助檔案,
-b 只查找二進制檔案,
-B<目錄> 只在設定的目錄下查找二進制檔案, -f 不顯示檔案名前的路徑名稱,
-m 只查找說明檔案,
-M<目錄> 只在設定的目錄下查找說明檔案, -s 只查找原始代碼檔案,
-S<目錄> 只在設定的目錄下查找原始代碼檔案, -u 查找不包含指定型別的檔案,
which 指令會在 PATH 變數指定的路徑中,搜索某個系統命令的位置,并且回傳第一個搜索結果,
-n 指定檔案名長度,指定的長度必須大于或等于所有檔案中最長的檔案名,
-p 與-n 引數相同,但此處的包括了檔案的路徑, -w 指定輸出時欄位的寬度,
-V 顯示版本資訊
問題三十三:
通過什么命令查找執行命令?
答案:
which 只能查可執行檔案
whereis 只能查二進制檔案、說明檔案,源檔案等
問題三十四:
怎么對命令進行取別名?
答案:
alias la='ls -a'
問題三十五:
du 和 df 的定義,以及區別?
答案:
du 顯示目錄或檔案的大小
df 顯示每個<檔案>所在的檔案系統的資訊,默認是顯示所有檔案系統,
(檔案系統分配其中的一些磁盤塊用來記錄它自身的一些資料,如 i 節點,磁盤分布圖,間接塊,超級塊等,這些資料對大多數用戶級的程式來說是不可見的,通常稱為 Meta Data,) du 命令是用戶級的程式,它不考慮 Meta Data,而 df 命令則查看檔案系統的磁盤分配圖并考慮 Meta Data,
df 命令獲得真正的檔案系統資料,而 du 命令只查看檔案系統的部分情況,
問題三十六:(★★★★★)
awk 詳解,
答案:
awk '{pattern + action}' {filenames}
#cat /etc/passwd |awk -F ':' '{print 1"\t"1"\t"7}' //-F 的意思是以':'分隔 root /bin/bash
daemon /bin/sh 搜索/etc/passwd 有 root 關鍵字的所有行
#awk -F: '/root/' /etc/passwd root?0:0:root:/root:/bin/bash
問題三十七:
當你需要給命令系結一個宏或者按鍵的時候,應該怎么做呢?
答案:
可以使用bind命令,bind可以很方便地在shell中實作宏或按鍵的系結,
在進行按鍵系結的時候,我們需要先獲取到系結按鍵對應的字符序列,
比如獲取F12的字符序列獲取方法如下:先按下Ctrl+V,然后按下F12 .我們就可以得到F12的字符序列 ^[[24~,
接著使用bind進行系結,
[root@localhost ~]# bind ‘”\e[24~":"date"'
注意:相同的按鍵在不同的終端或終端模擬器下可能會產生不同的字符序列,
【附】也可以使用showkey -a命令查看按鍵對應的字符序列,
問題三十八:
如果一個linux新手想要知道當前系統支持的所有命令的串列,他需要怎么做?
答案:
使用命令compgen --c,可以列印出所有支持的命令串列,
[root@localhost ~]$ compgen -c
l.
ll
ls
which
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
…
問題三十九:
如果你的助手想要列印出當前的目錄堆疊,你會建議他怎么做?
答案:
使用Linux 命令dirs可以將當前的目錄堆疊列印出來,
[root@localhost ~]# dirs
/usr/share/X11
【附】:目錄堆疊通過pushd popd 來操作,
問題四十:
你的系統目前有許多正在運行的任務,在不重啟機器的條件下,有什么方法可以把所有正在運行的行程移除呢?
答案:
使用linux命令 ’disown -r ’可以將所有正在運行的行程移除,
問題四十一:
bash shell 中的hash 命令有什么作用?
答案:
linux命令’hash’管理著一個內置的哈希表,記錄了已執行過的命令的完整路徑, 用該命令可以列印出你所使用過的命令以及執行的次數,
[root@localhost ~]# hash
hits command
2 /bin/ls
2 /bin/su
問題四十二:
哪一個bash內置命令能夠進行數***算,
答案:
bash shell 的內置命令let 可以進行整型數的數***算,
#! /bin/bash
…
…
let c=a+b
…
…
問題四十三:(★★★★★)
怎樣一頁一頁地查看一個大檔案的內容呢?
答案:
通過管道將命令”cat file_name.txt” 和 ’more’ 連接在一起可以實作這個需要.
[root@localhost ~]# cat file_name.txt | more
問題四十四:
資料字典屬于哪一個用戶的?
答案:
資料字典是屬于’SYS’用戶的,用戶‘SYS’ 和 ’SYSEM’是由系統默認自動創建的
問題四十五:
怎樣查看一個linux命令的概要與用法?假設你在/bin目錄中偶然看到一個你從沒見過的的命令,怎樣才能知道它的作用和用法呢?
答案:
使用命令whatis 可以先出顯示出這個命令的用法簡要,比如,你可以使用whatis zcat 去查看‘zcat’的介紹以及使用簡要,
[root@localhost ~]# whatis zcat
zcat [gzip] – compress or expand files
問題四十六:
使用哪一個命令可以查看自己檔案系統的磁盤空間配額呢?
答案:
使用命令repquota 能夠顯示出一個檔案系統的配額資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293161.html
標籤:其他
上一篇:家里的老照片磨損?!Python小妙招影像修復告訴你!!!
下一篇:C語言常見開發工具的安裝和配置
