上星期六我們前往師範大學
參加97學年全國大專電腦軟體設計競賽甲組比賽(簡稱大甲)
可能是去年黃金雄教授宣傳的關係
參賽隊伍比去年多,北區共有78隊參賽
今年我們學校總共有四隊報名(以往僅一隊)
我跟阿業、阿維一隊,阿良、王品、厚諭一隊
還有資三A的學弟妹兩隊
大甲算是ACM的前哨戰,比賽方式跟ACM相同
不但不需要報名費,還附贈一個便當
而且比賽前三名的隊伍還可以免費參加ACM競賽
但我們其實只是去玩玩的
因為我們這一年根本沒有花時間去解題庫
而他考的題型其實也很偏頗
一般學校的課程對這場比賽幾乎沒有幫助
所以我們一開始就不覺得自己會得獎,只是去玩玩的而已
大甲跟ACM的比賽有些規定很嚴格
比方說不准帶任何電子產品,像是電子字典、PDA、筆記型電腦
甚至連計算機都不可以(不太懂為什麼要這樣規定)
手機只要有響就直接失格,好像在考指考
阿良那組沒有在比賽前看過規定,導致他們三位完全沒帶字典
不過這次的單字都不怎麼難
我比到最後也沒翻過字典,真是白帶了
比賽的機器使用中文版的Debian,附有文字編輯器gedit
早上會讓你測機並給予兩道題目來解題
第一題是讀取字串,並將讀取到的陣列的所有元素反過來
如果裡面元素是字串的話也要一併反過來
老實說這跟去年阿業參賽時的練習題目相同
可是很離譜的,我竟然沒有寫出來="=
因為編譯一直出現奇怪的error
而且由於此題沒有先指定陣列數跟裡面的元素數
做起來相對麻煩(正式題目會跟你說要讀幾個元素)
第二題很簡單,讀取數字後判斷大小再印出相對的字而已
我前一天應該要練習C語言才是...
吃完供應的便當後(聽阿業說去年還附養樂多,今年卻沒了)
從12:30開始進行為期5個小時的比賽
比賽跟ACM相同,總共有十題,全英文出題
題目還會限制執行時間,就算答案對但執行時間超過一樣算錯
每答對一題工作人員會在你的電腦上掛上一顆氣球
所以看到別組的氣球就能知道他們答對題數(還能給予壓力)
我跟阿業、阿維各拿了一題來看
他拿了需要組合的數學題,我拿了老鼠走迷宮,阿維拿了解密題
其實我一直不會寫老鼠走迷宮的題目
但我很久以前曾經有印老鼠走迷宮的解法
在現場看了一下後,竟然就完全了解了=__=(人的潛力真是無窮)
不過阿維的解密題比較簡單
於是我們先解了解密題
Problem J
---------------------

從A到Z加上空白、句點、逗點共29個字母
用二進位給予00000到11100的編號
當某位置二進位為1時,將12345678最後面的字元移到該位置
比方說g為00110,就把12345678變成12873456
題目會給予你很多這8位數字,必須將他轉回英文字
此外,每個字元可以有+-1的誤差
比方說o為18762345,當輸入為27753244一樣要輸出o
範例輸入中出現*要換行,出現0則結束
最後還要印出共有幾個字元(*算一個字元,0不算)
Time Limit:1 sec.
Sample Input
128763451283456718276345182763451876234587612345871623458
17623451876234581237456182763451238745687165234*228853462
284356828285346282853462875134677621346771513467175134628
751346712484552828534622378455771562330
Output for the Sample Input
hello, world.
hello, world.
Total: 27 characters.
看起來很簡單?其實我一開始也是這麼認為的
這題要做對絕對不難,只要先把所有字元代表的數字輸入進去
再設一個數字陣列,判斷讀取到的字元是否符合字元代表的數字
若數字不符合就把陣列設0代表沒用,之後就不看他了
我一看到題目,腦海中馬上就想到這種解法
但...你有看到本題限制時間是幾秒嗎?是一秒!
要是用我這種方法的話,保證超時算錯
聽說學弟那組就是用這種方法的
幸好當時阿維想到了一種方法,只要判斷前五個字元即可
若是字元是大數則代表二進位為1,小數則為0
比方說81273456就是10010(注意:判斷大數會隨著抓到的數字做變動)
再把10010轉成十進位,就能把第18個字元s抓出來
這個方法要判斷的數字從8個減少到5個,的確是非常好
當時我腦筋還轉不過來,聽不太懂阿維的想法
不過後來了解之後,才發現他的作法~非常好!
因為我當時太緊張的緣故(加上冷氣口朝我吹)
還不小心把字元數算錯,被回傳wrong answer
害阿維緊張了一下,真是對他不好意思
第二次回傳後就顯示正確了
呼~要解一題還真是困難重重呢~
To be continued...

蕭雲 發表在 痞客邦 留言(2) 人氣()


 
以前的視窗老師跟我要兩年前在課堂上的這個臨時作業...
不過當時我覺得我做的太爛了所以沒有存檔
所以現在就加上當時沒做的功能重寫一次,當作練習
遊戲就是簡單的記憶翻牌遊戲(俗稱對對碰)
因為這只是練習用,所以跟尋常的對對碰無異
只有增加當時沒寫的一點點小功能
像是按鈕數可以動態決定(不過最大11*7,因為螢幕不夠用了=__=)
還有增加音效或小限制
按鈕可以設奇數個,多出來的那一個是擾亂用的XD
圖片使用神奇寶貝珍鑽版的圖片
理由一是變化多,理由二是好找,理由三是格式相同且不會太大
每次開始遊戲的圖片是從151隻裡面隨機挑出來的
為什麼不用493隻?因為版面最大也只能挑出38個
全部圖片都包進去實在太佔空間了
順便提醒一下,如果按鈕數超過50個,並在100秒內過關
會有驚喜喔( ̄ー ̄)
遊戲下載(184 kb,需要.NET Framework 2.0)
會比平常大的原因是因為大部分是圖啦
原始碼(請不要進行二次散布,遊戲中需要的圖片、音效存在bin\debug中)
-----
由於程式實在是太過簡單,所以我嘗試簡短了變數的宣告
比方說一般的設計應該會宣告按鈕陣列
還有記憶按鈕實際編號的數字陣列
但其實數字陣列可以不用另外宣告
因為VB的每個物件都有Tag屬性
可以讓你放置數字或文字等任何東西,就像備註一樣
這麼好用的東西怎麼可以不用呢?
還有,有些人會把選項的設定再宣告一個全域變數使用
(例如選項的Form設定X,Y大小,在遊戲畫面的Form又宣告一個X,Y紀錄)
這其實也是多此一舉
只要確定選項在遊戲進行時不會被改掉
直接去抓別的Form的物件的變數不就好了?
另外就是翻牌失敗牌面會暫留後翻回去
這段我以前竟然看到有人用Timer來寫
不用這麼麻煩啦,直接用Thread.Sleep暫停畫面就好了
(缺點是快速連按時會有lag的感覺)
還有一些很基本的方法
像是用AndAlso跟OrElse來取代And跟Or
這種我就不說了(我還是說了嘛)
以寫視窗程式來說,VB絕對比知名的C,C++,Java還好用
只要靠著拉物件跟口語化的程式語法
絕對可以讓寫程式變成一種樂趣
大家也來寫視窗程設吧~
----
本日分享歌曲 AiM - 誰より

