學linux運維前水平測試題

来源:http://www.cnblogs.com/dakaige517/archive/2017/04/29/6785517.html
-Advertisement-
Play Games

版權聲明: 本文的所有內容均來自作者劉春凱的學習總結,未經本人許可,禁止私自轉發及使用。 QQ:1151887353 E-mail:[email protected] [email protected] ################################################# ...


版權聲明:

本文的所有內容均來自作者劉春凱的學習總結,未經本人許可,禁止私自轉發及使用。

QQ:1151887353

E-mail:[email protected]      [email protected]

##########################################################################

 

1.創建一個目錄/data。

解答:

mkdir /data

 

2.在/data下麵建立一個文件oldboy.txt。

解答:

touch /data/oldboy.txt

或者:

cd /data

touch oldboy.txt

 

3.為oldboy.txt增加內容為“I am studying linux.”。

解答:

法一:

cd /data

echo "I am studying linux">>oldboy.txt

法二:

vi/vim --a/i--" I am studying linux "--esc--:qw

法三:

cat >>oldboy.txt

> I am studying linux

crul+c

 

4.把oldboy.txt文件拷貝到/tmp下。

解答:

cd /data

cp oldboy.txt /tmp/

 

5.把/data目錄移動到/root下。

解答:

mv /data /root/

 

6.進入/root目錄下的data目錄,刪除oldboy.txt文件。

解答:

cd -

cd data

rm -f oldboy.txt

 

7.接第6題,退出到上一級目錄,刪除data目錄。

解答:

cd -

rm -fr data

 

 

8.已知文件test.txt內容為:

test

liyao

oldboy

請給出輸出test.txt文件內容時,不包含oldboy字元串的命令。

解答:

模擬環境

cd /data

touch test.txt

cat >>/test.txt<<EOF(echo或者vi/vim)

test

liyao

oldboy

EOF

ctrl+c

法一:

head -n 2 /data/test.txt

法二:

tail -n 3 test.txt|head -n 2或者head -n 2 test.txt|tail -2

法三:

sed -n "1,2p" test.txt

法四:

grep -v oldboy test.txt或者grep test liyao test.txt

法五:

awk 'NR<3&&NR>0' test.txt或者awk '{if(NR<3&&NR>0) print $0"\n"}' test.txt

法六:

grep 2 -A 1 test.txt

grep 1 -B 1 test.txt

 

 

9.請用一條命令完成創建目錄/oldboy/test,即創建/oldboy目錄及/oldboy/test目錄

解答:

cd ~

mkdir -p /oldboy/test

 

10.已知/tmp下已經存在test.txt文件,如何執行命令才能把/mnt/test.txt拷貝到/tmp下覆蓋掉/tmp/test.txt,而讓系統不提示是否覆蓋(root許可權下)。

解答:

法一:

/bin/cp /mnt/test.txt /tmp/

法二:

\cp /mnt/test.txt /tmp/

法三:

alias cp

unalias cp

cp /mnt/test.txt /tmp/

 

11.只查看ett.txt文件(共100行)內第20到第30行的內容

解答:

法一:

head -30 ett.txt|tail -11或者tail -81 ett.txt|head -11

法二:

sed -n '20,30p' ett.txt

法三:

grep 30 -A 10 ett.txt

grep 20 -B 10 ett.txt

grep 25 -C 5 ett.txt

法四:

awk 'NR>19&&NR<31' ett.txt

awk '{if(NR>19&&NR<31) print$0"\n"}' ett.txt

 

12.分析圖片服務日誌,把日誌(每個圖片訪問次數*圖片大小的總和)排行,取top10,也就是計算每個url的總訪問大小

【附加題:工作場景高難度加分題,不會的同學可以放棄不答】。

說明:本題生產環境應用:這個功能可以用於IDC網站流量帶寬很高,然後通過分析伺服器日誌哪些元素占用流量過大,進而進行優化或裁剪該圖片,壓縮js等措施。

本題需要輸出三個指標: 【訪問次數】    【訪問次數*單個文件大小】  【文件名(可以帶URL)】

測試數據

59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/images/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/images/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
59.33.26.105 - - [08/Dec/2010:15:44:02 +0800] "GET /static/flex/vedioLoading.swf HTTP/1.1" 200 3583 "http://oldboy.blog.51cto.com/static/flex/AdobeVideoPlayer.swf?width=590&height=328&url=/[[DYNAMIC]]/2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
124.115.4.18 - - [08/Dec/2010:15:44:15 +0800] "GET /?= HTTP/1.1" 200 46232 "-" "-"
124.115.4.18 - - [08/Dec/2010:15:44:25 +0800] "GET /static/js/web_js.js HTTP/1.1" 200 4460 "-" "-"
124.115.4.18 - - [08/Dec/2010:15:44:25 +0800] "GET /static/js/jquery.lazyload.js HTTP/1.1" 200 1627 "-" "-"

 

