如何開始使用istpc32(在win32的作業系統下)?

A. 對於一般的使用者

對於一正要開始使用istpc32的使用者, 可以由Part A開始:

B. 對於系統管理者

對於要管理istpc32的使用者, 必須先熟悉Part A的基本知識, 接著參考Part B所提供的管理指令:

C. FAQ

D. 參考資料


Part A: 一般使用者

I. 安裝與設定必須的軟體

II.a Linux常用指令集


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. 參考資料

系統資訊

指令表

指令 功能說明 範例
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
<注1> 在linux通常習慣使用.tar.gz的方式來壓縮, 所以除非特殊需要, 請盡可能的使用這種格式.

istpc32提供的網路服務

服務名稱 服務敘述 服務管理
apache2 網頁伺服器
啟動服務
#/etc/init.d/apache2 start
暫停服務
#/etc/init.d/apache2 stop
重新服務
#/etc/init.d/apache2 restart
proftpd ftp伺服器
啟動服務
#/etc/init.d/proftpd start
暫停服務
#/etc/init.d/proftpd stop
重新服務
#/etc/init.d/preoftd restart
sshd ssh伺服器
啟動服務
#/etc/init.d/sshd start
暫停服務
#/etc/init.d/sshd stop
重新服務
#/etc/init.d/sshd restart
mysql 資料庫
啟動服務
#/etc/init.d/mysql start
暫停服務
#/etc/init.d/mysql stop
重新服務
#/etc/init.d/mysql restart
net.eth0 網路連線
啟動服務
#/etc/init.d/net.eth0 start
暫停服務
#/etc/init.d/net.eth0 stop
重新服務
#/etc/init.d/net.eth0 restart

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/"
	

其他相關網站