蕭雲 發表在 痞客邦 留言(32) 人氣()


第五篇筆記竟然拖了一個禮拜啊...
不過這也是沒辦法的,最近比牛仔還要忙啊
為了學校事務已經很久沒辦法好好的睡一覺了
◎第四次筆記已經更新某些錯誤的部份
如mount或vim的指令輸入方法
《關於上課用書》
Google圖書搜尋中有"Beginning Linux Programming"這本書的預覽
但並不是所有內容都可見
其實這本書的電子書網路上要找到太容易了...
《第三章 看linux的檔案跟目錄並用程式操控他》
我很努力做筆記了,不過由於上課就是這麼零散,我也沒辦法
‧在Linux每一個指令都是一個檔案
最常用的是open, close, read, write, ioctl
‧cp ../hello.c . - 複製上一層的hello.c檔案到此處
‧輸入ll -i,前面會顯示inode號碼,每個block有一個號碼
 
‧補充一下ls的其他幾個參數
ll -k - 檔案大小以kb表示(參見下圖)
ll -m - 變成人類容易看的大小表示
ll -R - 路徑要不要recursive
 
‧輸入指令bc,可以寫程式(例如費式數列)
但老師講太快所以沒抄到什麼
詳情還是請參考man bc吧
《link 捷徑》
‧ln hello.c aa - 產生捷徑aa指到hello.c
‧ln -s hello.c bb - 產生捷徑bb指到hello.c
以上兩個指令的結果其實相同
唯一差別在aa的inode是相同的,稱為hard-link
bb的inode不同,稱為symbolic-link
聽說hard-link只能在同一層?
權限的第一個字是l代表為捷徑
《補充:權限的第一個字》
d - 目錄
c - char device
b - block device
s - socket
p - fifo
權限後面有個1,2等字樣,那是代表有多少檔案連到他
輸入rm aa把捷徑aa砍掉,count就會減少一
輸入rm hello.c;cat bb(註:有分號代表分開的兩行指令)
由於原檔案已經不在了,所以bb就找不到了
 
‧回到最上層的方法
1. cd
2. cd~
‧/dev/console
‧/dev/tty  終端機
是個alias,控制鍵盤或螢幕
ex. ls -R | more
 
‧/dev/null
是個黑洞,東西丟進去就不見了
當訊息不想干擾使用者時可用
‧產生空檔案的指令
1. touch cc
2. cp /dev/null dd - 把什麼都沒有的東西複製到dd
‧dd if=/dev/zero of=file300M bs=1k count=300k
可以產生一個300mb的檔案(似乎要有管理者權限)
‧觀看裡面的內容
ll file300M
xxd -g1 file300M | head
可以看到裡面每一個都是0
 
‧空的檔案可以使用mount指令模擬
但這部分我幾乎都沒抄到=__=
‧system call - 系統呼叫
‧device driver - 驅動程式
先用cd /lib/modules進入驅動程式目錄後
輸入lsmod可看到它載入了多少驅動程式
可以把不重要的驅動程式關閉讓他執行效能加快
例如fan是風扇,但現在是虛擬系統,不需要這種東西
輸入 lsmod | grep fan 找尋風扇那一行
輸入 rmmod fan 再去看,風扇已經不見了,少了4k
除了fan(風扇)外還有battery(電池)、floppy(軟碟機)等東西都不需要
自己微調需要載入的驅動程式可以加快電腦開啟速度
 
‧ioctl - 送特殊訊息給特殊應用程式
例如送風扇轉速電壓等,跟硬體有關
‧每次呼叫system call效率會很低
用library function,有buffer會比較快
‧用man查詢資料的編號
man 2 read
2可以省略,因為read只有一個
man 3 printf
3不能省略,因為printf有很多個
‧low-level file access
《程式指令》
◇write
打開chapter03的simple_write.c
我們來把程式碼作點修改以符合我們的需求
請記得改完後要存檔並且編譯
 
write的第一個參數,1為標準輸出,2為錯誤
第二個參數是文字,最後一個參數為總共要顯示幾個字元
像是我們在第二個參數後面加了字,但是第三個參數沒變
所以超過21個字元後的字會被截掉
要完整顯現的話,將第三個參數從21改成27即可
顯示完後會回傳顯示多少字的值
由於21不等於18,所以會接著印下面的錯誤訊息
再來嘗試一下將資料輸出到檔案會顯示什麼樣的結果
./simple_write >out
cat out
./simple_write 2> err
cat err
./simple_write >& both
cat both
 
◇read
read如果回傳值為-1代表有錯誤
每次執行simple_read都要輸入指令好麻煩
如果指令下這樣 echo hello there | ./simple_read
就會自動把hello there字樣傳到simple_read
./simple_read < draft1.txt
結果simple_read只能讀前半部的資料
後半部就完全讀不出來,為何呢?
因為draft1.txt有713 bytes
但simple_read的buffer只有128 bytes
 
◇open
umask
>0022
touch u0022
umask 002
umask
>0002
touch u002
ll
發現u0022的權限會比較少
這段程式碼的意思之後再來補充
open的權限設定請看man的說明
 
◇close
int close(int fildes);
《比較檔案差異》
diff copy_system.c copy_block.c
這兩個程式的差別在一個用byte一個用block輸出
 
‧來測試一下這兩個程式範例的不同處
用前面的語法產生一個1M檔案叫file.in

蕭雲 發表在 痞客邦 留言(1) 人氣()

