匿名
尚未登入
登入
頂極製作所
搜尋
檢視 緯育 2026-0417.2 的原始碼
出自頂極製作所
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
緯育 2026-0417.2
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
管理員
您可以檢視並複製此頁面的原始碼。
<h3>Linux 殼層 I/O、重導向與基礎 Shell Script 入門</h3> <br> 本次課程聚焦 Unix/Linux 殼層中的輸入輸出資料流與重導向(redirection)、錯誤輸出處理、常見轉向目的地、tee 的雙重導向實務,以及基礎 shell script的入門觀念與腳本閱讀。<br><br> 內容涵蓋單引號/雙引號/反引號差異、echo 指令與 -n/-e 與跳脫序列的效果、IFS 在切詞與引號保護中的角色、連續指令與條件指令(&&、||)的短路行為、標準輸入/輸出/錯誤輸出(0/1/2)與輸出/輸入轉向(>、>>、<、<<)、錯誤輸出的分流與合併(2>、2>>、&>、&>>、> file 2>&1)、Here-document、多目標轉向(檔案、/dev/null、印表機、終端機),以及以 tee 配合管線在終端顯示同時寫檔的雙重導向。另以 find 結合時間條件與一般使用者權限的綜合練習示範如何同時管理 stdout 與 stderr;補充傳統 mail 指令的歷史與當代限制。課程亦帶領閱讀系統內的服務腳本(如 /etc/init.d 與與 SSH 相關腳本),強調先看懂結構與流程,再逐步補齊每個參數與設計的「為什麼」。 === 引號、echo 與 IFS === * 引號差異 ** 單引號:內容完全字面化,不做變數與命令替換。 ** 雙引號:允許變數展開、命令替換與少數跳脫(如 ", $, \、 等),其他文字維持字面性。 * 反引號(...):舊式命令替換,等價 $(...) 但可讀性較差;建議優先使用 $(...)。 * echo 行為 ** 預設結尾換行;-n 取消換行;-e 啟用跳脫序列( 、\t、\a、\c 等)。 * \a 需硬體/環境支援才會有嗶聲;\c 可終止輸出後續內容。 * IFS 與切詞 ** 預設以空白/換行/Tab 切詞;未加引號時易導致字串被過度切割。 ** 以單/雙引號保護空白與特殊符號可避免誤解讀;更動 IFS 有風險,僅於必要時使用。 === 標準資料流與轉向(Redirection)=== * 三大資料流 ** stdin(0)、stdout(1)、stderr(2);終端下可同時看到 stdout 與 stderr。 * 輸出轉向 ** 覆寫、>> 追加;可顯式指定 1>。 * 輸入轉向 ** < 由檔案餵入 stdin;<< Here-document 以旗標結束多行輸入,旗標需精確匹配。 * 錯誤輸出轉向與合併 ** 2> 覆寫錯誤輸出、2>> 追加錯誤輸出。 ** 全部合併導向:&> file、&>> file,或以 > file 2>&1 達成;避免混淆與錯誤的非標準組合。 * 管線與 tee ** 指令 | tee 檔名:同時顯示於終端並寫入檔案;tee -a 追加。 ** 適合即時監看且留存紀錄;若僅用 > 或 >>,終端可能看不到輸出。 === 轉向目的地與裝置 === * 檔案:保存 stdout/stderr 供後續處理或稽核。 * /dev/null:丟棄不需要的輸出(例如 2> /dev/null 隱去錯誤訊息)。 * 印表機:傳統 /dev/lp0,現行多為 /dev/usb/lp0;可將文字直接轉向列印(受驅動/系統列印管理影響)。 * 終端機/主控台:/dev/ttyX;可將輸出送至指定終端,可能干擾對方畫面。 === 郵件寄送指令(歷史與限制) === * 傳統 mail -s "主旨" 收件者,郵件本文以 < 檔案或 Here-document 提供。 * 現況多未預裝 MTA,寄件者設定不當易被視為垃圾郵件;多由 Gmail 等取代。未安裝時會提示安裝,配置需設定寄件者資訊。 === Shell script 入門與結構閱讀 === * 入門與練習 ** 以 hello 範例起步,再加上互動讀取姓名與時間;逐步引入中斷條件與狀態回報($?)的概念,強調每步都回應狀態以利監控與除錯。 ** 使用條件與邏輯運算子將多行判斷濃縮為單行以快速達成條件效果。 * 連續與條件指令 ** && 與 || 的短路行為:前者前一成功才執行後一;後者前一失敗才執行後一。 * 腳本位置與結構 ** 常見於 /etc、/etc/init.d、/etc/rc.* 等;服務啟動腳本為可執行文字檔,shebang(#!/bin/sh)宣告直譯器。 ** 常見元素:set(如 -e/-u 等錯誤處理策略)、test、if/else、case、函數、群組執行 ( )、管線與 grep、變數賦值、U-MASK 022 等。 ** 以 sshd 為例,可透過執行輸出搭配 grep 關鍵字來判斷是否 OpenSSH,採用簡單可讀的檢測方式而非複雜程式。 * 學習策略 ** 先看懂結構與流程,再逐步補充每個參數與設計理由;能讀懂與辨識模式(控制流、函數、變數、權限遮罩)是關鍵。 === 綜合練習與案例 === * find 與時間條件(一般使用者) ** 在 /etc 或 /var/log 搜尋最近 N 分鐘內被存取的項目;同時分流 stdout 與 stderr(例如 stdout 至 find.out、錯誤至 find.err)。 ** 權限不足多屬預期錯誤;執行時終端可能無即時輸出,完成後再檢視結果檔。 * tee 的雙重導向 ** 對會產生多行輸出的指令(如 ls -l)配合 tee 寫檔並顯示;需要追加則 tee -a。 * 輸出管理與日誌 ** 比較 >、>>、2>、2>>、&>、&>> 與 tee 的差異;根據需求選擇單純寫檔、追加、合併或同時顯示與保存。 [[檔案:2026-0417-04.png|800px]] === Shell Script 基本概念、結構與可讀性 === * 定義與構成 ** 將在 shell 下操作的多個指令集中於檔案,賦予可執行權限即可運作,無需編譯。 ** 內容元素:內建/外部指令(外部相依需檢查)、變數(自訂與環境)、流程控制(if、case、for、while)。 * 標準頭部與註解規範 ** 第一行必寫 shebang 指定直譯器,如 #!/bin/bash。 ** 加入描述性註解(# description)、作者(# written by)、版本(# version),避免因缺乏註解造成維護困難。 ** 建議於腳本末端加入執行狀態回覆(ESID/ESIS/ESIT),利於排程監控與控管。 * 可讀性與層次化 ** 以空行與區塊分隔提升可讀性;縮排一致、每行清楚註解,避免將註解擠在行尾。 ** 變數名稱語義化(如 varServer、varPort),在前段統一宣告並撰寫說明。 * 權限與相依 ** 確保具備執行權限(chmod +x 或精準 chmod u+x),避免 a+x 帶來安全風險。 ** 外部指令相依應於執行前檢查(如 command -v 或檔路徑),缺失時提供替代處理或提示。 === Shebang 與執行方式 === * Shebang 特性 ** # 為註解;但檔頭的「#!」於可執行檔識別具有特殊意義。 * 執行方法 ** 直接以路徑執行:./script 或 /path/to/script,系統依 shebang 叫用對應直譯器。 ** 以直譯器呼叫:/bin/bash script 或 sh script;即使檔案無 x 權限,只要可讀即可。 * 權限最佳實務 ** 優先 chmod u+x;若誤設 a+x,先 chmod a-x 再精準賦予。 ** 當下目錄通常不在 PATH,需以 ./檔名執行或移入 PATH 目錄。 === 系統中腳本與指令位置 === * /bin 與 /usr/bin:公用程式所在;可能為編譯程式或腳本,現代系統多為一致或連結。 * /etc/init.d:傳統 SysV init 的服務腳本位置。開機流程:GRUB → Linux kernel → init → 執行此處腳本(畫面 OK 訊息對應服務啟動)。 * 檢視範例:cd /etc/init.d 可見 ssh 等服務腳本;每行 # 為註解,誤編輯可能造成行為異常。 * 將腳本變成系統指令:mv script 到 /bin 或 /sbin,去除 .sh(例如 /bin/hello),即可在任意目錄直接呼叫,後續可設計參數/選項。 === 原始碼保護與編譯(shc) === * shc 可將 Shell Script 轉為 C 原始碼並編譯為執行檔,產出 C 檔與二進位。 * 目的:遮蔽腳本中敏感資訊(帳號、密碼、路徑),部署時僅提供編譯檔。 * 提醒:非萬能保護,但作為基本遮蔽可行,鼓勵自行嘗試。 === Hello World 與實務應用 === * hello.sh 範例 ** 內容:echo "Hello, 我的";頭部含 shebang、description、written by、version;結尾可加 ESID/ESIS。 ** 執行流程:初始無 x,示範用直譯器執行與 chmod u+x 後 ./ 執行;可移至 /bin 或 /sbin 改名為 hello 直接呼叫。 * 自動化案例 ** 帳號審核自動化:迴圈處理多筆,互動式 y/n 決定欄位值,輸出結果。 ** 學生資料登錄:互動式逐項收集與確認後寫入,支援指定人數。 ** 多樓層網路流量彙整:流程一致,寫成定期整理與報表腳本。 ** 定期備份:以日期命名備份檔,加入排程。 ** 遠端狀態輪詢:定期 ping/連線檢測多台主機,輸出或寄信,頻率依需求。 === 課堂節奏與操作提醒 === * 練習時段:安排短時段操作(推估 10:15–10:25)建立與執行 hello.sh。 * 易錯重點:直接輸入檔名不可執行需用 ./ 或放入 PATH;權限精準設為 u+x;依首行與環境選擇 /bin/bash 或 sh。 [[檔案:2026-0423-02.png|800px]] === 變數宣告與命名 === * 寬鬆行為差異:在講者示範的環境中,未宣告變數(如以 $MYNAME 展開)程式不會報錯;相較多數語言/環境,未宣告變數通常會錯。此差異影響健壯性,需依執行環境調整策略。 * 風險與命名原則:未宣告不錯使邏輯錯誤更潛藏,避免使用無語義名稱(如 MAR1、MAR2);採用具描述性的變數名並建立一致規範(駝峰或底線風格),以降低維護風險。 * 展開符號認知:變數前置符號(如 $)僅為展開語法,不屬於變數名本體,避免誤用。 === 使用者輸入介面設計(read) === * read -p 同列提示:read -p "提示" var 可在同一行顯示提示並接續輸入,適合短欄位(姓名、電話)。 * 分行提示再輸入:先 echo 提示,再以 read var 於下一行輸入,較寬鬆、適合長欄位(住址)。 * read -s 隱藏輸入:read -s var 在輸入時不回顯,常用於密碼;可與 -p 合用(read -s -p "Password: " pass)。避免在畫面顯露敏感資訊。 * 版面與體驗:短欄位偏同列;長欄位偏分行,減少誤判與視覺壓力。建議用「提示→讀取→回顯」即時驗證取值與展開。 === 字串輸出、變數插值與提示參數 === * echo/print 與 -p:以 -p 參數輸出提示字串到終端,後接變數名以組合輸出;輸出時以冒號、逗點或空白分隔提示與值,提升可讀性。 * 轉義序列:\a 產生蜂鳴、 換行;設備喇叭關閉時 \a 無聲。可串接多段輸出與變數插值形成完整訊息。 === 程式中斷、結束與回傳碼 === * Ctrl-C 中斷(SIGINT):按 Ctrl-C 使程式中斷,回傳碼為 130;以 echo $? 查詢。 * exit 與狀態碼:exit N 結束腳本並回傳 N;常見碼含 0(成功)、1/2(一般/語法錯誤)、126(非可執行或權限不足)、127(找不到指令)、130(被中斷)。未明確設定時預設為 0。 * $? 的使用:每個指令更新 $?;須在關鍵指令後立即檢查,避免被後續成功動作覆蓋。可用 if [ $? -eq 0 ] 或 [ $? -ne 0 ] 驅動流程。 * 範圍與回繞:exit code 範圍為 0–255,超過(如 256)會回繞至 0;測試建議以外部驅動次腳本並在外層觀測 $?。 === 互動式腳本:檔案檢查與錯誤處理 === * 目標流程:讀入檔名;若存在則輸出內容;不存在則以 OR(||)顯示錯誤訊息。 * 錯誤輸出處理:將前段命令的 stderr 重導(常丟到 /dev/null)以隱藏系統錯誤訊息,改由自訂提示呈現,畫面更乾淨。 * 範例語意:cat 檔案 || echo "檔案不存在";成功不執行後段,失敗觸發提示。腳本結尾可用 exit 0 明確成功。 === cat 指令與輸出控制 === * 基本用途:cat 將檔案內容輸出到終端,分享畫面時便於快速展示。 * 合併檔案:cat 檔1 檔2 > 新檔名,注意輸入順序。 * 常用選項:-n 為每行加行號;-b 僅對非空白行編號。多數情境偏好 -n,能清楚定位行號。 === 良好 Shell Script 寫作規範 === * 檔名風格:腳本檔名以 .sh 結尾,便於辨識(在 Unix 中點號是檔名一部分)。 * 變數取用:一律以引號包覆 "$var",避免空白與通配符問題。 * 函式範疇:函式內變數使用 local,避免污染全域。 * 選項風格:偏好長選項(--long-option)提升可讀性。 * 嚴格模式:在檔首加入 set -o nounset(未定義變數即停)與 set -o errexit(指令非 0 即停),提升穩定性與可預期行為。 * 條件判斷:建議使用 [],比 更健壯。將於後續詳解。 * 安全修補提醒:部分舊有 echo/字串注入手法因安全性修補已不可用,留意環境版本差異。 [[檔案:2026-0423-03.png|800px]] === Shell條件判斷基礎(if/elif/else與test) === * if語法結構與顏色分組概念 ** 講義以顏色標示:藍色為必備(if條件+對應分支),紫色為elif(可多組),紅色為else(至多一組、可省略)。強調「藍色一定要」,紫色與紅色為選配。 ** 標準語法示意:if [ 表達式 ]; then … elif [ 表達式 ]; then … else … fi。不同程式員縮排或括號風格不一;單行需以分號分隔,換行可省略分號。 * test/[] 返回值邏輯 ** 布林結果僅兩種:0(真)與非0(假)。講師口語以「0與非0」對應分支:為真進入then(偶稱「LEN/Land」),為假進入else。 ** 使用test(或[ … ])對數值、字串、檔案性質判斷;示範以-e/-d/-f等檔案測試參數檢查存在與型態(後文範例補充)。 * 命令區塊與風格 ** then/elif/else區塊可含多行命令;可選單行(以分號分隔)或換行排列。示例引用「SS群」作者寫法:then連在同一行時需多一個分號;願意折行則可不加分號。 === 檔案/目錄存在性檢查(範例:CheckSet) === * 需求與行為 ** 讀取使用者輸入路徑,判斷檔案或目錄是否存在;存在則顯示「存在」,否則顯示「不存在」。示例提及/ETC(口誤示例ETC);若輸入EDC/EDC底下的東西不存在則回應「不存在」。 * 實作重點 ** 使用read讀入變數(VAR/LAN等名稱示例,重點在存放輸入路徑)。 ** if test -e "$VAR" 判斷存在性;結果0(存在)走then,非0(不存在)走else;echo輸出對應訊息。 ** 目錄與檔案皆屬「檔案」:-e通用;需區分型態時用-d(目錄)或-f(一般檔案)。講師強調「目錄也是檔案」,如需嚴格區分請用對應選項。 * 實務提示 ** 初學者可先照範例撰寫,反覆練習建立獨立能力。 ** 測試與顯示時注意引號與路徑正確性。 === 使用者輸入與防呆(read、Ctrl+C/Ctrl+D) === * read用法 ** read -p "提示" 變數:帶提示字串讀取輸入並存入變數。 ** read -s 可與 -p 搭配:遮蔽輸入(如密碼),螢幕不顯示,功能相同。 * 防呆與中斷處理 ** 使用者可能亂按或用Ctrl+C、Ctrl+D中斷;可考慮關閉或捕捉這些中斷(先前課程提過可停用Ctrl+C/Ctrl+D)以避免不當跳出。 ** 程式需考慮輸入超出預期集合(僅測Y/y時,其他字元會進入else,可能被視為Bug);建議擴充驗證、提供預設分支與清楚錯誤訊息。 === 旗標判斷範例:Watermelon與包子邏輯 === * 條件敘事與邏輯重點 ** 故事:下班買10個包子;若看到賣西瓜的就買一個西瓜。示例強調「邏輯」設計重要性:語法正確但條件寫錯仍會出現怪異行為(如只買一個包子,或拿了西瓜卻沒包子)。 * 實作細節 ** 變數:WatermelonVendor,存放是否遇到賣西瓜(Y/N)。 ** read -p "…按Y或N" WatermelonVendor:提示輸入Y/y或N。 ** if test "$WatermelonVendor" == "Y" || "$WatermelonVendor" == "y":檢測大小寫Y。為真則echo「買10個包子與1個西瓜」;否則echo「買10個包子」。 * 擴充考量 ** 僅測Y/y時,其他輸入(如N、88)落入else,可能不完善。建議加入輸入驗證、循環重試或錯誤提示。 ** 可設定退出碼(exit/return值);後續程式若檢查上一段退出碼非0(例如9)可採不同行為。 === 多條件數值判斷(範例:BunPrice) === * 需求規則 ** 包子價格決定購買數量:價格≥20不買;15≤價格<20買5個;價格<15買10個。 * 實作與流程 ** 變數:BunPrice(存放使用者輸入價格)。 ** read -p "today bun price, … ** \r(展示前兆ND轉義差異)" BunPrice:說明未加反斜線時字面中的$ND可能被展開;加反斜線可避免展開,演示輸出差異。 * if test "$BunPrice" -ge 20:echo「不買」;elif test "$BunPrice" -ge 15:echo「買5個」;else:echo「買10個」。示例輸入90、19、1對應三分支。 * 檔案/目錄判斷補充 ** 再強調「目錄也是檔案」,但需分型態則用-d/-f等。 === 多分支模式匹配(case語法與CheckPass) === * case語法結構與特點 ** 語法:case "$變數" in pattern1) commands ;; pattern2) commands ;; … ) commands ;; esac。 ** pattern的小括號只在右側;每個分支命令結尾以「;;」,最後以「esac」結束。 ** 可添加多個分支(5、10、20皆可);預設分支用)表示「其他未匹配」。 ** 打字技巧:對保留字(導向字)記憶的幽默口訣(如鍵序C左鍵A左鍵S左鍵E組成「case」),重點在理解而非死背。 * 範例:CheckPass(密碼對應大門) ** read -p "Enter the password" Pass;需隱藏輸入則用read -sp(或-s -p)。 ** case "$Pass" in ** '12345') echo "Correct, door number 1 is open" ;; ** … 其他密碼對應不同門 … ** ) echo "You cannot enter" ;; ** esac ** 示範:輸入456456落入預設分支顯示不可進入;輸入12345匹配第一分支開門。 ** 工程習慣:格式一致便於複製貼上增列分支;單/雙引號皆可用於字串pattern。 === 使用模式集合判斷工作日/假日 === * 以數字集合判定 ** 規則:星期一至星期五為工作日;星期六、星期日為休假。 *** case "$day" in *** [12345]) echo "work day" ;; *** [67]) echo "holiday" ;; *** ) … ;; *** esac ** 說明中括號集合含義:「中括號表示其中任一字元」,非整串;例如day為4,匹配[12345]中的單一字元4。 * 可替代寫法 ** 使用|分隔的多pattern(如1|2|3|4|5);或以if數值比較(day<=5為工作日,否則休假)。 ** 若輸入域限定1–7,可用通配模式進一步精簡。 * 英文輸出示例 ** 口語示範曾說"If the date is Thursday then it's a work day"與"If the date is Sunday then it's a work day."(後者口誤,依規則Sunday應為休假),重點在模式匹配方法而非句子本身。 === 字元類別分類(大寫/小寫/數字/其他) === * 類別與用途 ** 將輸入字元分類為upper(大寫字母)、lower(小寫字母)、digit(數字)、other(其他符號),以便依類型處理。 * 模式寫法 ** 使用case與字元集合、範圍與否定,例如: *** [A-Z]) …(大寫) *** [a-z]) …(小寫) *** [0-9]) …(數字) *** *) …(其他) ** 講師口語示範「兩個中括號、中括號還有個帽號(^)」等進階寫法,用於否定或複合集合;提醒寫法較「怪」但可直接套用範例。 * 實務應用 ** 可用於輸入驗證、密碼強度檢查、命令分流等。 [[檔案:2026-0426-01.png|800px]] === 檔案路徑與搜尋 === * dirname 指令 ** 功能:從完整路徑中提取目錄路徑。 ** 特性:回傳的字串包含換行符元,可用於動態建立路徑。 * basename 指令 ** 功能:從完整路徑中提取檔名。 ** 優點:與 dirname 搭配使用可避免自行切割路徑字串。 * Shell 腳本實作:檔案搜尋工具 virlider ** 目標:讓使用者輸入起始目錄和檔名,回傳檔案所在的目錄列表。 ** 流程: 1. 使用 read -p 接收使用者輸入的目錄及檔名。 2. 使用 if [ -d "$VARPATH" ] 檢查目錄是否存在。 3. 使用 find $VARPATH -type f -name $filename 找出所有符合條件的檔案完整路徑。 4. 透過 for 迴圈遍歷搜尋結果,並對每個結果使用 dirname 指令,僅顯示其目錄名稱。 * find 指令 ** 功能:在指定目錄下尋找檔案。 ** 常用參數:-type f (指定類型為檔案)、-name (指定檔名)。 * 結束狀態碼 $? ** 功能:儲存上一個指令的結束狀態碼。0 表示成功,非 0 表示錯誤。 ** 應用:可用於腳本間的協同工作,根據狀態碼決定後續操作。 === Shell 腳本除錯 === * 啟用除錯模式:執行腳本時使用 bash -x scriptname.sh 或 bash -v script_name.sh。也可以在腳本內使用 set -x 啟用。 * -v (verbose) 模式:顯示所有讀取到的腳本層次碼,包含註解,資訊量大。 * -x (xtrace) 模式:只顯示「實際被執行」的程式碼。 ** 顯示格式:在執行的指令前加上 + 號,並顯示變數替換後的實際內容。無 + 號的行是指令的輸出。 ** 優點:能清楚追蹤執行流程、變數值,高效定位錯誤,為講師偏好的模式。 === for 迴圈 === * for ... in ... 寫法 ** 語法:for [變數] in [列表] do ... done。 ** 流程:依序將列表中的項目(以空白分隔)指派給變數,並執行迴圈內的程式碼。 ** 提升彈性:將易變動的列表內容存放在變數中,或透過 read 讓使用者輸入,實現設定與邏輯分離,提高可維護性。 * C 語言風格寫法 ** 語法:for ((初始值; 條件; 遞增/遞減)) do ... done。 ** 欄位說明: 1. 初始值:x=1 2. 條件:x<=100 3. 遞增/遞減:x++ 或 x=x+1 ** 優點:純粹用數字控制迴圈,適合需要精確控制執行次數的場景。 ** 應用:結合取餘數運算 (%) 和 test 指令,可實現格式化輸出(如每十個數字換行)。 === 算術與邏輯運算 === * expr 指令 ** 用途:將計算結果直接輸出到螢幕。 ** 語法:數字與運算子間需有空格 (expr 4 + 9)。乘號 需跳脫 (\\)。 * let 指令 ** 用途:僅回傳狀態碼,不輸出結果,適合腳本內部運算。 ** 語法:數字與運算子間不可有空格 (let "5-1")。可將結果賦值給變數 (let myvar=12/4)。 * 簡化寫法 ** ((...)):只要將算式放在雙小括號中,Shell 就會執行四則運算,例如 myvar=$((1+2))。 * 邏輯運算回傳值 ** expr 和 let 進行邏輯比較時,輸出 1 代表「真 (true)」,0 代表「假 (false)」。 ** 這與系統狀態碼 $? 的意義(0 代表成功/真,非 0 代表失敗/假)相反,需注意區分。 * 小數運算 ** expr 和 let 均不支援小數。 ** 替代方案:使用 bc 指令,或將數字乘以倍數轉為整數運算。 === 延遲與條件執行 === * sleep 指令:可讓程式暫停執行,支援秒 (s)、分 (m)、小時 (h) 等單位。 * 條件執行:可利用取餘數 (%) 的邏輯,實現「每隔N次執行特定動作」。 ** 範例:if [ $((變數 % 100)) -eq 0 ] 可判斷變數是否為 100 的倍數,並在條件成立時執行發出聲響 (echo -e "\\a") 和暫停 (sleep 3s) 等操作。 [[檔案:2026-0426-02.png|800px]]
返回到「
緯育 2026-0417.2
」。
* [[檔案:2000-Dragon-30.png|15px]] [[附近走走]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[應用程式]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[郵遞區號]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[作品紀錄]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[攝影相簿]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路書籤]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路照片]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[星艦日誌]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[Privacy_Policy|隱私政策]]<br>
附近走走
應用程式
郵遞區號
作品紀錄
攝影相簿
網路書籤
網路照片
星艦日誌
隱私政策
首頁
wiki工具
wiki工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