這篇文章為大家帶來了linux作業系統基礎知識,其中包含程式開發環境、常用指令以及環境變數的相關知識,希望對大家有幫助。
1、Linux簡介與程式開發環境
1.1 什麼是Linux?
Linux是一個可以自由發布的類別UNIX核心實現,它是一個作業系統的底層核心。 Linux是由芬蘭赫爾辛基大學的Linus開發,期間得到了網路廣大UNIX程式設計師的幫助。它最初是受其教授的Minix(一個小型的類UNIX系統)啟發而開發的程序,純屬個人的愛好,但是後來它自身逐步發展成為一個完整的系統
要理解什麼是Linux ,首先要了解在Linux之前誕生的系統和應用程式—UNIX和GNU軟體。
1.1.1 什麼是UNIX?
UNIX作業系統最初是由貝爾實驗室開發的,當時的貝爾實驗室是電信巨頭AT&T(美國電報電話公司)旗下的一員。如今,它已經成為一種非常流行的多用戶、多任務作業系統。 UNIX作業系統可以運作在大量不同種類的硬體平台上,其適用範圍從PC機到多處理器伺服器和超級電腦。
在UNIX上進行程式開發有些典型的風格和特點:
1)簡單性:許多很有用的UNIX工具是非常簡單的。 「小而簡單」是一種值得學習的技術。越大、越複雜的系統注定會包含越大、越複雜的錯誤。
2)集中性:讓一個程式很好地執行一項任務好過把所有功能都堆在一起。功能臃腫的程序難於使用和維護,單一目標的程序更容易隨著更好的演算法被開發出來而改進。在UNIX中,當使用者出現新的需求時,我們通常是把小工具組合起來完成更複雜的任務,而不是試著將一個使用者所期望的所有功能放在一個大程式裡。
3)可重複使用的元件:將應用程式的核心實作為庫。具有簡單而靈活的編程接口的庫可以幫助其他人開發出同類程序,或者把這些技術應用到新的應用領域。
1.1.2 GNU專案與自由軟體基金會
有了作業系統核心還不夠,Linux能夠發展到今天是無數人共同努力的成果。作業系統核心本身只是可用開發系統的一小部分。一般的UNIX系統還包括提供系統服務和工具的應用程序,對於Linux系統,這些程式是由許多程式設計師編寫並自由發布的。
Linux社群支援自由軟體的概念,即軟體本身不應受限,它們遵守GNU(GNU是GNU’s Not UNIX的遞歸縮寫)通用公共授權(GPL)。
自由軟體基金會(Free Software Foundation)是由Richard Stallman創立,其宗旨是:試圖創建一個與UNIX系統相容,但並不受UNIX名字和原始碼私有權限制的作業系統和開發環境。
GNU專案已經為軟體社群提供了許多UNIX系統上應用程式的仿製品。例如大名鼎鼎的:
GCC:GNU編譯器集,它包含GNU C編譯器。
G :G 編譯器,是GCC的一部份。
GDB:原始碼級的偵錯器。
GNU make
bash:命令解釋器(shell的一種)
有了這些可用的自由軟體,再加上Linux內核,我們可以說:創建一個GNU的、自由的類UNIX系統的目標已經透過Linux系統實現了。由於GNU軟體所做的貢獻,現在許多人通常把Linux系統稱為GNU/Linux。
1.2 程式開發環境
工欲善其事必先利其器,想要進行Linux程式開發需要先建置開發環境。
1.2.1 Linux環境安裝
進行 Linux 開發需要安裝一個 linux 系統環境,一般使用 VMWare 安裝Ubuntu 系統進行開發。具體安裝過程大家可以參考以下文章https://zhuanlan.zhihu.com/p/38797088這裡我就不做太多介紹。
1.2.2 SSH
Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在應用層基礎上的安全網路協定。傳統的網路服務程序,如 FTP、 Pop 和 Telnet 其本質上都是不安全的;因為它們在網路上用明文傳送資料、使用者帳號和使用者口令,很容易受到中間人攻擊方式的攻擊。
SSH 分成客戶端 openssh-client 和伺服器 openssh-server,我們需要在 ubuntu 系統下安裝 ssh 伺服器,以便使用 ssh 用戶端登入系統。
1)安裝ssh
sudo apt update
sudo apt install openssh-server
2)啟動ssh
sudo service ssh start
3)使用ip addr show
指令查看ubuntu 系統ip
可以看出,目前ubuntu IP 位址為192.168.176.148
4)測試ssh 登入
在Ubuntu 上安裝完成ssh 伺服器後,接下來在Windows 系統下使用MobaXterm 進行連接,測試ssh 伺服器是否安裝成功。操作步驟如下:
執行Xterm 軟體,選擇“Session”,如下圖所示:
點擊“SSH”並進行設置,如下圖所示:
在該對話方塊中,選擇“協定”為“SSH”, “主機名稱”為ubuntu 的IP 位址,使用者名稱為目前使用者名稱。連接埠號碼使用預設值 22。設定完成後,點擊"OK",出現如下命令列終端,表示已經連接上虛擬機器的ubuntu系統。
透過此方法,確定主機和開發板之間網路通訊正常後,即可以登入開發板上。
5)安裝Visual Studio Code
Visual Studio Code(簡稱VSCode)是微軟出的一款免費的編輯器,有Windows、 Linux 和macOS 三個版本,是一款跨平台編輯器。安裝過程大家可以自行搜索,這裡主要介紹用於C/C 程式開發的擴充包,安裝步驟見下圖:
C/C 。 C/C Snippets,即 C/C 重複使用程式碼區塊。 C/C Advanced Lint,即 C/C 靜態偵測 。 Code Runner,即程式碼運行。 Include AutoComplete,即自動頭檔包含。 Rainbow Brackets,彩虹花括號,有助於閱讀程式碼。 One Dark Pro, VSCode 的主題。 GBKtoUTF8,將 GBK 轉換為 UTF8。 ARM,即支援 ARM 組譯語法高亮顯示。 Chinese(Simplified),即中文環境。 vscode-icons, VSCode 圖示插件,主要是資源管理器下各個資料夾的圖示。 compareit,比較插件,可以用來比較兩個檔案的差異 DeviceTree,裝置樹語法外掛程式。 Markdown Preview Enhanced, markdown 預覽外掛。 Maridown pdf,將.md 檔案轉換成其他格式。 2、Linux常用指令Linux的指令有幾百個,對於初學者來說,常用的並不多,並不需要全部掌握。在平時的學習和工作過程中,遇到了陌生的Linux指令,多查資料,日積月累,自然就記住了。以下為大家介紹Linux最基礎的17個指令。
1、清屏
clear
#2、檢視伺服器ip位址
#ip addr
3、檢視時間
#date
檔案系統像一棵樹,樹幹是/(根)目錄,樹枝是子目錄,樹枝後面還有樹枝(子目錄中還有子目錄),目錄的最後是文件。
目錄和檔案的路徑分為絕對路徑和相對路徑,絕對路徑是從根(/)算起,例如/usr/etc/readme.txt。相對路徑是從目前工作目錄算起,如果目前工作目錄是/usr,etc/readme.txt等同於/usr/etc/readme.txt。此外,需要注意的是:一個圓點.表示目前工作目錄;兩個圓點…表示目前工作目錄的上一層目錄。
FHS 認為,Linux 系統的根目錄(/)最為重要,原因有以下2 點:
1. 所有目錄都是由根目錄衍生出來的; 2. 根目錄與系統的開機、修復、還原密切相關;
因此,根目錄必須包含開機軟體、核心文件、開機所需程序、函數庫、修復系統程式等文件,如下表所示。
#
2)Linux /usr目錄
usr(注意不是 user),全稱為 Unix Software Resource,此目錄用於儲存系統軟體資源。 FHS 建議開發者,應把軟體產品的資料合理的放置在 /usr 目錄下的各子目錄中,而不是為他們的產品創建單獨的目錄。
Linux 系統中,所有系統預設的軟體都儲存在 /usr 目錄下,/usr 目錄類似 Windows 系統中 C:\Windows\ C:\Program files\ 兩個目錄的綜合體。
FHS 建議,/usr 目錄應具備下表所示的子目錄。
3)Linux /var 目錄
/var 目錄用於儲存動態數據,例如快取、日誌檔案、軟體運行過程中產生的檔案等。通常,此目錄下建議包含如表 4 所示的這些子目錄。
5、查看目前目錄
#pwd
6、改變目前工作目錄
cd 目錄名稱
範例:
1)進入/tmp目錄
cd /tmp
2)進入上一層目錄
#cd ..
3)進入使用者的主目錄
cd
#7、列出目錄和檔案資訊
#ls
是list的縮寫,透過ls
指令不僅可以查看目錄和檔案訊息,還可以查看目錄和檔案的權限、大小、主人和群組等資訊。
選項 -l
列出目錄和檔案的詳細資訊。
範例:
1)列出目前工作目錄下全部的目錄和檔案名稱資訊
ls
2)列出目前工作目錄下全部的目錄和檔案名稱詳細的資訊
ls -l
3)正規表示式
正規表示式又稱規則表達式、通配符,目錄和檔案名稱都支援正規表示式,正規表示式的規則比較多,在這裡我們只需要掌握最常用的兩種:星號「*」 。
星號 「*」 :符合任意數量的字元。
例如:ls open*.zip
#8、建立目錄
1)在目前工作目錄下建立aaa目錄
mkdir aaa
2)在目前工作目錄下建立aaa目錄,並在aaa目錄下建立bbb目錄
mkdir aaa/bbb -p
9、刪除目錄和檔案
#rm [-rf]
目錄或檔案
選項-r
#可以刪除目錄,如果沒有-r只能刪除檔案。
選項-f
表示強制刪除,不需要確認。
1)刪除aaa目錄
rm aaa -r
2)強制刪除目前工作目錄下的ccc.c檔
rm -f ccc.c
#9、移動目錄與檔案
##mv 舊目錄或檔案名稱新目錄或檔案名稱
1)將目前工作目錄中的book.c 檔案重新命名為book1.c
mv book.c book1.c
2)如果OPC/test3是一個已經存在的目錄,以下指令將會將目前工作目錄下的book.c 檔案移到OPC/test3 目錄中。
mv book.c OPC/test3
#3)如果OPC/test3目錄不存在,以下指令將把目前工作目錄下的book.c 檔案改名為OPC/test3。
mv book.c OPC/test3
#10、複製目錄和檔案
cp [-r] 舊目錄或檔名新目錄或檔名
註:-r 是遞迴的意思,英文 recursion
選項-r
可以複製目錄,如果沒有選項
只能複製檔案。 範例:
1)把目前工作目錄下的book1.c檔案複製為book2.c
cp book1.c book2 .c
2)把目前工作目錄下的aaa目錄複製成bbb
cp aaa bbb -r
#cp book1.c aaa/book1.c
cp -r aaa /tmp/.
以上兩個指令的效果相同。
11、判斷網路是否連通
ping -c 套件的個數ip位址或網域名稱
ping用於決定本地主機是否能與另一台主機成功交換資料包,判斷網路是否通暢。
1)向本機(127.0.0.1)ping五個套件
ping -c 5 127.0.0.1
#2)向百度www.baidu.com.cn 的伺服器ping五個套件
ping -c 5 www.baidu.com.cn
可以看出百度的伺服器是可以ping
通的。
3)向Google www.google.com 的伺服器ping五個套件。
ping -c 5 www.google.com
#可以看出Google的伺服器是ping
#不通的。
12、顯示文字檔案的內容
顯示文字檔案的內容有三個指令:cat
、more
#和tail
。
1)cat 指令
cat 檔名
cat指令一次顯示整個檔案的內容。
cat main.cpp
#2)more 指令
more 檔名
為了方便閱讀,more指令分頁顯示檔案的內容,按空白鍵顯示下一頁,按b鍵顯示上一頁,按q鍵退出。
3)tail 指令
tail -f 檔案名稱
tail -f
用於顯示文字檔案的最後幾行,如果檔案的內容有增加,就即時的刷新。對程式設計師來說,tail -f
極為重要,可以動態顯示後台服務程式的日誌,用於偵錯和追蹤程式的運作。
13、統計文字檔案的行數、單字數和位元組數
wc(word count)功能為統計指定的檔案中位元組數、字數、行數,並將統計結果輸出
wc 檔案名稱
#14、搜尋檔案中的內容
grep "內容" 檔案名稱
注意,如果內容中沒有空格等特殊字符,可以不用雙引號括起來。
範例:
1)在main.cpp檔案中搜尋signal
grep signal main.cpp
#15、搜尋檔案
1)find
find 目錄名稱-name 檔案名稱
參數說明:
目錄名:待搜尋的目錄,搜尋檔案的時候,除了這個目錄名,還包含它的各級子目錄。
檔案名稱:待搜尋的檔案名稱相符的規則。
範例:
從 OPC 目錄開始搜索,把全部的 *.cpp 檔案顯示出來。
find OPC -name *.cpp
2)locate
locate 檔名
範例:
搜尋open62541.c檔
locate open62541.c
注意:第一次使用該指令,可能需要更新資料庫,按照提示的命令執行一下就好了.
find多用於在某個目錄下進行模糊搜索,而locate則是進行全盤準確定位。
16、chmod指令
用於改變linux檔案或目錄的存取權限。該指令有兩種用法。一種是包含字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
每個文件或目錄的存取權限都有三組,每組用三位表示,分別為文件屬主的讀、寫和執行權限;與屬主同組的用戶的讀、寫和執行權限;系統中其他使用者的讀取、寫入和執行權限。
範例:ls -l example
#第一列共有10個位置,第一個字元指定了檔案類型。在通常意義上,一個目錄也是一個檔案。如果第一個字元是橫線,表示是一個非目錄的檔案。如果是d,表示是一個目錄。從第二個字符開始到第十個共9個字符,3個字符一組,分別表示了3組用戶對檔案或目錄的權限。權限字元用橫線代表空許可,r代表只讀,w代表寫,x代表可執行。
常用參數:
-c 當改變時,報告處理資訊
- ## -R 處理指定目錄以及其子目錄下所有檔案
- # u :目錄或檔案的目前的使用者
- # g :目錄或檔案的目前的群組
- o :除了目錄或檔案的目前使用者或群組之外的使用者或群組
- a :所有的使用者及群組
- r :讀取權限,以數字4表示
- w :寫權限,用數字2表示
- x :執行權限,用數字1表示
- # - :刪除權限,以數字0表示
- s :特殊權限
chmod a-x example
#3)將aaa目錄及其子目錄所有檔案加入可讀權限
df [-h] [-T]
選項
以方便閱讀的方式顯示資訊:
選項
列出文件系統類型:
#3、Linux環境變數解說
3.1.1 什麼是環境變數?
程式(作業系統指令和應用程式)的執行都需要執行環境,這個環境是由多個環境變數組成的。
3.1.2 環境變數的分類1)依生效的範圍分類。
系統環境變數:公共的,對全部的使用者都生效。
使用者環境變數:使用者私有的、自訂的個人化設置,只對該使用者生效。
2)依生存週期分類。
永久環境變數:在環境變數腳本檔案中配置,使用者每次登入時會自動執行這些腳本,相當於永久生效。
臨時環境變數:使用時在Shell中暫時定義,退出Shell後失效。
3)Linux環境變數
Linux環境變數也稱之為Shell環境量變,以下劃線和字母打頭,由底線、字母(區分大小寫)和數字組成,習慣上使用大寫字母,例如PATH、HOSTNAME、LANG等。
3.2 常用的環境變數3.2.1 檢視環境變數
1)env指令
#在Shell下,用env指令查看目前使用者全部的環境變數。
上圖只截取了部分環境變量,並非全部。
註:用env指令的時候,滿屏顯示了很多環境變量,不方便查看,可以用grep篩選。
例如查看環境變數名稱中包含PATH的環境變數。
2)echo指令
例如:
1)PATH
可執行程式的搜尋目錄,可執行程式包括Linux系統命令和使用者的應用程序,PATH變數的具體用法本文後面的章節中有詳細的介紹。
2)LANG
Linux系統的語言、地區、字元集。
echo $LANG3)HOSTNAME
伺服器的主機名稱。
echo $HOSTNAME
4)SHELL
使用者目前使用的Shell解析器。
echo $SHELL
5)HISTSIZE
#儲存歷史指令的數目。
6)USER
目前登入使用者的使用者名稱。
echo $USER
7)HOME
#目前登入使用者的主目錄。
echo $HOME
8)PWD
目前工作目錄。
echo $PWD
9)LD_LIBRARY_PATH
C/C 語言動態連結庫檔案搜尋的目錄,它不是Linux缺省的環境變量,但對C/C 程式設計師來說非常重要,具體用法本文後面的章節有詳細的介紹。
3.3 設定環境量
export 變數名稱='值'
如果環境變數的值沒有空格等特殊符號,可以不用單引號包含。
範例:
export PATH=$PATH:.
#以上指令為目前shell的環境變數PATH新增.目錄(是.)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
以上指令為目前shell的環境變數LD_LIBRARY_PATH新增.目錄
採用export設定的環境變量,退出Shell後就會失效,下次登入時需要重新設定。如果希望環境變數永久生效,則需要在登入腳本檔案中設定。
3.3.1 系統環境變數
系統環境變數對全部的使用者生效,設定係統環境變數有三種方法。
1)在/etc/profile檔案中設定。
使用者登入時執行/etc/profile檔案中設定係統的環境變數。但是,Linux不建議在/etc/profile檔案中設定係統環境變數。
2)在/etc/profile.d目錄中增加環境變數腳本文件,這是Linux推薦的方法。
/etc/profile每次啟動時會執行 /etc/profile.d下全部的腳本檔。 /etc/profile.d比/etc/profile好維護,不想要什麼變數直接刪除 /etc/profile.d下對應的 shell 腳本即可。 /etc/profile.d目錄下有許多腳本文件,例如:
ls /etc/profile.d
3)在/etc/bashrc檔案中設定環境變數。
該檔案配置的環境變數將會影響全部使用者使用的bash shell。但是,Linux也不建議在/etc/bashrc檔案中設定係統環境變數。
3.3.2 使用者環境變數
使用者環境變數只對目前使用者生效,設定使用者環境變數也有多種方法。
在使用者的主目錄,有幾個特別的文件,用
ls是看不見的,用
ls .bash*可以看見。
1).bash_profile(推薦首選)
當使用者登入時執行,每個使用者都可以使用該檔案來配置專屬於自己的環境變數。
2).bashrc當使用者登入時以及每次開啟新的Shell時該檔案都將被讀取,不建議在裡面配置使用者專用的環境變量,因為每開一個Shell,該檔案都會被讀取一次,效率肯定會受影響。
3).bash_logout
當每次退出系統(退出bash shell)時執行該檔案。 4).bash_history
儲存了目前使用者使用過的歷史指令。
3.3.3 環境變數腳本檔案的執行順序環境變數腳本檔案的執行順序如下:
/etc/profile ->/etc/profile.d->/etc/bashrc->用戶的.bash_profile->用戶的.bashrc同名的環境變量,如果在多個腳本中有配置,以最後執行的腳本中的配置為準。
######3.4 重要環境變數的詳解#############1、PATH環境變數#########執行程式的搜尋目錄,可執行程式包括Linux系統命令和用戶的應用程式。如果可執行程式的目錄不在PATH指定的目錄中,執行時需要指定目錄。 ######1)PATH環境變數存放的是目錄列表,目錄之間用冒號:分隔,最後的圓點.表示當前目錄。 ######export PATH=目錄1:目錄2:目錄3:…目錄n:.######2)PATH預設包含了Linux系統指令所在的目錄(/usr/local/bin: /usr/bin:/usr/local/sbin:/usr/sbin),如果不包含這些目錄,Linux的常用指令也無法執行(要輸入絕對路徑才能執行)。 ######範例:###ls /bin/ls
可以查看到ls
指令位於/bin目錄下
此時我們執行指令 export PATH=
將PATH變數清空,再執行ls
指令,系統會提示找不到ls
指令。
採用絕對路徑就可以使用,/bin/ls
#為環境變數PATH新增/bin目錄後,ls
也可以執行了。
3)如果PATH變數中沒有包含圓點.,執行目前目錄下的程式需要加./或使用絕對路徑。
範例:
在目前目錄下執行 example 指令,提示無法執行。
將圓點.加入環境變數PATH之後,便可以執行了。
export PATH=$PATH:.
#2、LD_LIBRARY_PATH環境變數
#C/ C 語言動態連結庫檔案搜尋的目錄,它不是Linux缺省的環境變量,但對C/C 程式設計師來說非常重要。
LD_LIBRARY_PATH環境變數存放的也是目錄列表,目錄之間用冒號:分隔,最後的圓點.表示當前目錄,與PATH的格式相同。
export LD_LIBRARY_PATH=目錄1:目錄2:目錄3:......目錄n:.
這個環境變數我們會在下次課程講解Linux靜態函式庫與動態函式庫時詳細介紹。
3.5 環境變數的生效
1)在Shell下,用export設定的環境變數對目前Shell立即生效,Shell退出後失效。
2)在腳本檔案中設定的環境變數不會立即生效,退出Shell後重新登入時才生效,或用source指令讓它立即生效,例如:
# source /etc/profile
3.6 應用經驗
雖然設定環境變數的方法有多種,但建議大家系統環境變數在/etc/profile .d目錄中配置,使用者環境變數在使用者的.bash_profile中配置,不建議在其它腳本檔案中配置環境變量,會增加系統運作的麻煩,容易出錯。
相關推薦:《Linux影片教學》
以上是一起聊聊linux作業系統的常用指令及環境變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行代码,即编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。使用交叉编译的原因:1、目标系统没有能力在其上进行本地编译;2、有能力进行源代码编译的平台与目标平台不同。

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

在linux中,rpc是远程过程调用的意思,是Reomote Procedure Call的缩写,特指一种隐藏了过程调用时实际通信细节的IPC方法;linux中通过RPC可以充分利用非共享内存的多处理器环境,提高系统资源的利用率。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),