雖然我知道這種東西大家都已經很清楚了...
但因為我是最近才知道的,就讓我野人獻曝一下吧^^"
大家都知道,CSS是一個用來設定網頁中文字或排版的程式語言
卻很少人知道,CSS也會影響到網頁開啟的速度
因為要載入一個網頁,必須先載入其CSS
當CSS檔有太多贅碼的時候,網頁就開啟就比別人慢
所幸,現在網路上多的是幫你的CSS減肥的工具
趕快拿起你的CSS,到以下網站吧幫它瘦身吧
注意:由於減肥過的CSS,排版會變的很不易讀
請務必先用記事本將原本的CSS檔案儲存起來!
不然到時想要修改就無從下手了
1. Clean CSS
載入方式:文字、網址
優化選項:有
減肥內容:有
減肥大小:有
2. CSS Drive Gallery
載入方式:只有文字
優化選項:有
減肥內容:無
減肥大小:有
3. Online CSS Optimizer
載入方式:文字、網址
優化選項:無
減肥內容:無
減肥大小:無
以上三個網站都有CSS優化功能
也許你會想怎麼大家都會作這種功能
其實...他們都是從CSSTidy這個開放原始碼的軟體下去改的@_@"
撇開那些載入方式等等的不談,到底哪個優化的最好呢?
首先,我用的是我目前所使用的小青蛙樣式CSS(作者s9me7617)
順便一提,這並不是原始的檔案
我有修改過像是迴響部份、版主回覆部份、頁碼部分等小東西
然後對以上三個網站使用"預設選項"來優化,看看結果
原始檔案:17.8 KB
Clean CSS:10.5 KB (-0.41%)
CSS Drive:11.5 KB (-0.35%)
CSS Optimizer:9.77 KB (-0.45%)
看起來好像是最後一個比較好
但會這樣的原因是因為CSS Optimizer沒有任何調節選項
換句話說他用的是別的網站壓縮率最高的選項,理所當然壓的比較低
而且看完他壓出來的成果...全部擠在一起了=__=||
好啦,反正我們有留原始檔備份,這樣也沒關係
我個人還是比較推薦Clean CSS的優化工具
因為他們有個Compression選項,能自由選擇要壓縮的程度
你不用了解那些代碼代表什麼意思,就能做出高度壓縮
還有,他會顯示它做過什麼壓縮動作
這對不喜歡黑箱作業的人也很有吸引力
那...平平是肝藥...不是
平平是CSS,你知道為什麼可以壓到這麼多嗎?
其實CSS是有很多縮寫特性的
比方說"0px"可以寫成"0"
還有empty selector是可以刪掉的(作者保留是為了將來修改方便)
還有#008800這種色碼可以縮寫成#080
更狠的,還可以把所有程式不分行串成一條線
只要中間有間隔,CSS還是可以正常讀取(跟C語言一樣)
減肥完後,將CSS檔覆蓋回去,來試試網頁速度有沒有變快吧
----
本日分享歌曲 GARNET CROW - 夢のひとつ
這也是殺手13的ED2

蕭雲 發表在 痞客邦 留言(4) 人氣()


 
這個益智遊戲的玩法頗為特別
每一關他會用一條線的方式由上而下顯示一個字或圖形
必須答出他隱藏的是什麼字才行
遊戲網頁
舉例來說,第一關開始左邊會出現一個小橫線
到最後會變成大橫線
這樣的字你會想到什麼呢?沒錯,就是L
所以在下方輸入L再按Enter即可過關
注意:使用PCMAN遊玩的話,Enter鍵會失效以致無法過關
   請改用IE或是Firefox遊玩
遊戲總共有100關,前50關都是鍵盤上的英文、符號、數字、形狀等等
不全然都是輸入英文字
比方說第11關的答案就是SQUARE (正方形)
有時還會有數學符號出來(例如π跟√)
所以思考必須很活才能答出所有的題
51關以後都是圖形,而且都很難想
像是LOCK(鎖)、BOWLING BALL(保齡球)等等
不可能用猜的,必須靠超群的想像力才有可能破關了
過了50關後,遊戲也會開啟Random Attack跟Limited View模式
Random Attack會隨機抽出前50關的問題
遊戲開始只有20秒鐘,每答對一題可以增加3秒時間
看你能夠在有限時間內能答對幾題
Limited View中,圖形只會秀出一次
上方有個Views Left,一開始有10點
當答錯或再看一次Views Left就會減1,當減到0以下就結束
過了100關以後會開啟Extreme Random Attack跟Extreme Limited View
關卡為51~100關的內容,玩法不變
 
總之,這是一款非常考驗你的想像力的遊戲
如果你真的破不了關......其實網路上也有解答啦
真的過不了再看吧,不然遊戲就沒有趣味了
當你想破了頭,最後豁然開朗的時候,那種成就感是很棒的
這就是益智遊戲的有趣之處吧
照慣例來介紹Kongregate的挑戰項目
這個Flash遊戲網還蠻不錯的,各種類型的遊戲都有
限時挑戰:過20關(得到卡片 Flash Powder)
又是武術家的裝備,效果是被中斷時有40%的機率不會受到傷害
不過老實說,武術家的裝備其實都蠻沒用的...
easy:過10關(5點)
normal:過50關(15點)
hard:過100關(30點)
hard:在Extreme Random Attack答對20題以上(30點)
前三個項目一點難度都沒有,因為都有解答了= ="
最後一項就要憑實力了(還有英文能力)
如果沒辦法看完第一次就寫答案的話,20秒絕對不夠用吧

蕭雲 發表在 痞客邦 留言(0) 人氣()


 
今天介紹一款動作遊戲 Death Dice Overdose (死亡骰子 迷幻藥)
操作很簡單,左右鍵移動,向上鍵跳躍
遊戲的目的在於閃過天上無數掉落下來的骰子
閃越多越高分,就這樣而已
但可別以為這個遊戲就很簡單
因為主角只有一條命,砸到就Game over
對於不熟悉動作遊戲的人來說,恐怕沒幾分鐘就被砸死了
遊戲網頁
 
如果只是單純的閃骰子,遊戲就太平淡無味了
這遊戲除了一般的骰子之外,還有黑色的「死亡骰子」
骰子落地後會隨機出現一個符號,代表會有什麼樣的效果
不過大多都是壞效果比較多
我看過的效果只有以下幾種
1. 火的符號 - 會爆炸,不離遠一點的話就會被炸傷
2. 向右符號 - 機槍掃射(?),跳躍起來躲避
3. 圈圈符號 - 龍捲風,碰到不會死
4. 榴彈符號 - 刺球,會朝你砸過來,有點難躲
5. 向上符號 - 好像是可以跳比較高???
6. 藥丸符號 - 產生四顆迷幻藥
 
