如何開始使用istpc32(在win32的作業系統下)?
A. 對於一般的使用者
對於一正要開始使用istpc32的使用者, 可以由Part A開始:
- 了解需要哪些軟體(ftp client, putty, vncviewer)
- 如何安裝設定
- 如何登入istpc32(使用putty登入ssh伺服器或 vncviewer登入vncserver )
- 接著可以閱讀PartA.II來了解關於Linux的基本指令
B. 對於系統管理者
C. FAQ
- C.1: 什麼是Gentoo Linux?
- C.2: 什麼是root?
- C.3: 指令表中在一個指令前的"#"和"$"代表什麼意義?
- C.4: 什麼是指圖形介面與文字介面?
- C.5: 使用istpc32這台主機要注意什麼?
D. 參考資料
Part A: 一般使用者
I. 安裝與設定必須的軟體
- FTP client: 連入檔案伺服器(ftp)的客服端.
- putty: 以文字模式登入伺服器.
- vncviewer: 以圖形模式登入伺服器.
下載/安裝/設定ftp client
下載putty | 設定putty | 使用putty登入(第一次使用putty的問題)
下載vncviewer | 安裝vncviewer | 使用vncviewer登入istpc32預設的vncserver | 自行開啟的vncserver與登入
II.a Linux常用指令集
- 檔案處理:
- 壓縮程式:
- 文字檔案編輯與瀏覽:
- 程序控制:
- 網路程式:
- 其他重要指令
ls 顯示目錄檔案 | cd 切換工作目錄 | pwd 顯示目前工作目錄 | mkdir 建立目錄 | mv 移動檔案或重新命名檔案名稱 | rm 刪除檔案或目錄 | chmod 更改檔案或目錄權限 | find 尋找檔案
tar 壓縮軟體 | gunzip 壓縮軟體 | zip/unzip 壓縮軟體
more/cat 列出檔案內容 | nano/joe 文字編輯器
ps 列出系統執行程序的狀態 | kill 刪除程序 | jobs 列出正在進行的工作 | fg 將在背景的程序放在前景 | bg 將在前景的程序放在背景 | top 例出正在執行程序的cpu使用率
wget 下載工具 | ssh 連線工具 | telnet 連線工具 | ftp 連線工具
passwd 更改密碼 | clear 清除螢幕 | logout 登出 | screen 終端機模擬器 | grep 過濾器 | man 查詢指令的使用方法
II.b Linux常用小技巧(參數, 技巧,組合鍵)
Part B: 系統管理者
Part C. FAQ
C.1: 什麼是Gentoo Linux?
市面上有許多種不同的Linux distribution, 例如Debian Linux, Slackware Linux, RedHat Linux, Mandrake Linux等. 而Gentoo Linux是其中一種, 他的好處在於提供了portage的安裝系統, 讓使用者可以 方便安裝最新的套件,並且提供使用者相當大的自由度來調整與選擇你所想要的系統.
C.2: 什麼是root?
在任何Linux系統中,都會預設一個使用者的帳號root, 這一個使用這擁有整個系統最大的權限, 可以使用系統的任何資源. root在Linux還有一個意義, 那就是指根目錄, 也就是所有目錄的最上層.
C.3: 指令表中在一個指令前的"#"和"$"代表什麼意義?
"#"是代表使用這一指令需要擁有root的權限,"$"指一般使用者可以執行的指令.
C.4: 什麼是指圖形介面與文字介面?
圖形介面(GUI)指一些可以用滑鼠鍵盤的程式介面, 文字介面(Command line)是指單純使用 鍵盤輸入的介面.
C.5: 使用istpc32這台主機要注意什麼?
istpc32是一個多人使用的系統, 所以在你必需注意一些使用事項: [1] 如果可以在文字介面執行的程式, 盡可能的在文字介面執行, 不要使用圖形介面來佔用系統資源. [2] 工作完成後, 請結束所有你開啟的服務, 例如 screen或vncserver. [3] 不要任意執行來路不明的程式, 如果有需要額外的程式可詢問系統管理員. [4] 請定期更改密碼並保護密碼的安全性.
Part D. 參考資料
系統資訊
- OS: Gentoo Linux
- Kernel: 2.6.7-gentoo-r11
- CPU: Intel P4/Xeon 2.8G x2
- RAM: 2G DDR RAM
- HD: 36G SCSI HD x4
- Raid: mode 5 (efficient HD capacity: 108G)
- Filesystem:
sda1 ext2 sda2 swap sda3 Reiserfs
指令表
指令 | 功能說明 | 範例 |
ls | 顯示目錄檔案 | 列出所有檔案和目錄包含隱藏檔 $ls -alF |
cd | 切換工作目錄 | 假使要切換到/home/test這一個目錄, 則輸入: $cd /home/test |
mkdir | 建立目錄 | 如果要在目前工作目錄下建立一個目錄foo: $mkdir foo 如果要在/home/test下建立一個目錄foo: $mkdir /home/test/foo |
mv | 移動檔案或重新命名檔案名稱 | 將 /home/test/test.txt 移動到 /home/test1/這一個目錄底下,並保持原本檔案名稱 $mv /home/test/test.txt /home/test1/ 將 /home/test/test.txt 移動到 /home/test1/這一個目錄底下,但更改名稱為test1.txt $mv /home/test/test.txt /home/test1/test1.txt 將test.txt 重新命名為 test1.txt $mv test.txt test1.txt |
rm | 刪除檔案或目錄 |
刪除一個名為test.txt的檔案: $rm test.txt 刪除一個目錄名稱為test的資料夾 $rm -r test |
passwd | 更改密碼 |
將密碼設定為testpasswd: $passwd 接著根據要求輸入原本的密碼與要設定的密碼testpasswd |
cp | 複製檔案或目錄 | 如果要把/home/test/test.txt 複製到 /home/test1/這一個目錄底下,並保持原本檔案名稱. $cp /home/test/test.txt /home/test1/ 將 /home/test/test.txt 複製到 /home/test1/這一個目錄底下,但更改名稱為test1.txt $cp /home/test/test.txt /home/test1/test1.txt |
ps | 列出正在執行的程序 |
如果想顯示所有正在執行的程序和誰執行這些程序 $ps aux 注意列出PID的欄位, 這是指這一個程序對應的process id. |
kill | 刪除程序 |
在使用ps這一指令並得到要刪除的執行緒的PID(假設為1688),如果要刪除這一個程序只要輸入以下指令: $kill 1688 如果一直無法刪除此程序, 可以增加-9 這一個選項來強迫關閉程式. $kill -9 1688 |
clear | 清除螢幕 | $clear |
pwd | 顯示目前工作目錄 | $pwd |
chmod | 更改檔案或目錄權限 |
chmod可以針對擁有者, 同一群組, 和其他使用者來設定其存取的權限. 而就權限來說, 又可以分成 三種可讀, 可寫, 可執行. 為了在設定上的方便分別以1, 2, 4 來取代. 如果希望同時擁有可讀可寫的 功能則用1+2=3來表示. 同理可讀可執行則用1+4=5來取代, 如果希望開放所有權限即是希望可讀可寫可 執行則用1+2+4=7來取代.例如希望一個檔案test.txt的權限分別為擁有者擁有所有權限(7), 同一群組可讀可 寫(3), 其他使用者可讀(1): $chmod 731 test.txt |
more/cat | 列出檔案內容 |
例如要列出test.txt的內容: $more test.txt |
nano/joe | 文字編輯器 | 這是一個陽春但簡易的編輯程式, 如果要建立或編輯一個檔案叫做test.txt: $nano -w test.txt 然後編輯完後輸入Ctrl+O寫入, Ctrl+X跳出編輯程式. 除了這之外還有vim這一個進階的編輯器, 可以提供 醒目功能, 對於編寫程式相當方便. 如果有興趣可以參考附加資料. |
wget | 下載工具 |
一個相當強悍的下載工具, 可以下載http或是ftp的檔案. 例如要下載一個http://test.com/test.exe 這一個檔案: $wget -c http://test.com/test.exe 其中 -c 提供續傳功能.而如果的檔案是來至於ftp, e.x., ftp://test.com/test.exe : $wget -c ftp://test.com/test.exe |
logout | 登出 |
登出結束目前的工作: $logout |
screen | 終端機模擬器 |
screen 可以在遠端建立多重終端機的套件. 用解決在文字模式下中斷連線, 但不中斷工作的問題. 第一次開始 screen,僅需要輸入: $screen 將目前的screen 推回背景 按 Ctrl + A 再按D (datch) 讀回前一次的 screen 為(resume): $screen -r 如果你有超過兩個screen在執行, 那你必須輸入你要resume的screen的pid, 例如 $ screen -r There are several suitable screens on: 16732.pts-1143.istpc23 (Detached) 16737.pts-1143.istpc23 (Detached) Type "screen [-d] -r [pid.]tty.host" to resume one of them. 接著你如果想要resume 16732.pts-1143.istpc23這一個screen, 你只要輸入 $screen -r 16732 |
tar | 壓縮一個目錄下的所有檔案或解壓縮tar.gz, tar.bz2類型的檔案<注1> | 解壓縮: 根據不同的壓縮方式, 有不同的解壓縮參數, 如果壓縮檔的檔名為foo.tar.gz: $tar zxvf foo.tar.gz 如果壓縮檔的檔名為foo.tar.bz2 $tar yxvf foo.tar.bz2 壓縮: 如果將foo這一個目錄壓縮成foo.tar.gz: $tar zcvf foo.tar.gz foo/ |
gunzip | 壓縮單一檔案或解壓縮.gz類型的檔案 | 解壓縮: 如果壓縮檔的檔名為foo.gz; $gunzip foo.gz 如果要將foo這一個目底下的.gz檔案都用gunzip解壓縮 $gunzip -r foo/ 壓縮 如果要將foo.txt以快速壓縮方式(1)壓縮壓縮成foo.txt.gz: $gunzip -1 foo.txt 如果要將foo這一個目錄底下的檔案分別都用gunzip以快速壓縮方式(1)壓縮: $gunzip -r -1 foo/ 如果要將foo這一個目錄底下的檔案分別都用gunzip以最佳壓縮方式(9)壓縮: $gunzip -r -9 foo/ |
zip/unzip | 壓縮或解壓縮.zip的格式 | 解壓縮: 如果壓縮檔的檔名為foo.zip; $unzip -d foo.zip 壓縮 如果要將foo.txt壓縮成foo.txt.zip: $zip foo.txt.zip foo.txt 如果要將foo這一個目錄壓縮起來,並壓縮成foo.zip: $zip -r foo foo/ |
find | 尋找檔案 | 如果要在/home/test下找尋foo.txt的檔案 $find /home/test -name foo.txt |
grep | 過濾器 | grep是一個相當強悍的指令, 它可以過濾指令輸出的結果和檔案內容,例如將test.txt的內容為 foolala hahah lalafoo 而要將這檔案裡面含有foo那行過濾出來: $more test.txt|grep foo foolala lalafoo |
man | 查詢指令的使用方法 | 例如要查詢tar的使用方法: $man tar 接著他會列出很詳細的說明, 另一種查詢指令的使用方法是給-h或--help這一個參數給該指令: $tar -h(tar --help) |
top | 例出正在執行程序的cpu使用率 | $top |
jobs | 列出正在進行的工作 | $jobs |
fg | 將在背景的程序放在前景執行 | $fg <job id> |
bg | 將在程序放在背景執行 | $bg <job id> |
telnet | telnet連線工具 | $telnet <address_of_the_site> |
ssh | ssh連線工具 | 如果要使用test這一個帳號透過ssh登入伺服器: $ssh -l test <address_of_the_site> |
ftp | ftp連線工具 | $ftp <address_of_the_site> |
su | 切換帳號 | 假設想要切換成test這一個帳號 $su test 接著如果不是由root切換成test,它會詢問test的密碼.而如果只輸入 $su 而後面不加任何參數,則會預設切換為root,當然也需要輸入root的密碼.Note 雖然透過ssh可以使用root登入伺服器,但就安全考量時,並不會用root透過遠端登入. 因為密碼會有被劫取之疑慮.因此對於管理者通常會有一個屬於一般使用者的帳號.當需要 為擁有root的權限時來進行工作時,可以使用su這一個指令切換成root. 不過有一點要注意 的,並不是所有使用者可以切換成root, 只有在wheel這一個群組下的使用者才有權限.可以 參考useradd來設定. |
useradd | 增加使用者 | 加入一個名為 "test" 的使用者.然而,希望這一個使用者的使用權限是受到限制的. 底下這個指令比較合適於擁有升級為root的帳號: #useradd -m -G users,wheel test users: 擁有最基本使用權限的群組 wheel: 擁有可以升級為root的群組 而對於於一般的使用者,使用以下這一個指令就可: #useradd -m -G users test |
userdel | 移除使用者 | 如果要移除一個使用者test: #userdel test 如果也同時刪除這一個使用者的家目錄: #userdel -r test |
gpasswd | 增加一位始用者到群組 | 如果有一個已建立的帳號test,需要加入wheel這一群組,而使其可以升級成root: #gpasswd -a test wheel 相對的如果要從wheel這一群組移除test: #gpasswd -d test wheel |
emerge | 安裝/移除軟體(Gentoo Linux) | 取得目前Gentoo Linux提供的最新版本的軟體: #emerge sync 查詢目前系統有哪些套件可以升級至穩定版: #emerge -p world 預覽某一個套件(R)的安裝結果: #emerge -p R 如果查詢結果為: ---------------------------------------------------- These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild U ] dev-lang/R-2.1.0-r1 [2.0.1] ^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ (1) (2) (3) (4) (1): U(套件升級):表示安裝的版本比系統提供的還舊,且當執行安裝後,會移除之前安裝的版本. UD(套件降級):表示安裝的版本比系統提供的還新,且當執行安裝後,會移除之前安裝的版本. N(安裝新套件):表示系統尚未安裝此套件 NS(安裝套件的新版本):表示系統尚未安裝此套件的版本,且當執行安裝後,不會移除之前安裝的版本. (2): 套件所屬的分類 (3): Gentoo Linux提供的最新或穩定的版本(根據你下是否給定ACCEPT_KEYWORDS="~x86") (4): 目前系統安裝的版本 接著如果你確定你的安裝結果後,輸入: #emerge R 來執行安裝(套件升級/套件降級/安裝新套件/安裝套件的新版本). 就這一個例子會將R-2.0.1移除 而安裝R-2.1.0-r1. Note: Gentoo Linux提供的穩定版,Gentoo Linux提供的最新版本與套件開發者提供的最新版本的不同? Gentoo Linux提供的穩定版(GS): 由Gentoo Linux團隊提供經過測試能夠正常安裝執行於Gentoo Linux的版本. Gentoo Linux提供的最新版(GN): 由Gentoo Linux團隊提供尚未完成完整測試是否正常使用於Gentoo Linux的版本. 套件開發者提供的最新版本(ON): 由套件原始開法者開發測試可以正常執行於Linux系統上,但因每套Linux都有些許 不同,使得在某些Linux下安裝會有問題. 因此如果以版本的新舊來排列的話(由新到舊): ON >= GN >= GS 而Gentoo Linux最多只能提供GN與GS這兩種版本. 由於Gentoo Linux的套件提供的準則, 預設只會告知GS而不是GN, 如果你想要知道目前系統提供的GN版為何, 則輸入: #ACCEPT_KEYWORDS="~x86" emerge -p R 同理如果你要執行安裝: #ACCEPT_KEYWORDS="~x86" emerge R 如果要移除R這一個套件: #emerge unmerge R 如果要移除R這一個套件的2.0.1版: #emerge unmerge R-2.0.1 有時兩種不同的套件會有相同的名字屬於不同兩個分類, 例如有一個套件test, 且app-admin和sys-libs都擁有 這一個名稱的套件.而要移除的套件位於app-admin: #emerge unmerge app-admin/test 當然你可以加入版本的資訊來移除: #emerge unmerge app-admin/test-xxxx |
rc-update | 設定自動啟動服務 | 如果你要設定網頁伺服器apache2, 系統開啟後自動啟動: #rc-update add apache2 default 如果你要取消apache2 在的自動啟動, : #rc-update del apache2 default |
istpc32提供的網路服務
Linux常用小技巧(參數, 技巧,組合鍵)
變數 | 說明 | 範例 |
./ | 這層目錄 | 例如現在的工作目錄位於/home/test, 而想執行一個程式test.sh位於/home/test/bin/下, 則可以輸入: $./bin/test.sh |
../ | 上層目錄 | 如果要切換到上層目錄, 就可以利用這一個參數: $cd ../ |
~ | 家目錄 | 如果的帳號名稱是test, 那登入的家目錄預設為/home/test. 但為了省去輸入上的麻煩, 可以使用~來取代, 舉例來說: 如果要切換到家目錄: $cd ~ (等同於 $cd /home/test) 如果要將家目錄下test.txt的檔案複製到/foo/foo.txt可以用 $cp ~/test.txt /foo/foo.txt (等同於 $cp /home/test/test.txt /foo/foo.txt) |
* | 萬用符號 | 這是一個相當好用的符號, 例如想要知道目錄下以.txt結尾的檔案有哪些: $ls *.txt 例如想要複製目前目錄下以.txt結尾的檔案到/home/test: $cp *.txt /home/test 例如想要移動目前目錄下以.txt結尾的檔案到/home/test: $mv *.txt /home/test |
& | 將程式丟入背景執行 | 如果寫好一個由c寫成的程式名為test.c, 並想把它丟入背景執行, 則可以輸入以下指令: $gcc test.c & 如果想要將程式由背景切換到前景, 可以參考fg這一個指令. |
&& | 連續執行兩個以上且相依的指令 | 假設要執行兩個程式program1和program2,且會先執行program1後,確定program1正常執行沒發 生錯誤,接著繼續執行program2: $program1 && program2 因此不須等到program1完成, 才自行手動執行program2. |
Ctrl+C | 終止在命令列執行的程式 | 有時候正在執行某一程式時, 突然想要終止這一個程式, 那可以按下Ctrl和C鍵來終止. |
TAB | 搜尋以目前輸入字串為前綴的檔案 | 有時會忘記要輸入的指令是什麼但知道它的前幾個字是什麼, 例如有一個指令是vncviewer, 但只記得它 的開頭式vnc, 忘了他切確的名字, 此時只要先輸入vnc接著, 按下TAB鍵, 它就會列出以vnc為開頭的指令. |
含有空格的目錄名 | 含有空格的目錄名 | 假使有一個目錄是 /home/test/foo test/而要用cd這一個指令切換到該目錄下,如果使用: $cd /home/test/foo test/ 會發生錯誤, 此時只需要在這一個目錄前後加入雙引號即可: $cd "/home/test/foo test/" |