堆積迷宮積木
用網頁分享資訊
- 建立一個新的 目錄 directory, 並進到裡面去工作:
mkdir public_html ls -l pwd cd puTAB ls -l pwd
- 用 lynx 瀏覽器本網頁, 並下載這篇 網頁樣版。
- 把網頁樣版裡面的
<BASE HREF="...">
這句話刪除掉。 - 更改檔名:
mv teTAB index.html
再用ls -l
檢查一下。 - 打開你家的門, 並打開 public_html 子目錄的門與燈, 最後用 firefox 看你的網頁: http://localhost/~帳號/index.html
- 簡單修改一下網頁內容, 並在 firefox 內按 「重新整理」。
- 把你製作的迷宮放到網頁上與大家分享:
mv ../1.maz .
這句話意思是將 parent directory 上一層目錄 ".." 底下的 1.maz 檔案搬到 current directory 目前工作目錄 "." 來。 並且修改 index.html, 裡面放一個 超連結 hyperlink 指向這個檔案。 從 firefox 裡面試一下看是否成功。 - 請確認你的迷宮大小為 10x20:
wc -clL 1.maz
應該印出 10 210 21 1.maz 如果不是的話, 等一下其他同學就會把你的迷宮丟在一旁不用了。 - 上面這個指令是什麼意思? 請下
man wc
看手冊。 空格鍵是下一頁; b 是上一頁; q 是離開; 更多操作鍵, 請見 less 簡介。
不要急著學習/製作花俏的網頁, 目前請以文件內容為重 -- 金玉其表底下的東西 比較重要。
整批收割
- 以下動作請在另外一個新建的子目錄進行, 以免混亂。
例如
mkdir ~/maze-zoo ; cd ~/maze-zoo
- 先用 lynx 看同學做的網頁: lynx http://localhost/~同學的帳號/ 並按 \ 檢視原始碼。 確認沒有問題之後, 離開。 (瀏覽網頁時, 如果目錄後面沒有接檔名, 伺服器那邊通常會自動去找 index.html)
lynx -source http://localhost/~同學的帳號/
壯觀吧...- 把剛才在螢幕上一閃而過的同學網頁存檔:
lynx -source http://localhost/~同學的帳號/ > a.html
這個 > 叫做 輸出重新導向 output redirection, 用意是將原本要印在標準輸出裝置 standard output (其實就是 「螢幕」 啦) 上的資料, 改印到檔案裡面去。 用ls -l
檢查一下, 甚至用lynx a.html
看一下複製回來的內容。 - 請用相同的方式抓同學的迷宮 1.maz, 但存檔名稱改為 "同學的學號.maz" , 並檢視其內容。
- 學用 for 迴圈:
for f in abc pqr xyz ; do echo $f ; done
- 用 for 迴圈一次抓三位同學的迷宮:
for f in 學號甲 學號乙 學號丙 ; do lynx -source http://localhost/~$f/1.maz > $f.maz ; done
- 檢視老師提供的 「所有同學名冊」:
less ...
(用 vim 看也可以; 不過現在只是要看, 並沒有要修改, 所以用更簡單的 less 就夠了。) - 整批收割:
for f in $(cat ...) ; do lynx -source http://localhost/~$f/1.maz > $f.maz ; done
「學視障者用的文字瀏覽器有什麼用?」 「學命令列有什麼用?」 這些問題終於得到一點解答 :-) 希望大家從今天起可以打破滑鼠選單的迷思。 重複, 機械化, 有規律的動作, 就不應該是人做的事! 用滑鼠來做, 並沒有比較高明。
拼圖
- 看看是否每個迷宮都正確?
wc -clL *.maz
- 顯然並不是。 挑出至少形狀正確的迷宮:
wc -clL *.maz | perl -ne 'print if /10 *210/'
(記得用上箭頭!) 不必擔心指令太長, 反正忘記了可以回來抄; 重點是理解 /.../ 裡面的東西: * 表示前面那個字元重複任意次。 - 同上, 但把檔名留下來就好:
wc -clL *.maz | perl -ne 'print if /10 *210 *21/' | perl -pe 's/.* //'
這裡的 . 表示任何 一個 字元; 所以最後那個子句的意思是: 把 「任意字元出現任意次」 直到遇到最後一個空格為止, 全部刪除掉。 - 在上句最後面加上
> ok.lst
存檔。 - 隨便挑 6 個檔案, 我們要像拼積木一樣把它們拼起來:
paste -d : 學號甲.maz 學號乙.maz 學號丙.maz > a paste -d : 學號丁.maz 學號戊.maz 學號己.maz > b cat a b > big.maz
- 用 less 分別看一下 a 與 b 的內容, 然後進 vim 編輯 big.maz。 等一下如有任何閃失, 記得 u 是 undo (還原)
- 先把所有冒號去掉: 遊標移到第一列, 按 shift-V 進入 visual line mode, 再按 G 移到最後一列, 最後打 ":s/://g"
- 再把所有老鼠變成空格: ":1,$ s/@/ /g" 這裡的 1,$ 表示從第一列到最後一列。
- 最後把所有乳酪變成空格: ":% s/C/ /g" (以上三種 "選取全部範圍" 的方式, 效果都一樣。)
- 自己放一隻老鼠, 一片乳酪, 開始玩吧!
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/clr/blocks.php; 您所看到的版本: February 14 2012 10:32:25.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。