Raspberry Pi 4 Ubuntu 從 USB 開機 (無 SD Card)
請先參考”樹梅派 Raspberry Pi 更新韌體 EEPROM“把韌體更新到最新版本,並下載最新版本的 Ubuntu 刷入 USB 中,不知道如何將 OS 刷入 USB 可以參考: “樹梅派使用 balenaEtcher 將 OS 刷入 MicroSD 或 USB 步驟教學“。
…請先參考”樹梅派 Raspberry Pi 更新韌體 EEPROM“把韌體更新到最新版本,並下載最新版本的 Ubuntu 刷入 USB 中,不知道如何將 OS 刷入 USB 可以參考: “樹梅派使用 balenaEtcher 將 OS 刷入 MicroSD 或 USB 步驟教學“。
…官方把開機 OS 刷入 SD卡或 USB 中,可以使用 Raspberry Pi Imager 進行刷入映像檔案,但也可以使用第三方的軟體 BalenaEtcher 刷入動作簡單明確。
…購買樹梅派後都在研究如何調教及優化效能,使用 MicroSD 運作系統會 IO讀寫瓶頸導致整體效能低落。改善此問題可由 USB 開機來解決,但需更新韌體版本。
…最近在比較早期的 CentOS 6 把 mount 點寫入 fstab 中,再重新開機並未自掛載上去,執行 mount -a 也沒有任何錯誤訊息並正確掛載,填入 “_netdev” 也未正確掛載。
…grep foo | wc -l
grep -c foo
grep foo * .log | wc -l
cat * .log | grep foo -c
這單純是一種程式編碼上風格問題,因 grep 可以直接進行計算無須再次利用管道方式傳送至 wc 進行運算。
檢查有無符合的匹配項目,在沒有符合的項目時(參數值==0),此情形下使用 grep -q 甚至更加清晰及高效率,例如下列示範:
if grep -q pattern file; then
echo "此文件有符合的項目"
fi
當如果執行 foo | grep bar | wc -l,在正常情形下無法顯示 grep 執行時的異常訊息,並且始終顯示執行成功,錯誤排除時難以查找問題。如果替換成 foo | grep -c bar 則在沒有匹配項目時退出會顯示 0 。
如果在特定情形下 wc 指令可以使結果更清楚,就可以忽略此寫法。
echo "Name:\t$value"
printf 'Name:\t%s\n' "$value"
特殊字元像是 \t 或是 \n 並不會被 echo 轉義成特殊字元,而會如實的列印出字面上的 \t 及 \n。但 printf 會確實的解析此類型的特殊字元,應改變使用習慣。
部分Linux 支援像是使用 echo -e ‘\t’ 和 echo$’\t’。但為了共通性應該避免使用,
printf 確實會擴展這些序列,應改為使用。如果在 VS code 中撰寫shell 腳本開頭宣告#!/bin/sh , ShellCheck 套件也會發出此警告。
如果您確實需要字面反斜線-t,請使用
echo "\\t"
無
小編最近在協助公司撰寫設備檢查 Shell Script,使用了工具 VS code 裡面有套件協助檢查編輯或是程式語法錯誤等問題。發現在編輯習慣上會導致的錯誤,也近一步得到修正,順便就把有修正的錯誤做的紀錄,提醒自己變更寫作習慣。
…某些服務須禁止對外訪問,僅限定內網訪問。把常用的兩個方法列出,雖然可利用防火牆配置,但避免意外產生時無法控管風險,會再額外限制一層增加攻擊者的困難度。
…