解答:模擬環境

cd /var/log

touch access.log 1.log 2.log

vim access.log(添加內容,生成日誌)

 

法一:通過兩個數組來計算(用到數組累加和去重)

因為我們要的最終結果是某個文件的訪問次數和消耗的流量,所以考慮建立以文件名為索引的兩個數組,一個存儲訪問次數,一個保存消耗的流量,這樣當使用awk按行遍歷文件時,對次數數組+1,同時對流量數組進行文件大小的累加,等文件掃描完成,再遍歷輸出兩個數組既可以得到該文件的反問次數和總的流量消耗。

 

awk '{array_num[$7]++;array_size[$7]+=$10}END{for(x in array_num){print array_size[x],array_num[x],x}}' access.log|sort -rn -k1|head -10 >1.log

cat 1.log

 46232 1 /?=

22598 2 /static/images/photos/2.jpg
4460 1 /static/js/web_js.js
3583 1 /static/flex/vedioLoading.swf
1627 1 /static/js/jquery.lazyload.js

 

法二:

awk '{print $7"\t" $10}' access.log|awk '{S[$1]+=$2;S1[$1]+=1}END{for(i in S) print S[i],S1[i],i}'|sort -rn|head -10 >2.log

cat 2.log

 46232 1 /?=

22598 2 /static/images/photos/2.jpg
4460 1 /static/js/web_js.js
3583 1 /static/flex/vedioLoading.swf
1627 1 /static/js/jquery.lazyload.js

13、把/oldboy目錄及其子目錄下所有以擴展名.sh結尾的文件中包含oldboy的字元串全部替換為oldgirl【附加題:加分題,不會的同學可以放棄不答】。

解答:

模擬環境:

mkdir -p /oldboy/test

touch a.txt /oldboy

touch b.txt /oldboy/test

echo "oldboy" >a.sh

echo "oldgirl" >b.sh

法一:sed

sed -i "s#oldboy#oldgirl#g" /oldboy/*.txt

sed -i "s#oldboy#oldgirl#g" `find/oldboy/ -type f -name "*.sh"`

sed -i "s#oldboy#oldgirl#g" $(fing/oldboy/ -type f -name "*.sh")

法二:find+|xargs

find /oldboy/ -type f -name "*.sh" |xargs sed -i "s#oldboy#oldgirl#g"

find /oldboy/ -type f -name "*.sh" -exec sed -i  "s#oldboy#oldgirl#g {} \;

法三:for語句

for i in `ll /oldboy | grep .sh|awk '{print $NF}'`

do

    sed -i 's#oldboy#oldgirlg'$i

done


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、檢測程式 探查進程、ps:查看進程詳情 實時監測進程、top:實時輸出進行詳情和相關係統性能參數 結束進程、kill 二、監測磁碟空間 掛載存儲媒體、mount:mount /dev/sda1 on /boot 常用文件系統類型: vfat:Windows長文件系統 ntfs:WindowsNT ...
  • 使用虛擬機安裝Linux系統時,需要簡單的對虛擬機和Linux系統進行設置才能正確連接主機網路。按照以下步驟進行設置即可: 首先對虛擬機中的Linux系統進行網路設置: 1、依次單擊【System】-->【Preferences】-->【NetworkConnections】,如下圖所示: 2、依次 ...
  • 使用mysql的-e參數可以執行各種sql的(創建,刪除,增,刪,改、查)等各種操作 用法 mysql -uxxx –pxxx -e “mysql 命令” 當然還可以使用 如下寫法 mysql -e -uxxx –pxxx “mysql 命令” 實踐出真知 [root@iZwz99qnmldt4n7... ...
  • 一、SPI概述 SPI,是英語Serial Peripheral Interface的縮寫,顧名思義就是串列外圍設備介面。SPI,是一種高速的,全雙工,同步的通信匯流排,並且在晶元的管腳上只占用四根線,節約了晶元的管腳,同時為PCB的佈局上節省空間,提供方便,正是出於這種簡單易用的特性,現在越來越多的 ...
  • 查看 目前目錄使用的空間大小 h, human readable 查看 目前及下一屠的目錄 使用的空間大小 ...
  • 基本工具:VMware12、CentOS-7-x86_64-Everything-1611.iso、redis-desktop-manager-0.8.0.3841 廢話不多說,首先,關於什麼是Redis、Redis的安裝,請下載這個文檔去閱讀。 http://pan.baidu.com/s/1bB ...
  • 本例中為在Linux(以CentOS 7為例)安裝VMware Tools。 1.首先啟動CentOS 7,在VMware中點擊上方“VM”,點擊“Install VMware Tools...”(如已安裝則顯示“Reinstall VMware Tools...”)。 2.在命令行輸入“ls /d ...
  • ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...