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 的人都寫一遍看看
「linux bash script」的推薦目錄:
- 關於linux bash script 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於linux bash script 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於linux bash script 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳解答
- 關於linux bash script 在 01楊乾中Linux bash script 第一堂'操作示範 - YouTube 的評價
- 關於linux bash script 在 Bash Scripting Tutorial for Beginners - YouTube 的評價
- 關於linux bash script 在 useful-bash-scripts · GitHub Topics 的評價
- 關於linux bash script 在 Shell scripts and other related concepts - GitHub Pages 的評價
- 關於linux bash script 在 What is the difference b/w Bash and Shell script - Stack Overflow 的評價
- 關於linux bash script 在 How to debug a bash script? - Unix & Linux Stack Exchange 的評價
linux bash script 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
本篇文章是個經驗分享文,作者分享使用 Docker 作為開發環境時值得注意的 Best practices,透過這些經驗分享希望能夠讓開發者少走一些冤枉路。
原文提出了 15 個經驗談,這邊幫大家節錄幾個,有興趣的可以點選原文瞭解更多!
1. One thing at a time
2. Be ephemeral
3. Utilize .dockerignore
4. Less is more
5. Secrets should be secret
6. PID 1 is your birth right
7. Share and Care
8. Vulnerability Scan
9. Tag like you mean it
10. Permissions are costly
11. Source of Truth
12. Always official
13. Don’t include debug
14. Use entry point script smartly
15. Size does matter
One thing at a time
建置 Image 的時候專注做好一件事情,每個 Image 應該有一個專心要解決的問題,譬如一個應用程式,一個小工具等。對於 Nginx 這類型的 Image 來說,應該沒有人會期望於裡面看到有 Apache 的應用程式吧?
Be ephemeral
這個主要探討的是該 Image 本身建置時應該要以 stateless 的概念去處理,未來不論是透過 docker 或是 Kubernetes 來管理部署時,Contaienr 都很有機會被重啟,每次的重啟都意味該容器是重新啟動。所以千萬不要讓你的 Image 變成多次重啟會導致應用程式出問題的形式,任何的這類型資料應該都要透過外部取得,不要塞到你的 Image 內
Utilize .dockerignore
善用 .dockerignore 這個檔案來將不必要的檔案從 build 過程給排除,使用方法與 .gitignore 類似。透過這個檔案的設定可以避免 docker build 的時候不會把一些過大或是完全不需要的檔案都送給 docker daemon,不當浪費時間也浪費空間。
Less is more
避免安裝任何無關或是非必要的套件到你的 image 中,特別是那些 "nice to have" 的理由。
註: 我個人是滿討厭把 Image 弄得很乾淨的,除錯什麼工具都沒有,連 ash/sh/busybox/bash 都沒有的 image 更是我討厭中的排行榜冠軍
Secrets should be secret
任何機密資訊都應該要於運行期間動態載入,而不是建置期間塞入。請使用其他工具譬如 Vault 來管理這些機密資訊,並且執行期間讓 Container 能夠存取到正確的值。
PID 1 is your birth right
Linux 環境下會使用 SIGTERN, SIGKILL 等相關的 Singal 來戳你的應用程式,請確保你運行的應用程式要能夠攔截這些訊號來處理並完成有效的 Graceful shutdown.
Share and Care
如果環境中有多個 Image 彼此有共享相同的工具與功能,與其每個 Image 都單獨建置維護不如建置一個 Base Image,接者讓所有要使用的 image 去載入使用即可。
透過這種方式可以讓整體的維護性與管理性更為簡單,每個 image 可以減少重複的程式碼,同時要升級時只要針對 base Image 處理即可。
https://medium.com/pradpoddar/avoid-costly-mistakes-using-advanced-docker-development-best-practices-acd812784109
linux bash script 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳解答
ข่าวลือที่เป็นจริง ...เมื่อ Ubuntu จะมาอยู่บนวินโดวส์ ข่าวดีสำหรับนักพัฒนาซอฟต์แวร์บนวินโดวส์ โดยเฉพาะ (น้ำตาจะไหลดีเปล่าเนี่ย)
ที่ประชุมงาน BUILD 2016 ไมโครซอฟต์ประกาศ Windows 10 ตัวอัพเดตใหม่ (เรียกว่า Anniversary Update) จะสามารถรัน Bash (Shell script) ของ Linux เป็นแบบ Native ใน cmd.exe ของวินโดวส์ได้แล้วจ้า!!!!
+++++ต่อไปเราก็จะทำได้ดังนี้+++++
1) มียูสเซอร์บน Windows 10
2) เปิด Start menu ขึ้นมา
3) พิมพ์คำว่า bash แล้วกด Enter
4) เมื่อนั้นคอนโซลในตำนานที่เรารู้จักกันดีอย่าง cmd.exe ก็จะโผล่ขึ้นมา
5) สามารถรันคำสั่ง /bin/bash
6) เมื่อนั้น User space ของ Ubuntu ก็จะได้สิทธิเต็มที่
7) ต่อไปเราก็สามารถใช้คำสั่งพวกนี้้ได้ apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch…
8) นั้นหมายความว่า หลายหมื่นกว่าแพคเก็จไบนารี่ของ Ubuntu สามารถเอามาติดตั้งได้ ...โอ้พระเจ้าทอดกล้วยปิ้ง
++++ต้องเข้าใจอย่างนี้ว่า++++
- มันไม่ใช่ virtual machine
-ไม่ใช่ Container
-ไม่ใช่ Cygwin
-ไม่เหมือนตัว Linux emulator
*มันเป็นเพียง Ubuntu user space
*มันเป็นเพียงไบนารี่แบบ Native ของ Ubuntu ที่รันได้โดยตรงในวินโดวส์
*และไมโครซอฟต์ก็เรียกว่าเป็น Windows Subsystem สำหรับ Linux
+++++ในข่าวมันยังบอกอีกว่า++++
- เราสามารถ mount เห็นระบบไฟล์ของ Ubuntu ได้ด้วยนะ จาก Windows Explorer
- จะพิมพ์คำสั่ง ssh ต่อเน็ตเวิร์คออกไปข้างนอกก็ได้ โดยไม่ต้องพึ่งโปรแกรม Putty
- สามารถใช้ apt ติดตั้ง และอัพเกรตอะไรก็ได้ ตามที่อยากได้
ถ้าสนใจจะอ่านรายละเอียดอ่านเพิ่มได้ที่ (แปลและเรียบเรียงใส่สีตีเข่ามาอีกที)
https://insights.ubuntu.com/…/ubuntu-on-windows-the-ubuntu…/
linux bash script 在 Bash Scripting Tutorial for Beginners - YouTube 的推薦與評價

Learn bash scripting in this crash course for beginners. Understanding how to use bash scripting will enhance your productivity by ... ... <看更多>
linux bash script 在 useful-bash-scripts · GitHub Topics 的推薦與評價
A collection of useful shell scripts for Linux, Windows & Mac. script useful useful-bash-scripts. Updated on May 10; Shell ... ... <看更多>
linux bash script 在 01楊乾中Linux bash script 第一堂'操作示範 - YouTube 的推薦與評價
01-楊乾中 bash script 第一堂示範https://youtu.be/eoZRwyD9yYw本單元示範操作了 Linux 以下的主題並標示幾分幾秒時有哪個主題的示範,方便您尋找與學習 ... ... <看更多>