bash number loop

今天在某的地方剛好看到一個 bash 的小技巧,當我們要從 1 數到 100 時,通常會用 seq 指令來做,但是如果我們的需求剛剛好是每次遞增(遞減)1 的話,就可以使用 {start..end} 縮寫,下面兩個範例的效果是一樣的: # for 迴圈 + seq 的寫法 for i in $(seq 1 1 100); do echo $i done # 用 {start..end} echo {1..100} 這個技巧也可以用在建立檔案,像這樣: touch user{1..100}

2020-November-15 · 1 分鐘 · simba-fs

bash completion

需求 今天寫了一個 bash script 幫我管理 mongodb docker,在使用的時候一些子命令,像是 up、down、clean。我希望可以讓 bash 當我自動補齊這些選項。 bash_completion bash_completion 是一個可以幫我們做程式化補齊的工具,像是 git 就有使用到這個工具,在 commit、push 的時候按 tab 都會顯示出當下我們可以用的東西,像是 git push<tab><tab> 就會自動補齊 origin 而不是給我們看檔案(bash 預設只會補齊檔案和命令)。我們這次只須要用基本的 complete 就可以了 complete complete 可以幫命令加上簡單的自動完成,其實 bash_completion 也是去呼叫這個命令來達成自動補齊。complete 傻用非常簡單,像下面這樣就可以幫 mongodb 這個命令加上自動補齊 complete -W "up down clean" mongodb -W 選項代表後面是字詞列表,用 -F 後面可以接一個函數,但是這個我沒研究,也許下一個專案就是研究 complete 也說不定。

2020-November-14 · 1 分鐘 · simba-fs

文章更新時間錯亂問題

問題 在設定完 GitHub Action 之後,我發現我的文章的更新時間都錯了,會全部變成當天日期。但是本地生成的就沒有這個問題,經過一番盤查和猜測後,我發現問題是因為 git 不會把 modified date 紀錄,因為每台電腦的時區都是不一樣的,紀錄起來沒有意義。但是我們需要這項 meta data,所以我們就要自己想法紀錄 解法 v1.0 首先,因為每一篇文章 hexo 都會紀錄建立時間,所以我們可以直接把他抓出來,然後把檔案的更新時間設成這個時間就可以啦! 更改檔案的 modified time 這個功能只要用我們最熟悉的 touch 就可以做到了。一般我們使用 touch 的時候會把 modified time 改成當下時間,那要改任意時間只要加上 -t 選項就可以啦 -t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time 假設我們有個檔案 tmp ,我想把他的日期改成 1999/3/23 12:32:33 ,那我可以這樣下指令 ted timeouch -t'19993231232.33' tmp 抓出檔名、日期 # git create time grep -rnw source/_posts -e 'date' output:(這裡的 date: 後面我多加了一個空白,原因後面會說) source/_posts/hexo-installation.md:3:date: 2020-02-10 17:26:45 source/_posts/blessed.md:3:date: 2020-02-17 23:24:10 source/_posts/bash.md:3:date: 2020-02-16 22:15:10 source/_posts/hexo-cli-extras....

2020-August-20 · 2 分鐘 · simba-fs

youtube-dl

最近在下載 youtube 音樂,每次下載都要把檔案重新改名,很麻煩。所以就想要寫一個 shell script 來幫我解決。 首先改名字我相信 youtube-dl 一定有提供這個選項,於是開始查文件。 看到 -o ,接下來講遇到的坑 -o 坑 -o 後面接的是一個 template string ,不是檔名,而且就算指定副檔名是 .mp3 了還是要寫成 %(ext)s

2020-March-4 · 1 分鐘 · simba-fs

server-tool

用 bash 寫 log 分析工具 因為我們的 server 不知道是為什麼一直受到 DDoS 攻擊 我想知道是什麼時段容易受到攻擊和每次多久、來自那個 ip 於是我花了一點時間寫了幾個簡單的 script

2020-February-16 · 1 分鐘 · simba-fs

ddos

伺服器被 DDoS 惹 今天早上把社團的 reverse proxy server 換成 nginx 下午心血來潮看看 log 檔 因為沒有寫好的工具 首先把 log 檔 cp 到我的電腦再來處理

2020-February-13 · 1 分鐘 · simba-fs