本文簡(jiǎn)單介紹OpenFOAM使用過(guò)程中可能會(huì)涉及到的Linux常識(shí)。
注: 本文內(nèi)容取自Wolf Dynamics公司的培訓(xùn)教材“The Linux Terminal: A Crash Introduction”,。
” 1 Linux簡(jiǎn)介 Linux是一個(gè)類Unix系統(tǒng),。UNIX是由最初的AT&T UNIX衍生而來(lái)的多任務(wù)、多用戶,、穩(wěn)定和便攜的計(jì)算機(jī)操作系統(tǒng)系列,,由貝爾實(shí)驗(yàn)室在20世紀(jì)70年代開(kāi)發(fā)??梢栽诠P記本電腦,、臺(tái)式PC,、服務(wù)器和超級(jí)計(jì)算機(jī)中找到UNIX/Linux。
UNIX/Linux系統(tǒng)由三個(gè)組件組成:內(nèi)核,、外殼和程序,。
內(nèi)核是操作系統(tǒng)的中樞,。它為程序分配時(shí)間和資源,,并處理調(diào)度和系統(tǒng)管理(文件、進(jìn)程,、設(shè)備,、網(wǎng)絡(luò)、內(nèi)存等),。 外殼(或終端)充當(dāng)用戶和內(nèi)核之間的接口,。 程序是用戶使用的各種應(yīng)用程序。Linux中的大多數(shù)程序都是開(kāi)源和免費(fèi)的,,但也可以找到商業(yè)程序,。有些程序可能有GUI界面,或者只能通過(guò)終端訪問(wèn),。 一些關(guān)于Linux的描述:
最初是由Linus Torvalds開(kāi)發(fā)的 Linux得到世界范圍的社區(qū)(志愿者和商業(yè)實(shí)體)的支持 免費(fèi)開(kāi)放源代碼(內(nèi)核) 廣泛的Linux應(yīng)用程序都是免費(fèi)和開(kāi)源的,。 它可以安裝在各種各樣的硬件上(筆記本電腦、臺(tái)式PC,、服務(wù)器,、超級(jí)計(jì)算機(jī)、手機(jī),、嵌入式微芯片等) Linux系統(tǒng)安全,、穩(wěn)定、快速,、高度可配置 它是開(kāi)發(fā)應(yīng)用程序的理想操作系統(tǒng),。它附帶了許多編譯器、解釋器和庫(kù) 大多數(shù)現(xiàn)代Linux版本都帶有GUI(類似于Windows或MacOSX),,它提供了一種與操作系統(tǒng)交互的簡(jiǎn)單方式 對(duì)于帶有GUI的程序未涵蓋的操作,,或當(dāng)沒(méi)有可用的圖形界面時(shí),需要終端知識(shí) 一些常見(jiàn)的Linux操作系統(tǒng)包括:Red Hat,、CentOS,、Fedora、OpenSUSE,、Slackware,、Debian、Ubuntu,、Mint,、Arch等,。
2 開(kāi)源軟件 開(kāi)源(Open Source)指的是人們可以修改和共享的東西,它們被設(shè)計(jì)為可公開(kāi)訪問(wèn),。開(kāi)源軟件是包含源代碼的軟件,,任何人都可以對(duì)其代碼進(jìn)行檢查、修改和增減,。開(kāi)源軟件通常以公共協(xié)作方式開(kāi)發(fā)的,,并免費(fèi)提供。
當(dāng)前有許多開(kāi)放源碼軟件許可證,,這里僅列舉一些常用的:
GNU General Public License (GPL) European Commission License (EUPL) 3 GPL OpenFOAM遵循GNU通用公共許可證(GNU General Public License,,GPL)。GPL的一些主要特點(diǎn)包括:
根據(jù)GNU通用公共許可證(GPL),,用戶擁有復(fù)制,、分發(fā)和/或修改源代碼的法律許可 包括根據(jù)GPL許可的源代碼的軟件繼承GPL許可證 如果重新分發(fā)已編譯的GPL軟件的二進(jìn)制文件(免費(fèi)或收費(fèi)),則必須由發(fā)行商提供源代碼 該許可證旨在提供自由,,特別是它不會(huì)強(qiáng)迫軟件用戶公開(kāi)修改或開(kāi)發(fā),。這意味著GPL軟件可以用作內(nèi)部專有軟件的基礎(chǔ) 當(dāng)我們談到自由軟件時(shí),我們指的是自由,,而不是價(jià)格 通用公共許可證旨在確保您可以自由分發(fā)自由軟件的副本(如果您愿意,,還可以向其收費(fèi))、您可以收到源代碼或可以在需要時(shí)獲得源代碼,、您可以在新的免費(fèi)程序中更改軟件或使用軟件的一部分,,并且您知道您可以做這些事情 4 終端 當(dāng)我們談?wù)揕inux終端時(shí),我們談?wù)摰氖且豢钅M物理終端VT220或其前身VT102的軟件,。
終端仿真器或shell為用戶和操作系統(tǒng)之間的接口,。shell是一個(gè)讀取終端中的命令(從鍵盤(pán))并將結(jié)果發(fā)回終端(到屏幕)的程序,其充當(dāng)命令行解釋器或CLI,。
目前有許多命令shell,,僅舉幾個(gè)例子
用shell編寫(xiě)的程序稱為腳本。
在Ubuntu系統(tǒng)中啟動(dòng)shell很容易,,任何位置點(diǎn)擊鼠標(biāo)右鍵,,選擇菜單項(xiàng)Open in terminal
即可開(kāi)啟。在終端中輸入命令echo $SHELL
,,若給出的結(jié)果是/bin/bash
則表示使用的是bash,。
5 常用操作命令 這里簡(jiǎn)單介紹在Linux中可能用到的終端操作命令。
5.1 目錄操作 Linux中與文件操作的命令很多,,這里僅介紹使用頻率最高的幾個(gè),。這些命令包括:pwd、ls、cd,、mkdir,、rmdir、tree,。
1,、pwd命令
pwd命令可以顯示當(dāng)前路徑,如下圖所示,。
2,、ls命令
ls命令用于列出文件路徑下的文件信息,此命令可以帶有參數(shù),。若不帶參數(shù)表示列舉當(dāng)前路徑下的文件信息,。若想要查看路徑下的所有信息,,可以帶有參數(shù)-al
,。
3、cd命令
cd命令用于切換文件路徑,。如下圖所示可以從當(dāng)前路徑切換到指定的文件路徑,。利用命令cd ..
可以進(jìn)入當(dāng)前路徑的父目錄;命令cd ~
和cd
命令可以快速進(jìn)入根目錄,。
4,、mkdir命令
利用mkdir
命令可以創(chuàng)建目錄。如下所示利用mkdir命令創(chuàng)建了一個(gè)名為test的文件夾,。
5,、rmdir命令
利用rmdir
命令可以刪除一個(gè)文件夾。如下所示利用命令rmdir test
刪除了當(dāng)前路徑下的test文件夾,。
若文件夾不是空文件夾,,此時(shí)可以是用rm -r
命令進(jìn)行刪除。
6,、tree命令
tree
命令并非原生命令,,需要單獨(dú)安裝。若為ubuntu系統(tǒng),,可以使用apt-get install tree
命令進(jìn)行安裝,。利用tree命令可以以樹(shù)狀形式顯示文件信息。
tree
命令可以帶有參數(shù)-L
用來(lái)控制顯示深度,,如下面的命令只顯示當(dāng)前目錄下的一級(jí)路徑,。
5.2 文件命令 下面了解一下在Linux終端中操作文件的命令,這些命令包括:cat,、touch,、more、head、tail,、less,、rm、cp,、mv,、file等。
cat
命令可用于創(chuàng)建,、合并和/或顯示文件,。執(zhí)行下面的命令:
mkdir taskcd task cat > file1.txt
這里利用命令cat > file1.txt
創(chuàng)建并打開(kāi)文件file1.txt,之后可以在終端輸入想要輸入的內(nèi)容,,按ctrl+c
組合鍵完成內(nèi)容輸入并寫(xiě)入文件,。
注: 這里的>
符號(hào)為重定向,符號(hào)后面接文件名表示將內(nèi)容輸入到文件中,。
” 此時(shí)可以使用more
命令或任何文本編輯器查看文本文件中的內(nèi)容:
more file1.txt
具體操作如下圖所示,。
顯示文件內(nèi)容可以使用cat
命令,也可以使用more
命令,。
若想要部分顯示文件內(nèi)容,,可以使用head
命令和tail
命令,這兩個(gè)命令可以顯示文件頭部或尾部的少量信息,,在打開(kāi)大文件時(shí)很有用,。
創(chuàng)建一個(gè)文件除了可以使用cat
命令進(jìn)行重定向外,還可以使用touch
命令,。如命令touch file2.txt
可以在當(dāng)前路徑下創(chuàng)建一個(gè)名為file2.txt的文件,。
刪除一個(gè)文件,可以使用rm
命令,。如下所示利用rm
命令刪除file2.txt文件,。
利用cp
命令將一個(gè)文件的內(nèi)容拷貝到另一個(gè)文件。
注: 若想要拷貝文件目錄,,可以使用cp命令帶上參數(shù)-r,。
” 若想要修改文件名稱,可以使用命令mv
,,此命令的本意為移動(dòng)對(duì)象,,不過(guò)如果將一個(gè)文件以不同的名稱移動(dòng)到相同的路徑下,事實(shí)上也是為文件修改名稱,。如下圖所示將文件file2.txt的文件名改為file3.txt,。
向文件追加信息,可以使用cat
命令,。如下所示,。注意使用的是>>
,,若使用>
則會(huì)覆蓋目標(biāo)文件中的內(nèi)容。
5.3 通配符 Linux中有三種通配符:
如圖所示示例,。
5.4 IO重定向 IO重定向通常使用符號(hào)>
及>>
來(lái)實(shí)現(xiàn),。若目標(biāo)文件已存在,利用>
會(huì)覆蓋目標(biāo)文件的內(nèi)容,,而>>
會(huì)將新的內(nèi)容追加到目標(biāo)文件的末尾,。
如下圖所示的示例將命令ls -al
的結(jié)果輸出到文件dir.txt中。
5.5 進(jìn)程處理 Linux常用的進(jìn)程管理命令包括ps,、top,、kill、jobs,、bg,、fg等。
ps
命令可以列舉出系統(tǒng)當(dāng)前正在運(yùn)行的命令進(jìn)程,。
清除進(jìn)程可以使用kill
命令,。首先可以使用ps
命令找到PID,然后利用命令kill PID
關(guān)閉進(jìn)程,。
kill 12
5.6 查看CPU信息 想要查看CPU信息,,可以使用命令lscpu
來(lái)實(shí)現(xiàn),如下圖所示,。
5.7 信息查找 在文件或目錄中查找信息,可以使用grep,、find,、which
等命令實(shí)現(xiàn)。
如下圖所示命令在根目錄/
中查找存在字符串hostname文件夾,。
若想要查找包含字符串的文件,,可以使用命令grep
,如下圖所示命令grep -r -n "user" /etc
為在路徑/etc
中查找包含字符串user的文件,。-r
表示搜索子文件夾中的文件,,-n
表示輸出行號(hào)。
若想要找尋linux命令所在的路徑,,可以使用命令which
,,如下圖所示為輸出命令find
所在的文件路徑。
5.8 命令組合 linux中可以將多個(gè)命令組合在一起使用,。這里可以使用|
及xargs
來(lái)實(shí)現(xiàn),。
如下圖所示命令ls -lR /usr/bin/ | grep "wc"
列舉出路徑usr/bin的詳細(xì)信息,并在其中查找存在字符串wc的文件,。
xargs可以直接調(diào)用命令,,如下圖所示的命令操作,先利用touch創(chuàng)建了5個(gè)文件,然后利用rm命令刪除f1.txt與f5.txt,。
5.9 壓縮與解壓文件 Linux中有非常多的用于文件壓縮與解壓的命令,,比較常用的如tar、zip,、unzip等,。
如當(dāng)前路徑下存在一個(gè)名為dir.txt的文件,現(xiàn)在想要壓縮dir.txt文件,,可以使用下面的命令將其壓縮為文件dir.tar.gz:
tar -czvf dir.tar.gz dir.txt
若想要解壓dir.tar.gz文件,,可以使用命令:
tar -xzvf filename.tar.gz
也可以使用zip和unzip命令,與上面等同命令形式為:
zip dir.zip dir.txt unzip dir.zip
zip命令不是linux系統(tǒng)內(nèi)置命令,,在使用此命令之前可以使用sudo apt install zip
先行安裝,。