右下角有一個白條,代表目前的「驚嚇指數」,會一直往右偏移
當往右到底時就會驚訝過度而死(Game Over)
要減少驚訝指數就要去吃畫面上出現的迷幻藥
不過當吃太多迷幻藥時就會開始產生幻覺@__@"
後面的佈景會變的很歡樂,站牌動來動去等等
迷幻模式跟一般差別只有骰子會比較大顆而已
會推薦這個小遊戲的原因,或許就是那可愛的迷幻藥畫面吸引到我了吧
 
遊戲的記分方式,普通骰子落地得10分,死亡骰子落地得50分
迷幻藥期間每一段時間會增加5分
雖然看起來分數很少,但後期一次都落下將近十顆骰子
所以賺分的速度還是很快的
順便一提,這個遊戲當骰子一多運算量會很大
如果電腦速度不快的話,建議在標題畫面
把Quality(品質)調成Low,玩起來會比較流暢
這也是玩Flash遊戲的基本常識
大致就這樣了,希望各位玩完後能感到放鬆心情^^
 

蕭雲 發表在 痞客邦 留言(3) 人氣()


這禮拜的第四堂課真的是超--展開
一口氣補回落後的進度,上完第二章跟第三章前半
所以這次的筆記量也是目前以來最多的
不過抓圖量並沒有比第一次多(因為有不少是不用抓圖的知識)
前幾次的筆記我知道某些地方有遺漏跟小錯誤
不過因為最近真的很忙...所以也沒時間回去修改
我會在期中考之前把前面的筆記問題給補完的
‧取得7zip的方式:在終端機上輸入apt-get install p7zip-full
‧Linux的快速鍵:複製 Ctrl+Insert、貼上 Shift+Insert
(真搞不懂為什麼要這樣設定,隔這麼遠很難按耶)
《Shell Program》
提供一個電腦跟人之間溝通的角色,負責把指令給適當的人去執行
Shell的程式稱為Shell Script
Windows也有類似的東西叫做Batch(批次檔)
‧$ - 輸入符號
 
‧| - 管線 (Pipline)
指令後面加上管線的話,執行的東西不會跑到螢幕上
而是傳給下一個指令(類似賽跑接棒)
ex. ls -al | more - 顯示所有隱藏檔並傳給more
‧more每顯示到一定行數就會停下來
按h能看說明,知道哪些按鍵可以使用,如空白鍵代表下一頁
 
‧總之,shell是介於你跟linux系統溝通的介面,允許你輸入指令給系統
目前的標準稱作bash
‧觀看bash版本,請輸入/bin/bash --version
兩個 - (dash)稱為long option
當然,bash版本越新越好
像下圖是連到學校伺服器來查看,就知道學校都用舊東西
 
‧輸入cat /etc/shells,來看你共有多少個shell
 
《ssh - Secure Shell》
這時不知為何老師又連到學校伺服器教學了= ="
輸入ssh -l 你的帳號 sun.cis.scu.edu.tw 進行連線
‧ssh指令通過port 22,有經過加密,就算訊息被截取也不怕被讀出來
Windows下最好的連線軟體是PieTTY,是自由軟體
‧輸入w能看線上有幾個同學(請參考上兩張的bash版本圖)
‧tcsh跟C語言很像,理論上可以改
但輸入cat /etc/shells後發現,要改的話權限不夠
‧grep 94b30 /etc/passwd - grep指令可以找尋有94b30的字串
《File Descriptor》
是一種代號,從0~65536
‧使用時會有三個會開啟
0 - 標準輸入(預設鍵盤)
1 - 標準輸出(預設螢幕)
2 - 標準錯誤(預設螢幕)
‧> - 把結果存到後面的檔案
>> - 把結果附加到後面的檔案(沒有該檔就產生新的)
ex. ls -l > aa - 將檔案列表存到檔案aa
ex. ps >> aa - 將process命令附加到檔案aa
 
ex. date > aa - 將目前時間存到檔案aa
ex. w >> aa - 將所有使用者的資訊附加到檔案aa
ex. df > aa - (disk printf) 檢查文件系統的磁碟空間佔用情況
‧MSDOS也有>這種指令
《ps - Process》
‧ps aux | more - 看所有正在執行的process
 
‧ps aux | grep vim - 找有vim名稱的process
 
‧我們可以送訊號給process
輸入kill -l 觀看所有訊號的意思
 
‧輸入man 7 signal 可以看說明
《Kill之關閉程式》
1. 開啟第二個分頁,輸入vim開啟程式
2. 跳回第一個分頁,輸入ps aux | grep vim查看vim的process代碼
3. 發現vim的process代碼為5310(每個人皆不同,不要直接照抄喔)
4. 前面可知signal的kill代碼為9
5. 輸入kill -9 5310,再跳回第二分頁,就會看到太陽公公...不是
是終端機符號出來了
 
‧kill -HUP 1234 > bb - 關閉代號1234的process並將結果輸入到bb檔案
當然1234是亂打的,不會這麼剛好開到這個process的
可是你會很神奇的發現螢幕上竟然還是出現訊息了
不是會輸入到bb檔案嗎?
回去看bb檔案,竟然是空的!?
原來我們輸入到檔案bb的只有正確訊息
要是出現錯誤的話,他會直接秀在螢幕上
所以請改輸入kill -HUP 1234 2> bb
錯誤訊息就會導向到bb上了
ex. kill -1 1234 >killouterr.txt 2>&1 - 將正確與錯誤訊息都導向到bb
ex. kill -1 1234 >/dev/null 2>&1 - 將訊息導向到dev/null,訊息不會被看到
《>的進階運用》
先隨便產生一個檔案,取名叫animal
mouse
ox
tiger
rabbit
dragon
snake
horse
goat
monkey
chicken
dog
pig
‧sort < animal > sorted - 將animal檔案讀進來sort之後輸入到sorted檔案
如下圖可以發現檔案已經被排序好了
 
‧使用vim排序文字檔
請先按下冒號:進入指令輸入模式
輸入%!sort - 排序每行內容
輸入q! - 離開程式
‧> 輸出導向,取名很麻煩
假設今天你打了一個驚天地泣鬼神的程式,取名叫test
去上廁所的途中,有人來用你電腦來測試老師教的輸出導向
輸入date > test等指令
你的心血就變成時間了...
所以一般都會使用set noclobber把輸出導向關起來
(不過我在家裡測試,> 仍然可用,不知原因在哪)
‧> 輸出導向,暫存檔很多
ps aux > psout.txt
sort < psout.txt > pssorted.txt
less pssorted.txt
總共會產生psout.txt, pssorted.txt兩個暫存檔
有沒有辦法寫的簡單一點又沒暫存檔呢?有
ex. ps aux | sort | less - 效果跟上面三行一樣
ex. cat animal | sort | cat -n | less
將前面的animal檔案排序加行號再用less方式顯示
 
