350 likes | 451 Views
Introduction to Ubuntu part2. Outline. 管理使用者和群組. 附註 : liveCD 的帳號 ubuntu, 密碼為空白. Linux 為 multi-user 的作業系統 , 代表可同時讓多個 user 登入使用 在 Linux 裡 , 除了一位系統管理者 (root) 之外 , 每個使用者都有不同的群組和權限 但是在 Ubuntu 裡預設封鎖了 root 的登入 , 所以想使用管理者的權限指令 , 必須在指令前面加上 sudo. 管理使用者. sudo. useradd. -m. 使用者的名字. sudo.
E N D
管理使用者和群組 附註:liveCD的帳號ubuntu, 密碼為空白 Linux為multi-user的作業系統, 代表可同時讓多個user登入使用 在Linux裡, 除了一位系統管理者(root)之外, 每個使用者都有不同的群組和權限 但是在Ubuntu裡預設封鎖了root的登入, 所以想使用管理者的權限指令, 必須在指令前面加上sudo
管理使用者 sudo useradd -m 使用者的名字 sudo adduser 使用者的名字 • 新增使用者:useradd和adduser • -m : 自動建立家目錄 (一定要加此選項) • -s: 指定這個使用者的shell類型 • -d: 指定這個使用者的家目錄存在哪(預設存在/home底下) • useradd指令需要自己在後面接選項來指定各種設定 • adduser指令是一種互動的介面, 會使用詢問的方式來設定使用者
管理使用者 sudo passwd 使用者的名字 sudo userdel 使用者的名字 sudo userdel -r 使用者的名字 • 更改使用者密碼 • 只輸入passwd指令就是更改自己的密碼 • 刪除使用者帳號 • 只刪除帳號, 並沒有刪除使用者的家目錄 • 不止刪除帳號, 連家目錄都會被刪除
Unix / Linux 檔案系統 根目錄: 最上層的目錄 存著目前系統執行程式的資訊, 如ps 系統管理員的個人家目錄 / bin boot dev proc home root ……. 存著系統設備檔, 如硬碟和光碟機 John Kelly Sam 存著開機的管理程式 存著一些基本指令, 如:ls,cp等 每個使用者的家目錄都在此 絕對路徑就是從根目錄開始走到目的地, ex: cd /home/John 相對路徑是根據現在的位置來決定如何走到目的地, ex: cd John (現在在/home底下)
管理群組 sudo groupadd 群組的名字 sudo adduser 使用者的名字 群組名 在Linux系統, 可將使用者分成不同群組以便管理 建立群組 將使用者加入群組
管理權限的設定 sudo adduser 使用者的名字 admin 有管理權限的使用者才能使用sudo指令 只要將使用者加入admin群組, 即可讓此使用者有管理者的權限 給使用者管理者的權限(sudo)
Linux操作介面 • 命令列操作介面並不需花時間在視窗呈現的運算上, 因此程式執行時, 能有較好的效能 • 圖形操作介面可以讓使用者更方便使用作業系統 • Linux作業系統採取命令式操作介面和視窗圖形介面兩種模式 • 常見的指令幾乎都有相對應的視窗圖形介面 • 但是站在開發者的立場, 使用命令操作介面還是比較方便
Summary Unix/Linux為一個multi-user的作業系統, 允許同時讓多個使用者登入使用 Unix/Linux的系統管理者為root, 但是Ubuntu已經封鎖root的登入 如果想要執行一些管理者才能執行的指令, 必須在指令前面加sudo 新增一個使用者的指令為useradd, 設定密碼的指令為passwd 可以將使用者分成group來管理 要讓該使用者能執行管理者指令, 必須將此使用者加入admin group
新增或刪除應用程式 • 安裝新的應用程式 • [Application(應用程式)]→[Add/Remove(添加和刪除])
進階版的安裝程式工具 • 剛剛介紹的[添加和移除應用程式 ]是個較為精簡的套件管理程式,提供初階的新增與移除功能 • 套件管理程式 • 在 Ubuntu Linux 的世界中,應用程式和函式庫的安裝執行檔經常被稱為套件 • 函式庫可想成是一堆別人寫好的function的集合, 你只要include, 就可以直接使用 • Ubuntu 官方的套件庫上有許多常用應用程式的套件,使用者可透過各種方便的「套件管理程式」輕鬆地安裝移除套件庫提供的應用程式 • 可自動處理套件的相依性,提供更加完善的管理功能
Synaptic套件管理程式 檢查目前是否有新的套件 輸入關鍵字來找尋相關的套件 [System(系統)]→[Administration管理]→[Synaptic套件管理程式]
命令列套件管理工具 sudo apt-get install program_name sudo apt-get remove program_name sudo apt-get update sudo apt-get upgrade • 指令介面套件庫管理方式 APT (Advanced Package Tool) • 需要在前面加上 sudo 以便用管理員權限來管理軟體 • 安裝軟體 • 刪除軟體 • 更新線上套件庫資訊 • 執行系統更新
命令列套件管理工具 • 手動編輯套件庫清單 • sources.list記載著存放套件的server位址 • 套件管理工具會去察看sources.list裡記載的server, 再連到此server抓取所需的套件 • 檔案在 /etc/apt/sources.list • 每次要下載套件之前, 最後先更新套件庫的資訊 • sudo apt-get update
更新sources.list • 用Firefox下載sources.list • 9.10: http://www.cs.nthu.edu.tw/~d9662828/downloads/9.10/sources.list • 9.04: http://www.cs.nthu.edu.tw/~d9662828/downloads/9.04/sources.list • 將原本的sources.list覆蓋過去 • sudo cp sources.list /etc/apt • sudo apt-get update
練習安裝軟體 • 安裝FTP軟體filezilla • sudo apt-get install filezilla • 安裝BBS軟體PCman • sudo apt-get install pcmanx-gtk2 • 中文字型亂碼問題 • 9.10 檢視->字型, 選擇文泉驛正黑or文泉驛等寬正黑 • 9.04 檢視->字型, 選擇AR PL Uming TW或AR PL Uming TW MBE
安裝輸入法 sudo apt-get install gcin im-switch -z zh_TW -s gcin 然後登出再登入就可以了gcin的設定可以從系統->偏好設定->gcin輸入法設定進入 一般要設定的就是把沒有用到的輸入法取消,請選擇內定輸入法 & 開啟/關閉,只勾選你要用的輸入法就好了 Ctrl+space用來中英文鍵盤切換 Ctrl+shift是用來切換各個不同的輸入法
Summary • 在Ubuntu裡可使用”添加和刪除應用程式”來安裝軟體 • 更進階的”套件管理工具”, 可搜尋到更多的應用程式及函庫 • 到sources.list記載的servers搜尋套件 • 安裝應用程式的指令為apt-get, 必須要加sudo才可執行
練習5 • 假設我們接下了管理CS工作站的任務, 為了迎接cs14級的到來, 我們事先幫他們都把帳號建立好 • 請寫一個script, 幫助我們可以方便地建立大量的使用者 • 此練習只需要建立10個使用者, 帳號為u9962101~u9962110 • 密碼和帳號相同
Hint • 利用useradd和passwd來建立使用者的帳號和密碼 • 建立大量的帳號密碼, 可使用while迴圈 • while迴圈裡面的條件判斷 => test指令 • 如何讓使用者帳號在while迴圈中一直加1 • ex: 建立第一個使用者u9962101, 第二個使用者u9962102, 依此類推 • 使用expr指令作變數的數值運算 • name=`expr 9962101 + 1` (`為驚嘆號左邊的按鍵,+的左右兩旁須留空白,`的左右不要空白) • name=“u$name”, 將字串連結起來
Hint 輸入輸出的部分請參考unix part2的投影片 d9962101 d9962101 • 使用passwd來建立密碼, 會詢問你要輸入什麼密碼, 並且會讓你再輸入第二次以驗證密碼正確性 • 如何模擬使用者輸入密碼? • 將密碼輸出到某檔案, 再將某檔案輸入給passwd指令 • 將密碼output到另一個文字檔input • echo XXXX > input • echo本來就會換行 • 如何輸入兩次? • 讓input的內容為 • 第二個使用者的密碼要蓋過去, 該如何作? • 使用>會覆蓋過去, 使用>>會接在檔案後面
Bonus (+5%) • 將密碼設定都寫在script裡, 實在是太不彈性 • 比較好的作法, 是將密碼獨立出來另外存在一個文字檔 • 如何一一讀取文字檔裡的密碼 • 使用輸入輸出導向(> or >> or < )和read指令
語言支援 • 如果安裝完了 Ubuntu,卻發現 Ubuntu 都是英文,那可能是因為語言支援沒有更新或沒有更新完全。 • 但用LiveCD試用Ubuntu, 可用空間被光碟的容量限制, 可能沒有足夠的空間更新語言支援 • 請點選「System/Administration/語言支援」,打開「語言支援」,再按下「Install / Remove Language」找到「Chinese」,下面的細節全部打勾,再按下「Apply Changes」 • 安裝完畢後, 重新登入即可看到中文系統
language support 重新登入系統, 即可看到完整的中文系統
編譯原始碼安裝 make指令是用來編譯你的程式 makefile是用來告訴make指令如何 ./configure make sudo make install sudo apt-get install 某套件 • 有些開放原始碼軟體,但只提供編譯給 Win32 的安裝執行檔原始碼,可下載軟體原始碼回來,自行編譯安裝 • 在終端機指令模式下安裝 • 若過程中顯示缺某套件就補:
簡單的Makefile範例 Makefile all:hello.c gcc hello.c -o helloclean: rm -f hello %make 會將hello.c編譯成hello的執行檔 %make clean 會將hello的執行檔刪除
編譯程式 • 我們所寫的程式就是原始碼(source code), 通常我們都使用高階的程式語言(ex: C or C++ or JAVA)來撰寫程式 • 高階程式語言貼近人類的思維, 比較容易閱讀和撰寫 • 寫完程式後, 我們會使用編譯器(compiler, ex:gcc)將高階程式碼編譯成低階程式碼(assembly) • assembly是貼近CPU思維, 通常一行高階程式碼可以轉成數行的assembly codes
Compiler Assembly Language Program Assembler Machine Language Program Machine Interpretation Control Signal Specification temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; High Level Language Program lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 011 1010 1111