ref: https://cmdchallenge.com/#/hello_world
今天分享的是一個有趣的 Command Line Interface(CLI) 挑戰,該挑戰主要是基於 Linux bash 的環境有一系列的指令挑戰
挑戰內容基本上都不會太困難,一開始都是非常基礎的 Linux 指令操作,後面會需要使用 grep, sed, awk, find 等不同指令的組合來完成任務。
大部分的題目都會基於一些情境,譬如想要針對 httpd server 底下的 log 進行過濾,計算符合某些內容的行數等等
每道題目除了自行挑戰外也可以看一下別人的解決方案,不過解決方案中有一些是作弊的內容,譬如直接針對題目用 echo 輸出之類的,就滿搞笑的。
我認為這類型的挑戰有兩個值得去玩看看的理由
1. 測試自已是否能夠解決每一個問題,順便看一下自己的解決方式跟別人的比起來如何,有時候會有一些意想不到的指令與用法可以讓整個寫法更為簡潔
2. 如果有面試需求的時候,可以考慮從這邊找一些相關題目,看看面試者對於 shell script 的熟悉度,同時互相討論每個解法的好壞處。
歡迎愛寫 shell script 的人都寫一遍看看
同時也有6部Youtube影片,追蹤數超過11萬的網紅TRIBE ch.,也在其Youtube影片中提到,・良い事なしの激辛人生を送り続けるトライブゲーム部員に運営から指令が! 解散の危機迫るトライブゲーム部が人生ゲームに強制挑戦! まさに各々を象徴するがの如く、過酷な展開が待ち受ける?! 『獄辛』+『罰ゲーム』でマダオが瀕死状態に...?! 解散危機迫るトライブゲーム部の運命や如何に?! 【トライブ...
「bash指令」的推薦目錄:
bash指令 在 軟體開發學習資訊分享 Facebook 的最佳貼文
這個工具為 bash / sh shell 指令碼提供警告和建議
https://softnshare.com/shellcheck/
bash指令 在 Kewang 的資訊進化論 Facebook 的精選貼文
繼之前分享如何實作「窮人版 ELK」之後,再來分享一下這個服務裡面的 DSL 是如何實作的。會想到要為這個服務做 DSL,主要是小編雖然已經把 Impala 產生的資料利用一些工具轉成 PNG 圖檔,但動作太繁雜,所以想把這些過程用 DSL 來表示,工程師只要會下 SQL 就能把資料轉成 PNG 圖檔了。
其實對於 DSL,有在 follow 粉絲頁的朋友應該有注意到,小編很久以前就有一個屬意的方案了,那就是 MSON。它結合了 Markdown 以及 JSON,所以不只人類易讀,機器也易讀。只不過 MSON Parser 一直都是殘缺不全,所以沒辦法讓小編完整的實作 DSL,這個方案就被捨棄了。
另一個也很適合拿來做 DSL 的就是 YAML 了,個人覺得跟 MSON 比起來易讀性稍低一點,但已經是目前還不錯的實作方式,所以就以這個來做為「窮人版 ELK」的 DSL 實作方案。
DSL 已經把所有轉換的細節都隱藏起來了,工程師只要先自己在 Impala 上撰寫正確的 SQL 指令,其他動作只要把必要欄位填完就可以了。下面是必要欄位的說明:
* SQL:要在 Impala 裡面執行的 SQL 指令,其中有用 ":VAR" 包起來的變數名稱,表示是從 INPUT 欄位取得
* CHART:highcharts 的圖表格式,DSL 目前支援 column (長條圖)、pie (圓餅圖)
* INPUT:這是一個陣列,表示這個變數名稱是從外部操作時取得,另外後面的 "date" 為資料型態,目前支援的類型為 HTML 的 input[type]
* OUTPUT:產生 PNG 圖檔時的欄位資訊,如 X 軸是從 Impala 的哪個欄位取得,顯示在圖表上的名稱要叫什麼
至於轉換細節又是另一件麻煩事,將 DSL 轉成最後的圖檔又經過了不少步驟:
1. js-yaml:雖然說 YAML 很適合拿來做 DSL,但 JSON 還是目前大家最常用的格式。所以當然要先把 YAML 轉成 JSON 這樣才好操作 XD
2. jq:轉換過程中 jq 幫了小編很大的忙,官網寫著這是一套輕量且靈活的命令列 JSON 處理工具。無論要對 JSON 取 key、取 value、取 length、做 group by、做 sort by、if-else、while-loop 都可以,就是很強大。所以小編就拿這個將 YAML 轉換完的 JSON,用一堆奇怪的語法把資料轉換成功。
其實在轉換過程最麻煩的不是操作 JSON,最麻煩的在小編不太會寫 bash script 啊!!!尤其是一堆變數轉換的過程,一下子用 ${},一下子用 $(),還有 ${[$k]} 的這種寫法,看了頭好痛 Orz
最後把 jq 轉完的資料丟給前一篇提到的那些工具,就可以完美把 PNG 圖檔產生出來了,第二篇的「窮人版 ELK」文章到此也就結束了。其實這個專案還有另一個跟圖表無關的功能,那就是即時觀看 API 發送歷程,如果有第三篇的話再來分享一下好了。
* 如何實作「窮人版 ELK」:https://www.facebook.com/kewang.information/posts/2085843121692051
* 如何使用 MSON 的幾個方向:https://www.facebook.com/kewang.information/posts/1940647046211660
* jq:https://stedolan.github.io/jq
#mson #dsl #yaml #json #jq
bash指令 在 TRIBE ch. Youtube 的最佳貼文
・良い事なしの激辛人生を送り続けるトライブゲーム部員に運営から指令が!
解散の危機迫るトライブゲーム部が人生ゲームに強制挑戦!
まさに各々を象徴するがの如く、過酷な展開が待ち受ける?!
『獄辛』+『罰ゲーム』でマダオが瀕死状態に...?!
解散危機迫るトライブゲーム部の運命や如何に?!
【トライブゲーム部】
https://www.youtube.com/channel/UCxwNQnFhZGitwmOo_fRkzUg
チャンネル登録よろしくお願いします!
#人生ゲーム #ボードゲーム #罰ゲーム
bash指令 在 TRIBE ch. Youtube 的精選貼文
・死神からの指令は「打った事のない機種」
未だ負け知らずのバッチ 死神の指令で選んだ機種は 「十字架4」
後半も勢いが止まらないバッチ!
8連勝確実か!?
<協力>
パチスロ攻略マガジン
パチマガスロマガちゃんねる
グランパ大久保店
グランパ中野店
bash指令 在 TRIBE ch. Youtube 的最佳貼文
・キャプテンりっきぃからの指令で奥義「力-STRREGTH-」発動
1,500枚GETで獲得財宝が×2倍となったミオリン
更なる財宝獲得へ続行を決意!そして・・・!?
ラスト「バーサス」に挑み追撃を狙う!そして・・・!?
奥義を活かすプラス収支で終われるのか!?
[酔いどれ団財宝:+0pt]
推し!:奥義「力」発動!
◆「BATTLE TRIBE-女帝無想-」海賊団戦略◆
↓↓↓
https://youtu.be/P03e8yftRx0
bash指令 在 Linux Command Line Tutorial - Introduction to Bash Scripting 的美食出口停車場
... 重製影片Linux Command Line Tutorial For Beginners 20 - Introduction to Bash Scripting https://www.youtub... ... 【 Linux 】常用 指令 教學. ... <看更多>