‧以下部份因老師操作太快沒有抄到,不知道作用為何
nroff -man man.1 > man
column man | less
gzip -d -c /usr/share/man/man7/man.7.gz nroff -man | column | less
《又回到Shell Program》
‧shell的大括號{}代表兩個元素選一個(?)
‧#!不僅是註解,而是由後面指的程式檔來解譯他
‧執行shell script的方法有三
1. chmod +x 檔名 - 更改權限(老梗了)
chmod +x * - 改變所有檔案都可執行
 
2. PATH=$PATH:.
3. 輸入以下指令(假設檔名為first,請先換到root身分)
cp first /usr/local/bin
chown root /usr/local/bin/first
chgrp root /usr/local/bin/first
chmod 755 /usr/local/bin/first
chmod u=rwx,go=rx /usr/local/bin/first
不要問我為什麼這樣可以,我也不知道="=
‧Quote - 變數
要觀看變數內容,前面需加$
‧"$變數" -  顯示變數內容
 '$變數' - 顯示變數名稱
請參考下圖即可了解
 
‧管線後的閱讀方式有三
set | more
set | less - 雖叫less可是比more好
set | most - 可上下跳轉更好用
~接下來都是script文法教學,請自行回去看講義~
《兩個有用的Commands》
find - 尋找特定指令
find [path] [options] [tests] [actions]
‧find / -name '*.c' - 找尋C語言檔案
如果想中途停止找尋請按Ctrl+C
 
‧find /usr/src -name '*.c' -print -exec rm '{}\;'
去/usr/src目錄找副檔名.c就全部執行rm刪除掉
但因為老師忘記語法,所以以上的指令是無法執行的,請安心
‧find / -name inter* - 找inter開頭的所有檔案
 
grep - 比find強大的指令
grep [options] PATTERN [FILES]
‧grep -i hello * - 找尋所有目錄中含有hello字串的檔案
-i - 不分大小寫
-n - 加上行號
‧Regular Expressions(正規運算式)
這部份請自行回去查閱
‧grep -n d.n * - 找內含dXn的檔案(如底下就是找到addon)
 
