2019 NTUCSIE Foresight Camp
林鶴哲
2019-10-06
依據前瞻營審定課綱1081006號:
Poll
投票 歡迎來玩
What's Linux
Unix > Linux > Ubuntu
kernel:又稱「核心」
shell:又稱「殼」
application
/etc/passwd
迷之音:很前瞻啊!
「在變動世界的真實脈絡中,足以應對並求好的態度和知識。」"
好久好久的故事,是媽媽告訴我
在好深好深的夜裡,有個德田大殿神...
糊里糊塗踩著無數人,你踏進了這所有椰子樹的學校,來到德田館,卻不知這是一個如同1984裡的世界,你沒有選擇,只能聽信德田大殿神——這個世界的Big Brother,三個字母:WTF (for Write, Test, Forever) 就道盡了一切的苦痛。
你有一條生路可以走,那就是成為大殿神的小殿神,這樣子,未來的日子,會好過一點,至少你知道怎麼用工作站。
小殿神提醒:
活動當中會有各種任務讓大家有充分練習的機會,如果看到「Dian」,就表示你通過了大殿神的小試煉,已經學會如何運用這個技巧/指令!
往後開始出現的「指令」形如下:
$ command [-option] parameter1 parameter2 ...SSH
SSH (Secure Shell Portocol) 是一種安全的網路協定,提供我們遠端連線到伺服器的服務。
$ ssh [account]@[IP] #通式
$ ssh b08902000@linux1.csie.org
$ ssh b08902000@linux1.csie.ntu.edu.tw請在登入工作站後,在畫面中輸入以下指令:
yes | cp -r /home/student/07/b07902028/example . We're using bash as a shell language to communicate with kernel.
搭配 example/Dertian 食用
~ home #家目錄,登入後進入的目錄
/ root directory #根目錄,所有目錄的起源
. working directory #當前目錄
.. parent directory #上一層 ~ home
/ root directory
. working directory
.. parent directory一個檔案系統,只有一個根目錄 (/)。
一個使用者而言,只有一個家目錄。
對於一個使用者而言,~ 跟 / 不隨地而變,. 和 ..隨地而變。
絕對路徑:以 / 開頭,表示路徑從根目錄開始。
相對路徑:以 ./ (當前目錄)開頭,表示從當前目錄開始。
「路徑」預設是相對路徑,白話文:`./`可省略不寫。
pwd
ls
cd
print working directory,輸入你現在所在的目錄。
$pwd視覺
聽覺
echo method
口訣:print working directory for pwd
list, 列出本目錄(或是某指定目錄底下的檔案)
常用參數:
-a 列出包括隱藏檔(檔名開頭為一個點)的所有檔案 -l 清單格式列出,可看到檔案的目錄權限、時間戳、檔名 -t 依照最後編輯時間列出
$ ls dir #列出 ./dir 資料夾下的所有檔案
$ ls -a #清單列出當前目錄所有檔案(含隱藏檔)exercise: 找出德田館中披了隱形斗篷的教授們和他們的趣事(time permitting, feel free to ask XD)
change directory,前往指定的目錄。
$ cd ~ #(相當於`cd`,default會回到家目錄)
$ cd /home/student/08 #到/home/student/08這個目錄當中
$ cd .. #到上一層目錄
$ cd / #到根目錄exercise: 迷你殿神,星期一重修計程(R204),星期二上線代(R104),星期三在大一區混(Freshman),星期五上ML(R203),試著 trace 迷你殿神的一週吧!
搭配 example/terminal_tricks 目錄食用
按tab可以自動補足指令或目錄或檔案名稱,如果遇到多個可能的就會停在分岔點,連按兩次可以列出所有可能性。
example: happy guy, bad guy, good guy 精神分裂
作用於路徑上,可用來一次指定多個檔案或目錄;「*」代表零個或任意多個字元。例如abc.c與abbcc都符合*c,但只有前者符合*.c。
example: cat *.c
按[ctrl+c]可以終止目前的程式,如果不小心寫到TLE或RE的時候很好用。
example: wicked guy 之亂
離開當前執行的程式,ssh上工作站時,可以用這個指令來登出。
顧名思義就是清空目前畫面,不用一直按Enter,這樣很不ElitE。
example: wicked guy 之亂
複製 [ctrl+shift+C]
貼上 [ctrl+shift+V]
刪除已經打出來的指令 [ctrl+w] (one word) /
[ctrl+u] (whole line)
manual,每當從網路上或是其他人口中得知一個新指令,好慌張,不知道怎麼用,怎麼辦?man絕對是你的好幫手!
學會讀懂man也是一門藝術
Example: $man date
exercise 請印出"2019-10-06 the 279 day of 2019"
快去pheu...目錄找解藥,不然我們會死掉....
解藥是電電的東西....
/example/CSEEAcademy
CSEE和EECS,你選哪個?最好快點做決定,否則你的忠誠度,將受到最嚴格的檢驗…
$ touch file #新增file,或是更改file的時間戳$ cp file1 file2 #在當前目錄將file1另存新檔為file2
$ cp file dir/ #將file複製到某個目錄當中
$ cp dir1/ dir2/ #
$ cp -r dir1/ dir2/ #將dir1內的所有東西複製到dir2exercise: 比較看看最後兩個指令
$ mv dir1/ dir2/ :'如果dir2不存在就將dir1重新命名為dir2
否則將整個dir1移動到dir2裡面'
$ mv file dir/ #將檔案file移動到目錄dir裡面
$ mv file1 file2 #將檔案file1重新命名為file2常用參數:
-r 遞迴地(recursively)移除某個目錄以及其底下所有檔案目錄 -f 強制移除(force),系統不會一一詢問(慎用!)
$ rm file #將file移除
$ rm -f *.c #將當前目錄以.c結尾的檔案都強制移除
$ rm -rf dir/ #將dir目錄下的所有檔案移除
$ rm -rf * #將當前資料夾所有檔案移除
$ sudo rm -rf / #將根目錄整個Bang不見(不要用...)尋常程式教書匠,學做德田掃地僧。
九宜生 <<退休後,當至機房為掃地僧。>>
我們段位不夠高,當個德田清道夫足矣。
嘗試用「一個指令」把204的垃圾清一清吧
再用另一個指令把AC的code裝到AC目錄裡
Recall: UNIX是多人、多工的作業系統
$ chmod [ugoa][+-][rwx] file/dir#通式:將[人]對file/dir[增減] [某權限]
$ chmod +rw file #將全部人對file新增讀寫權
$ chmod u+x file #新增自己對file的執行權
$ chmod go-r file #移除同群組和其他人對file的讀取權$ chmod 700 dir/ #目錄權限:drwx------
$ chmod 644 file #目錄權限:-rw-r--r--數字表示法:把rwx想成二進位,其中r = 4,w = 2,x = 1,沒有該權限為0。
Advanced: ACL (access-control list)
$ chmod a+w test$ chmod ug+x test$ chmod 742 test???
700 -rwx------
711 drwx--x--x
644 -rw-r--r--
755 drwxr-xr-x
???
???
???
很強大的搜尋指令,但時間花用的很大,它支援非常多的搜尋選項,可以依照權限、擁有者、群組、檔案類型、日期與大小等條件來搜尋,需要時可呼叫man find。 常用參數: -name #指定檔名搜尋 -perm mode #搜尋檔案權限為mode的檔案 -exec command #將搜尋出的結果,使用其他指令再處理
$ find ~ –name lost #在~下搜尋lost,預設為當前目錄
$ find –perm 777 –exec chmod 755 {} +
#將權限為777的檔案都設為755$ sudo apt-get install vim #安裝vim
#apt-get是一個安裝套件的指令
$ sudo 給我錢$ sftp b08902000@linux1.csie.org
##登入之後:
$ get remote-path [local-path] #從remote-path下載到local-path
#如果是下載目錄要-r
$ put local-path [remote-path] #從local-path 上傳到remote-path
#如果是上傳目錄一樣要-r
$ exit / quit / bye #登出
$ cd / ls #移動遠端路徑/查看遠端資料Secure Copy Protocol,方便一個一個獨立上傳/下載,也可以-r上下載整個目錄。範例中的path都可以省略,省略就等同以家目錄為path,但冒號一定要留著。
$ scp file1 [file2 file3 …] b08902000@linux1.csie.org:dir
#把檔案從本地端上傳到遠端的目錄
$ scp b08902000@linux1.csie.org:~/file1 dir/
#把遠端檔案下載到本地目錄$ wget 140.112.31.208/images/02.png #玩看看!殿神不出門,能知天下事。
把在example/color上的圖片 下載下來,分類到example/color的目錄吧!
你需要:
1. 將圖片下載下來
2. 按照世俗價值觀分類圖檔,上傳到color下對應的目錄
3. 將每張按照所在目錄改名為 xx.jpg,如orange.jpg、blue.jpg。
3. 在color下輸入 ./check.sh,output會告訴你是否通過試煉。
Special Thanks: B07 徐維謙 撰寫 check.sh
故事來到一個段落,你通過了試煉(應該吧),自此,你成為了德田小殿神,至於大殿神嗎,依舊不知道究竟是何方神聖...
後面的講者應該不會那麼吵了...
To be continued...
感謝大家還沒(或已經)睡著
希望對大家來說太簡單!
Let's call it a day! (X
Take 10! (O
To be continued...