===
ch 3  檔案跟目錄怎麼去使用他們
===
標題無誤(爆
《mount》
‧mount /media/cdrom0 - 掛載目錄到光碟機
‧umount /media/cdrom0 - 停止掛載
‧mount /dev/scd0 testmount/ - 掛載到testmount目錄下
請記得要先把Virtual Box的光碟機打開
因為我平常都是關掉狀態,所以之前才會失敗="=
《write》
write指令很重要,請用man 2 write 觀看說明
ex. write(1, "Here is some data\n", 18)
write指令最後的參數18代表的是要顯示的字數
假設把中間的字隨便增加,最後也只會顯示前18個字
《time》
‧time ./simple_write - 看程式執行時間
‧執行範例的以下三個程式,會發現效果相同但是時間差很多
所以程式的效能是很重要的
time ./copy_system
time ./copy_block
time ./copy_stdio
 
《make》
編譯底下所有檔案為執行檔
而且再次輸入只會重新編譯改過的檔案,不會從頭開始編譯
 
要是不喜歡這種方式,可以直接用CodeBlock
不需要記要什麼指令
程式在[Applications]-[開發]-[Code::Blocks IDE]
 
編譯的畫面很小,老師說可以在
[Setting]-[Environment]-[Terminal to launch console programs]
加入以下指令讓編譯畫面變大
-fn 10x20 -bg white -fg black
不過很奇怪我只要加入就會出錯或是沒反應
下次再問問同學要怎麼改吧

蕭雲 發表在 痞客邦 留言(3) 人氣()


 
趁勝追擊,再來介紹一款可愛的射擊遊戲 しっぽ猫シューティング
用Google翻譯的結果就是Tail Cat Shooting(尾巴貓射擊)
遊戲出現的敵人全都是貓,被打倒後還會喵喵叫
畫風則如圖是手繪風,雖然有點潦草但很可愛
喜歡貓的話這款小遊戲絕對不能錯過!
遊戲網頁
遊戲全程用滑鼠操控,用滑鼠移動上下左右
按一下左鍵會自動射擊,再按則停止
擊中判定點在貓的頭上,所以身體被打到是不會有事的
一開始有三條命,遊戲得分1000分時會加一條命,每5000分又會加一條命
因為生命取得太容易所以第一輪難度其實很簡單
好像沒有什麼其他好說明的,那來介紹一下遊戲的關卡吧
遊戲共有三關,以下是第一關的小BOSS
攻擊方式為貓尾巴射擊跟衝撞
只要小心突然衝過來即可
 
▲備註:我沒有玩的這麼爛,因為遊戲沒有暫停,所以抓圖時一直被擊中,下同
然後是關底的BOSS,大小貓的組合
要射出現的小貓才會造成傷害
尾巴會定時發射子彈,大貓偶爾會用噪音攻擊(?)
只要小心尾巴子彈就很容易過關
 
第二關在天空飛,中途一直出現的貓腳印有點難躲
還有要注意打破氣球出現的子彈
其他敵人...敵貓應該不難解決
關底BOSS不會發射任何子彈,只會衝撞,非常容易破關
 
第三關要注意不要靠在最左邊
因為左邊常常會出現很多敵貓,很容易不小心就碰到死掉
小BOSS也是從左邊跳到右邊出場的
BOSS身邊圍繞的貓會一直發射子彈,要小心閃躲
 
到最後時會有個如下圖的區域
要趕緊跑到右邊,不然等到門關起來的話就...
我第一次就死在這種心機的地方
 
最後關底BOSS是日本很常見用符號拼成的貓
但是...竟然不會攻擊???
直接發射子彈他就掛了=__=
然後遊戲就結束了...
才沒這麼簡單耶,竟然要開始二周目了
二周目其實就是從目前的分數跟生命再玩一次罷了
但敵貓遠比第一次難上許多
比方說很多不會攻擊的開始會發射子彈
有些貓被打倒也會有子彈射開
如果第一輪沒有保存多一點生命的話第二輪恐怕玩不完
比方說第一關關底的BOSS
除了大貓尾巴發射子彈速率增快
小貓還會發射螺旋型雷射攻擊,要非常小心才行
 
第二輪的BOSS則是只要射到BOSS身體
該處就會發射一個子彈回來
所以不可以在很近的地方射擊(因為躲不掉子彈)
第三輪的小BOSS則是多了反彈雷射的能力
遠比之前還要難躲
 
過完這些後...你以為最後BOSS還會乖乖在那給你打嗎?
出現一堆我看不懂的日文後,BOSS換人啦@@"
二周目的最終BOSS我還是沒有打贏
因為我不小心碰到他的字之後,不知為何就無法射擊了
只能呆呆躲著然後被打死
有破關的人,請告訴我一下是怎麼回事吧^^"
結論是這款射擊遊戲真是不錯的小品
不論是畫面或是音效都能放鬆神經,讓心情平靜
推薦給愛貓族使用

蕭雲 發表在 痞客邦 留言(7) 人氣()


 
今天介紹一個射擊小遊戲 彩色砲塔2(colourPod 2)
會介紹這個小遊戲的原因,除了我個人喜歡射擊遊戲外
主要是因為在台灣幾乎沒有人介紹這個遊戲,連PTT都只有一個推文
所以這次我就來毛遂自薦詳細介紹吧
遊戲網頁
這個射擊遊戲的操作要用到滑鼠跟鍵盤
玩法是用滑鼠操控中間的砲塔,按左鍵發射子彈將白色的隕石(?)消滅
其他顏色的隕石要用砲塔背後的盾給吸收(但也可以打掉)
吸收能量到一定程度就可以開始使用各種不同的效果
但不管是何種顏色的隕石,只要撞到主砲都會損血
右邊的HEALTH降到0時,遊戲也就結束了
 
▲用背後的盾來吸收彩色的隕石能量
當你看到白色的隕石中間呈現空心時,代表他在另一維度
這時怎麼射他都射不到,要按空白鍵切換維度
因為隕石的維度常常不同,所以請把手放在空白鍵隨時切換
旁邊的MULTIPLIER是分數加乘(如顯示4就是得到分數乘4倍)
擊毀隕石或吸收彩色隕石就能增加
但受傷的話一次就會扣1
所以想高分的話盡量不要受到傷害
統整一下鍵盤的操作方式
空白鍵:切換維度 P:暫停 M:靜音
EASDZXC:發動特殊效果(必須先取得才行)
 
▲右上角那個隕石即為不同維度的
彩色的隕石共有九種顏色,每一種都有特殊能力
能力必須吸收到等級1才開始有作用
升級不外乎就是減少等待時間,加強效果跟持續時間
畫面三角形的中間為等級、內部為吸收的能量、外圍是等待時間
如果快被敵人圍攻的話不用省特殊能力,直接用
因為特殊能力是會自動補充的
就算都不使用,他也不會能發射比較多次
以下分別介紹這九種的特殊能力
後面的英文代表要按什麼鍵才能發動(除了橘跟紅外都是手動發動)
橘色(Auto):就是主砲,升級能加快Reload速度
建議優先選擇這種顏色,因為敵人多的時候需要快速的射擊
Reload時間長的話很容易來不及攻擊
建議升級到滿
 
黃色(E):雷射砲,請按住不放攻擊
(我第一次玩的時候很白痴的一下下按,根本沒殺傷力@_@")
能夠很快的清除隕石,不過容易把彩色隕石一起打掉
可以升個2~3級玩玩
紅色(Auto):一段時間後自動補血,等級一時回5HP,等級二回8HP
前期還蠻雞肋的(因為很難損血),後期HP少時就比較有用了
如果你覺得你很會玩不會被打到的話升個一級慢慢補就好
 
藍色(A):緩慢畫面上所有隕石
這個效果非常好,快被打到時能用這個效果慢慢清除畫面上所有隕石
不過不用點太高,因為點太高的話清除隕石後還要慢慢等持續時間結束
升到4~5級就好
青色(S):召喚小砲塔,小砲塔能打到另一維度的東西
但可能是等級太低的緣故,他很久才發射一次子彈
老實說有點雞肋,升一級玩玩就好
 
▲藍色為緩慢效果,青色是很少攻擊的小砲塔
綠色(D):吸收盾變成360度
不用一直轉角度吸收彩色隕石,可以專心打白色隕石
但後期都是白色隕石居多,很少有吸收隕石到手忙腳亂的情況
升個一級玩玩就好
粉紅色(C):可以移動砲塔,按下TGFH來操控
但是第一是移動範圍太小,第二是手光按空白鍵跟效果鍵就很吃力了
哪有時間多按TGFH啊
我因為這個效果的關係反而手忙腳亂受到50HP傷害,千萬不要點
 
藍紫色(Z):消滅畫面上所有白色隕石(不同維度亦可)
這個效果實在是太暴力了,不僅可以解除危機
還不會把彩色隕石一起消滅,而且等待時間又很短
當出現時絕對要先把它升級到滿
 
紫色(X):一段時間無敵
這段時間被隕石K到通通不會損血,但時間消失的話就...
效果還算一般囉,看你斟酌點個1~2級吧
中期開始會出現八角型的顏色決定器(?)
吸收或打掉後會決定接下來出現的彩色隕石顏色
以中間的顏色為準,按空白鍵切換中間顏色
當然建議是吸收,因為它也能增加能量
 
前期敵人只有圓形隕石
到後來會開始有X字型隕石(旋轉前進)、長方形隕石(會一直變換維度)
正方形隕石(一段時間會消失從另一邊出現)、星型隕石(旋轉幅度更大)
連體隕石(被打到後會分離三個小隕石)
而且一次會出來很多,被圍攻的話記得要用Z的全體攻擊消滅
敵人到後期皮會越來越厚,必須打2~3次才能消滅,要注意
 
後期開始會出現移動砲塔的敵人,會不斷發射圓形隕石來攻擊
而且必須要打4~5次才能擊破
不趕緊消滅的話很容易陷入困境
遊戲是有BOSS的,這最後的BOSS竟然是跟自己一樣的砲塔???
而且打完一個後還會出現兩個
要是打到他的吸收盾的話,會加快他的發射隕石速度
但其實不難打,只要用萬惡的緩速效果一下就結束了...
 
對了,不用擔心遊戲死掉就要重玩
死掉可以將分數減半後繼續接該關玩
而且所有蒐集的能量都不會減少喔(但等待時間會歸零)
遊戲有24個小任務,要達成一些特定條件
如得到XX點的分數、某某顏色要升到X級等等
不過除了能看到Hint外好像沒什麼實用性?
而且這24個任務不可能一次遊玩就達成,不必浪費時間一直玩啦
 
最後一樣來介紹Kongregate上的挑戰項目
當然必須要在註冊登入且連線的情況下才能取得
順便一提,官網首頁每個禮拜都有新卡片的取得資訊喔
限時挑戰:得到1000分(得到卡片 Marquis Le Morte)
沒玩過吸血鬼,不知道這張卡好不好用
easy:擊破100個隕石(5點)
medium:得到2000分(15點)
hard:multiplier達到10倍(30點)
impossible:完成24個任務(60點)
前兩個很簡單,第三個小心點就可達到
但第四個真的是完全的浪費時間
與其花時間賺那60點還不如拉四個人來Kongregate
 
▲附上破關的分數給大家參考

蕭雲 發表在 痞客邦 留言(0) 人氣()


這是Wii的Wario Land: Shake It在YouTube上的廣告
第一次看真的蠻有震撼力的,創意滿點
點我觀看(一進去會自動播放,如果你的網路速度不夠快的話
建議先暫停一下再開始播放,效果會比較流暢)
官方網站
看完後覺得真的很有創意
尤其是看到錢灑出來我整個呆住了
而且播完後下方的欄位還可以任意拖曳喔
這是我今年看到最棒的廣告了
好奇的人應該會問這是怎麼做的
其實按右鍵就知道答案啦,影片包括旁邊的欄位全都是Flash
而且Related Video的連結還真的可以按耶
不過回應跟捲軸就是假的
順便一提,前天Google終於更新了PageRank了
我從以前的PR 2升到PR 5耶 (*^▽^)/‧★*"`'*-.,_,.-*'`"*-.,_☆,.-*`'`*-.,_,
雖然跟很多人相比不算什麼,但還是很高興
因為個人部落格要升到4或5其實不太容易
就連每天有萬人觀看的彎彎,PR值都只有5了
我這個純粹為了興趣而寫的部落格能衝到5,對我來說是一個肯定了
在此感謝大家的支持
你的部落格的PageRank有多少呢?
快用Page Rank Checker看看吧
延伸閱讀:PageRank的詳細說明

蕭雲 發表在 痞客邦 留言(4) 人氣()

昨天高中同學跑來我的網誌鬧(請參考此篇回應)
只因為我不喜歡他常常過來跟我吵一些無意義的東西所以把他封鎖
不過他一直堅持我敵不過他的言論
既然最近流行MSN爆料,那我就把雙方最後一次談話PO上網誌
不管是認識我的同學或是路過的網友
請各位看完後,花個一分鐘留下迴響,講講看誰比較有理吧
反正他這麼喜歡投票跟問大家意見,那就趁這個機會來問問大眾吧
以下對話保證一刀未剪
小綠是我,洪毓翔是高中同學
(既然他都說對自己言論完全負責了,我想也不用隱藏了)
洪毓翔:為什麼你不去小吃店吃飯了
小 綠:因為今天我覺得那家店的態度很差
洪毓翔:那也別一竿子打翻所有船
小 綠:反正我平常在外吃飯的機會也不多
洪毓翔:看的出來你多宅
小 綠:這樣就叫宅喔?你真會誤用
小 綠:因為我學校離我家很近所以我都回家吃的

洪毓翔:誤用?
洪毓翔:定義是你定的?
洪毓翔:沒這個道理吧 妳的邏輯有沒有正確? 你是神?
小 綠:當然不是我定的
小 綠:但是你就是用錯了啊

洪毓翔:那你有什麼憑據說我是錯的?
小 綠:本來就有正確用法啊
洪毓翔:那請問你哪來的尺?
洪毓翔:我有我的說法
洪毓翔:你憑什麼說我是錯的?
小 綠:不然你也可以說所有成語都不是我定的
小 綠:所以你怎麼曲解成語我都不能說你錯

洪毓翔:這就好像楊惠如說要去抗議中國台北被趕回來一樣在那你嘴硬
洪毓翔:沒辦法 你被我說宅 就開始腦修說我說錯了
洪毓翔:別哭
小 綠:無聊
洪毓翔:阿宅
小 綠:你要怎麼說就怎麼說吧
洪毓翔:那你拿出證據說你不宅
洪毓翔:別在那裡嘴砲一大堆
小 綠:你先拿出證據說我宅吧
洪毓翔:公道自在人心
小 綠:你指控我宅還要我自己拿證據說我不宅喔?
洪毓翔:要不要去投票?
小 綠:投什麼票?
洪毓翔:看看大家的意見?
洪毓翔:看你宅不宅
小 綠:隨便你,我沒興趣
小 綠:我跟高中同學都很少聯絡了

洪毓翔:我高興 甘你屁事
洪毓翔:對阿 宅到足不出戶
小 綠:你怎知我足不出戶?
洪毓翔:YOU (宅)
洪毓翔:還是要問蘇紹業也可以
洪毓翔:我不反對
小 綠:反正你說我宅也是你自己定義的宅
小 綠:並不是原始的意思

洪毓翔:井底之蛙
小 綠:那你知道宅的意思嗎?
洪毓翔:在我的眼裡看來不過都是你的逞辯
洪毓翔:藉口省起來吧 不是小角色可以用的
小 綠:你高興就好
洪毓翔:我好高興
洪毓翔:你好強 超強 定義宅的意思 超猛
洪毓翔:超強
洪毓翔:太強了
洪毓翔:要不要頒個獎盃給你?
洪毓翔:太猛了
洪毓翔:超橋
小 綠:我沒有定義啊
洪毓翔:好強
洪毓翔:超強
洪毓翔:實在是太強了
小 綠:這種東西本來就有個正確解釋
小 綠:你不要隨便就套個宅字在別人身上

洪毓翔:那你慢慢在旁邊劃圈圈吧 我沒那空閑了
洪毓翔:掰
小 綠:掰
洪毓翔:阿宅 掰掰
宅的原意指的是對某些事物很熱衷且了解的人
(如愛好籃球可以叫籃球宅,愛好軍事也有軍事宅這種稱呼)
這字傳到台灣卻一直被曲解其意,廣義成喜好ACG就叫做宅
後來經過報紙跟電視節目等媒體持續醜化跟曲解
變成看看漫畫就是宅,沒女朋友也是宅,會上網也是宅
足不出戶更可以進化成為「死宅男」
………但我第一次聽到因為我不喜歡吃外食而被說是宅男的
在以前,你必須懂非常非常多才能自稱為宅
但現在,就算你什麼都不作甚至做了防護措施都會被別人稱為宅
如果你家距離學校只需步行六分鐘,中午還可以回家吃飯的話
小心,你已經被某人定義為宅了(笑)
維基百科:御宅族、宅男

蕭雲 發表在 痞客邦 留言(20) 人氣()


這個禮拜的筆記比往常晚了一天來寫,因為這次上課其實有點爭議
我覺得老師上課比以往快,內容比較雜
但也有同學覺得他跟以前「UNIX系統管理」來比算教的很慢了
不管如何,這次筆記我抄的比前兩次更亂
所以我這次把同類別的內容稍微做了整理,跟老師上課順序會有點不同
《終端機使用指南》
‧快速鍵 alt+1,2,3切換分頁,F11全螢幕
‧Ctrl+U - 清除輸入的指令(不用BackSpace狂按了)
‧cd - change directory 改變目錄指令(跟MSDOS相同)
‧file - 觀看目錄下檔案的類型
舉例來說,輸入cd /bin進入bin目錄(路徑前加/代表是目錄最底層)
再輸入file *就能觀看目錄底下所有檔案的類型
 
範例二,輸入cd /sbin進入sbin目錄(sbin=system binary)
輸入file * | most 能以分頁方式觀看
輸入file * | grep -i script 只顯示script類型的檔案
 
‧連到系上電腦請用ssh指令
ssh -l 帳號 sun.cis.scu.edu.tw
再輸入密碼(身分證字號)即可登入
觀看信件似乎是老師才有的權限
 
‧觀看操作的歷史紀錄,請輸入history
 
‧ls -lR /usr/include/ - 觀看目錄底下所有檔案
‧ls -lR /usr/include/ | wc - 顯示檔案總數??
 
‧cd /usr/include/
grep -n EXIT * - 找尋該目錄底下內容包含EXIT字串的檔案
grep -i EXIT * - 跟上面一樣,但關鍵字不分大小寫
《用7zip解壓縮檔案》
老師做的Xubuntu中含了書本教學檔
我們來用很醜的免費的開放式壓縮軟體7zip來解壓縮
不懂解壓縮語法的話,請輸入7z --help | most觀看說明
從說明會看到x: eXtract files with full paths,就決定是它了
7z x 檔名 - 解壓縮檔案到此處
終端機有個好用的功能,打檔名時只要打第一個字再按Tab
就會幫你打入後面的檔名了
如檔名為linux-up-4th-code.7z,只需打入l再按Tab即可填完後面的字
 
直接輸入cd按Enter會回到根目錄
再輸入ls -lR | most可以檢查檔案是不是解壓縮完成了
R代表檢視包含子目錄的檔案
《Linux文字編輯器》
1. vim, gvim - 老師愛用
2. xemacs - 美國都在用
3. scite - 學生適合用
4. gedit - 學生適合用
5. codeblocks
vim為純指令式編輯軟體,gvim則加了視窗介面
我應該會用4或5寫吧...
《Linux程式相關》
Linux程式分為以下兩類
1. executables - 各種程式語言,需經過編譯,如C、JAVA
2. scripts - 都是文字的形式,沒有經過編譯,如shell script
因為老師的xubuntu把hello.c給註解掉了
請先輸入gedit hello.c
直接用gedit開啟檔案消掉註解
再用gcc -o hello hello.c編譯成執行檔
輸入ls會看到hello*,後面的*代表可以執行的意思
有上前兩次課就知道,直接打hello會無法執行
正確的打法應該為./hello
 
為什麼咧?為什麼咧?
原來前面不加路徑的話他會去搜尋$PATH所記錄的所有地點
看看有沒有相符的指令,但是並沒有,所以就顯示錯誤了
《PATH全記錄》
輸入echo $PATH能看到目前系統紀錄的所有PATH
正常情況應該會顯示這樣
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
冒號:的意思是分隔兩個路徑
也就是說,輸入hello後他會去找上方七個路徑
假如有兩個路徑都有此檔案會執行哪個呢?
答案是路徑較前面的那個
我知道你一定在想,MSDOS要執行檔案根本就不用加什麼./
Xubuntu還得加,真是太麻煩了
有沒有辦法讓它可以不要加./就能直接進行
方法當然有,但是很不建議這樣作
輸入PATH=$PATH:.
再用echo $PATH看一次,會發現最後被加了:.了
其實這段語法就跟A=A+B相同,B就是你要加上去的字串
當然,也可以改成PATH=.:$PATH
這樣就會把.:加在前面,好處是第一個就會去找原目錄,速度較快
修改過PATH後再輸入一次hello看看,是不是可以跑了呢?
 
說了這麼多,到底缺點在哪裡呢?
我們來當個駭客你就知道了
1.先產生一個測試用的目錄test,輸入mkdir test
2.打開gedit,並輸入以下字串
echo "我將整個硬碟刪除了,哈哈哈!"
rm -fr test
echo是顯示後面的字串
-f代表強迫執行(不詢問你),-r代表移除底下所有檔案
這段意思就是直接把test這個目錄移除掉
請存檔,檔名請存ls,沒錯就是ls不要懷疑
註:如果中文輸入法不對打不出字的話
請執行[Application]-[設定]-[scim輸入法設定]更改
 
3.這段程式還不能執行,請輸入chmod +x ls改變他的權限
4.輸入hash -r重新rehash一次,這段應該可不作
5.最重要的一步,輸入前面說過的PATH=.:$PATH
好了,我們來看看這樣會發生什麼事
今天有個駭客在你的根目錄下放了ls這個檔案
當你輸入ls要看目錄時,因為PATH先找了根目錄
所以就執行了ls這支程式
很好,你的test目錄就這樣消失了
 
了解了嗎?如果先去搜尋目前目錄的話
有可能執行跟系統指令相同的檔案
所以一般不會把目前目錄加到底下
剛剛修改了PATH,現在來試試還原
其實很簡單,先用echo $PATH把原來的字串複製
再用PATH=新的字串就回復了
不過這並不算是正統的回復方式
‧請輸入以下指令
AA=aaa
BB=bb
export AA(AA會傳遞下去,繼承對外公開???)
bash
ps
最後發現bash被執行了兩次??
但這代表什麼意思呢?我也不知道╮( ̄▽ ̄")╭
因為老師那時候實在是操作太~快~了~
‧輸入stty -a,能看到所有terminal line設定
這是啥我還是不知道...
 
‧最後我們來大玩特玩$PATH
AA=zzzzzzzzzzz
BB=yyyyyyyyyyyyy
PATH=$PATH:.:dsffsdnjusnhgnwer
把這群指令改這麼亂,要怎麼復原咧?
其實只要輸入一個指令exit
就能把之前輸入的東西還原了
這才是正統的回復PATH的方式
‧我們還可以更狠一點
PATH=dsjiofnodif
echo $PATH
結果連ls指令都不能下了,因為PATH被改光了
別擔心,輸入exit,又復原了
 
《Linux程式相關教學》
打開gedit,輸入以下的程式碼,存成hellosin.c
#include <stdio.h>
#include <math.h>

蕭雲 發表在 痞客邦 留言(1) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。