1. 圖文并茂解釋開源許可證 GPL、BSD、MIT、Mozilla、Apache和LGPL的區(qū)別?
GPL:是通用性許可證(General Public License,簡稱GPL)的簡稱。GPL同其他的自由軟件許可證一樣,許可社會公眾享有運行、復(fù)制軟件的的自由;發(fā)行傳播軟件的自由;獲得軟件源碼的自由,以及改進軟件并將自己作出的改進版本想社會發(fā)行傳播的自由。
BSD:是寬容自由軟件許可證中的一員,在軟件復(fù)用上給予了最小限度的限制。BSD協(xié)議允許作者使用該協(xié)議下的資源,將其并入私人版本的軟件,該軟件可使用閉源軟件協(xié)議發(fā)布。
MIT:MIT許可證(The MIT License)是許多軟件授權(quán)條款中,被廣泛使用的其中一種。與其他常見的軟件授權(quán)條款(如GPL、LGPL、BSD)相比,MIT是相對寬松的軟件授權(quán)條款。
Mozilla:MPL(Mozilla Public License 1.1)MPL協(xié)議允許免費重發(fā)布、免費修改,但要求修改后的代碼版權(quán)歸軟件的發(fā)起者 。這種授權(quán)維護了商業(yè)軟件的利益,他要求基于這種軟件的修改無償貢獻版權(quán)給該軟件。這樣,圍繞該軟件的所有代碼的版權(quán)都集中在發(fā)起開發(fā)人的手中。但MPL是允許修改,無償使用得。MPL軟件對鏈接沒有要求。
Apache:
Apache License(Apache許可證),是Apache軟件基金會發(fā)布的一個自由軟件許可證。Apache Licence是著名的非盈利開源組織Apache采用的協(xié)議。該協(xié)議和BSD類似,同樣鼓勵代碼共享和最終原作者的著作權(quán),同樣允許源代碼修改和再發(fā)布。但是也需要遵循以下條件:
需要給代碼的用戶一份Apache Licence。
如果修改了代碼,需要在被修改的文件中說明。
在衍生的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議,商標,專利聲明和其他原來作者規(guī)定需要包含的說明。
如果再發(fā)布的產(chǎn)品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但是不可以表現(xiàn)為對Apache Licence構(gòu)成更改。
Apache Licence是對商業(yè)應(yīng)用友好的許可。使用者也可以在需要的時候修改代碼來滿足并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售。
使用這個協(xié)議的好處是:
永久權(quán)利,一旦被授權(quán),永久擁有。
全球范圍的權(quán)利,在一個國家獲得授權(quán),適用于所有國家。假如你在美國,許可是從印度授權(quán)的,也沒有問題。
授權(quán)免費,無版稅, 前期、后期均無任何費用。
授權(quán)無排他性,任何人都可以獲得授權(quán)。
授權(quán)不可撤消,一旦獲得授權(quán),沒有任何人可以取消。比如,你基于該產(chǎn)品代碼開發(fā)了衍生產(chǎn)品,你不用擔心會在某一天被禁止使用該代碼。
LGPL:
LGPL是GPL的一個為主要為類庫使用設(shè)計的開源協(xié)議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須采用GPL協(xié)議不同。LGPL允許商業(yè)軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業(yè)軟件的代碼。這使得采用LGPL協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。
但是如果修改LGPL協(xié)議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因此LGPL協(xié)議的開源代碼很適合作為第三方類庫被商業(yè)軟件引用,但不適合希望以LGPL協(xié)議代碼為基礎(chǔ),通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。
GPL/LGPL都保障原作者的知識產(chǎn)權(quán),避免有人利用開源代碼復(fù)制并開發(fā)類似的產(chǎn)品。
許可證的對比與總結(jié):
對于一個開源協(xié)議來說,規(guī)定得太寬松,會導(dǎo)致作者喪失對開源軟件的很多權(quán)利,規(guī)定的太嚴格,又不利于開源軟件的使用和傳播。用一張圖總結(jié)以上介紹的幾個主流開源許可證的權(quán)限寬松情況:

2. 安裝各發(fā)行版系統(tǒng)的安裝(centos, rockylinux, ubuntu, 等) 【任選1個】
1)先新建一個虛擬機

2)點擊下一步先不用選擇鏡像,選稍后安裝操作系統(tǒng)

3)選擇Linux操作系統(tǒng),下面版本根據(jù)需要選擇,這里選擇的是centos7

4)填寫即將要創(chuàng)建的虛擬機的名稱與選擇虛擬機存放的位置

5)選擇要安裝的虛擬機的磁盤大小

6)點擊自定義硬件選擇鏡像與調(diào)整虛擬機配置



7)現(xiàn)在可以進行開啟虛擬機進行系統(tǒng)的安裝了




3. Linux中總結(jié)
1)如何通過一個簡短的關(guān)鍵字 【man -k man -k process 】,例如process 獲取相關(guān)的命令。
man -k? 命令? 是通過模糊查詢來查看命令描述,當出現(xiàn)mk: nothing appropriate. 時是因為沒有更新索引庫,man -k是和whatis公共用索引庫的所以需要執(zhí)行mandb 進行update索引庫

man -k? mkidr 與 能 mkdir 功能一致,都是進行顯示命令的描述簡要的描寫此命令的作用,但是man -k 是模糊匹配想要精確最好用whatis

2)通過命令的描述,選擇一個命令,獲取命令的man文檔?!?man top】?

3)解讀man文檔,man分幾個部分?man每個部分的解釋,特別是語法部分。<>, [] ...等各代表什么含義。
man分為以下9個部分
1、Executable? programs or shell commands? ? ?可執(zhí)行程序和shell命令
2、System calls? (functions provided by the kernel)? ? ? 系統(tǒng)調(diào)用
3、Library calls? (functions within program libraries)? ? (C語言)庫函數(shù)
4、Special files? (usually found in /dev)? ? ? ? ? ?特殊文件
5、File formats? and conventions, e.g. /etc/passwd? ? ? ?文件格式
6、Games? ? ? ?游戲
7、Miscellaneous? (including macro packages and conventions), e.g. man(7), groff(7)? ? ? ? 雜項
8、System? administration commands (usually only for root)? ? ? ?系統(tǒng)管理員命令(通常只用于roor用戶)
9、Kernel? routines [Non standard]? ? ?內(nèi)核例程(非標準)
[? ]?可選內(nèi)容
<>?必選內(nèi)容
a|b?二選一
{ }?分組
...?同一內(nèi)容可出現(xiàn)多次
4)根據(jù)語法部分 簡要的寫幾個操作。

4. 切換到/etc/目錄,列出fstab文件的詳細信息,詳細解釋fstab一行,每個或每幾個字符的詳細含義。 【cd /etc; ls -l /etc/fstab】
1)進入到cd /etc進入到etc目錄下

①第一列:Device?磁盤設(shè)備文件或者該設(shè)備的Label或者UUID
②第二列:Mount point??設(shè)備的掛載點,就是要掛載到哪個目錄下。
③第三列:filesystem??磁盤文件系統(tǒng)的格式,包括ext2、ext3、reiserfs、nfs、vfat、xfs等
④第四列:parameters??文件系統(tǒng)的參數(shù)
Async/sync? ? ? ? ? ? ? 設(shè)置是否為同步方式運行,默認為async
auto/noauto? ? ? ? ? ? ? 當下載mount -a?的命令時,此文件系統(tǒng)是否被主動掛載。默認為auto
rw/ro? ? ? ? ? ? ? ? ? ? ? ? ?是否以以只讀或者讀寫模式掛載
exec/noexec? ? ? ? ? ? ?限制此文件系統(tǒng)內(nèi)是否能夠進行"執(zhí)行"的操作
user/nouser? ? ? ? ? ? ? 是否允許用戶使用mount命令掛載
suid/nosuid? ? ? ? ? ? ? 是否允許SUID的存在
Usrquota? ? ? ? ? ? ? ? ? ?啟動文件系統(tǒng)支持磁盤配額模式
Grpquota? ? ? ? ? ? ? ? ? 啟動文件系統(tǒng)對群組磁盤配額模式的支持
Defaults? ? ? ? ? ? ? ? ? ? ?同時具有rw,suid,dev,exec,auto,nouser,async等默認參數(shù)的設(shè)置
⑤第五列:能否被dump備份命令作用
dump是一個用來作為備份的命令。通常這個參數(shù)的值為0或者1
? ? ? ? ?0? ? ? ? ? 代表不要做dump備份
???????? 1? ? ? ? ? ?代表要每天進行dump的操作
???????? 2? ? ? ? ? ?代表不定日期的進行dump操作
⑥第六列:是否檢驗扇區(qū)
開機的過程中,系統(tǒng)默認會以fsck檢驗我們系統(tǒng)是否為完整
? ? ? ? ?0? ? ? ? ? ?代表不要檢驗
? ? ? ? ?1? ? ? ? ? ?代表最早檢驗(一般根目錄會選擇)
? ? ? ? ?2? ? ? ? ? ?代表1級別檢驗完成之后進行檢驗
5. 簡要說明FHS結(jié)構(gòu)。
Linux的文件系統(tǒng)層級結(jié)構(gòu):FileSystem Hierarchy Standdard(簡稱FHS)定義了在Linux系統(tǒng)中的目錄結(jié)構(gòu)和目錄內(nèi)容如下:

1、/:根目錄,位于Linux文件系統(tǒng)目錄結(jié)構(gòu)的頂層,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應(yīng)該和根目錄放置在一個分區(qū)中。
2、/bin,/usr/bin:這兩個目錄為命令文件目錄,也稱為二進制目錄。包含了供系統(tǒng)管理員及普通用戶使用的重要的linux命令和二進制(可執(zhí)行)文件,包含shell解釋器等。
3、/boot: 該目錄中存放系統(tǒng)的內(nèi)核文件和引導(dǎo)裝載程序文件。
4、/dev: 設(shè)備(device)文件目錄,存放linux系統(tǒng)下的設(shè)備文件,訪問該目錄下某個文件,相當于訪問某個設(shè)備,存放連接到計算機上的設(shè)備(終端、磁盤驅(qū)動器、光驅(qū)及網(wǎng)卡等)的對應(yīng)文件。
5、/etc: 系統(tǒng)配置文件存放的目錄,該目錄存放系統(tǒng)的大部分配置文件和子目錄,該目錄下的文件由系統(tǒng)管理員來使用,普通用戶對大部分文件有只讀權(quán)限。
6、/home: 系統(tǒng)默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下。
7、/lib,/lib64(存放64位的系統(tǒng)函數(shù)庫):系統(tǒng)使用的函數(shù)庫的目錄,程序在執(zhí)行過程中,需要調(diào)用一些額外的參數(shù)時需要函數(shù)庫的協(xié)助,該目錄下存放了各種編程語言庫。
8、/mnt,/media:?mnt目錄主要用來臨時掛載文件系統(tǒng),為某些設(shè)備提供默認掛載點,如cdrom。
9、/opt:?給主機額外安裝軟件所擺放的目錄。
10、/proc:?此目錄的數(shù)據(jù)都在內(nèi)存中,如系統(tǒng)核心,外部設(shè)備,網(wǎng)絡(luò)狀態(tài),由于數(shù)據(jù)都存放于內(nèi)存中,所以不占用磁盤空間,比較重要的目錄有/proc/cpuinfo等。
11、/root:系統(tǒng)管理員root的家目錄。
12、/run:目錄中存放的是自系統(tǒng)啟動以來描述系統(tǒng)信息的文件
13、/sbin:放置系統(tǒng)管理員使用的可執(zhí)行命令,如fdisk、shutdown、mount等。與/bin不同的是,這幾個目錄是給系統(tǒng)管理員root使用的命令,一般用戶只能"查看"而不能設(shè)置和使用。
14、/srv:?服務(wù)啟動之后需要訪問的數(shù)據(jù)目錄,如www服務(wù)需要訪問的網(wǎng)頁數(shù)據(jù)存放在/srv/www內(nèi)。
15、 /sys: 掛載點上掛載sysfs 虛擬文件系統(tǒng),我們可以通過sysfs 文件系統(tǒng)訪問 Linux 內(nèi)核
16、/tmp:?一般用戶或正在執(zhí)行的程序臨時存放文件的目錄,任何人都可以訪問,重要數(shù)據(jù)不可放置在此目錄下。
17、/usr:?應(yīng)用程序存放目錄,/usr/bin?存放應(yīng)用程序,?/usr/share?存放共享數(shù)據(jù),/usr/lib 不能直接運行的,存放許多程序運行所必需的一些函數(shù)庫文件。
18、/usr/share/man:??程序說明文件存放目錄,使用 man ls時會查詢/usr/share/man/man1/ls.1.gz的內(nèi)容。
19、/var:?放置系統(tǒng)執(zhí)行過程中經(jīng)常變化的文件,如隨時更改的日志文件 /var/log。
6. 用自己的理解總結(jié) 文件管理,用戶管理,組用戶,權(quán)限管理相關(guān)的命令。文件: 【touch/rm/rmdir/cat/head/less/more】。用戶及組:user/group 【useradd/userdel/usermode; groupadd/groupdel/groupmod; chsh/...】。權(quán)限 【chmod/chown/setfacl】"
1)文件: 【touch/rm/rmdir/cat/head/less/more】。
touch命令:如文件已存在,則用于修改文件時間屬性,包括存取時間和更改時間,如文件不存在,則用于新建空白文件。
rm命令:的功能為刪除?個?錄中的?個或多個?件或?錄,它也可以將某個?錄及其下的所有?件及??錄均刪除。對于鏈接?件,只是刪除了鏈接,原有?件均保持不變。
rmdir命令:?來刪除空?錄,當?錄不再被使?時,或者磁盤空間已達到使?限定值,就需要刪除失去價值的?錄。利?rmdir 命令可以從?個?錄中刪除?個或多個空的??錄。該命令從?個?錄中刪除?個或多個??錄
cat命令:1. ?次顯?整個?件。cat filename? ?2. 從鍵盤創(chuàng)建?個?件。cat > filename? ? 只能創(chuàng)建新?件,不能編輯已有?件.? ? ?3. 將?個?件合并為?個?件: cat file1 file2 > file
head 命令:可用于查看文件的開頭部分的內(nèi)容,有一個常用的參數(shù)?-n?用于顯示行數(shù),默認為 10,即顯示 10 行的內(nèi)容。
less命令:也可以分頁顯??件,和more命令的區(qū)別就在于它?持上下鍵卷動屏幕,當結(jié)束瀏覽時,只要在less命令的提?符“: ”下按q鍵即可。
more命令:一次只顯示一個屏幕高度的內(nèi)容,可以讓屏幕在顯?滿?屏幕時暫停,此時可按空格健繼續(xù)顯?下?個畫?,或按Q鍵停?顯?。
2)用戶及組:user/group 【useradd/userdel/usermod; groupadd/groupdel/groupmod; chsh/...】。
useradd命令:可用來建立用戶賬號,他和adduser命令是相同的。賬號建好之后,再用passwd設(shè)定賬號的密碼。使用useradd命令所建立的賬號,實際上是保存在/etc/passwd文本文件中。
userdel命令:用于刪除指定的用戶,以及與用戶相關(guān)的文件。若不加選項,則僅刪除用戶帳號,而不刪除相關(guān)文件。?于修改?戶的基本信息。?
usermod 命令:用于修改用戶的基本信息,不允許你改變正在線上的使?者賬號名稱,當usermod 命令?來改變user ID時,必須確認這名user 沒有在電腦上執(zhí)?任何程序。
groupadd 命令:用于創(chuàng)建一個新的工作組。
groupdel 命令:用于刪除群組。需要從系統(tǒng)上刪除群組時,可用groupdel(group delete)指令來完成這項工作。倘若該群組中仍包括某些用戶,則必須先刪除這些用戶后,方能刪除群組。
groupmod 命令用于更改群組ID或名稱。
chsh命令:作用是更改使用者shell設(shè)定,它的使用權(quán)限是所有使用者。
3)權(quán)限 【chmod/chown/setfacl】
chmod命令:可以用來修改用戶對某個文件和文件夾的(所有者、所屬組、其他用戶、所有用戶)讀寫執(zhí)行權(quán)限。
chown命令:用于改變某個文件或目錄的所有者和所屬的組,該命令可以向某個用戶授權(quán),使該用戶變成指定文件的所有者或者改變文件所屬的組。
setfacl命令:可以對每一個文件或目錄設(shè)置更精確的文件權(quán)限??梢葬槍我挥脩?、單一文件或目錄來進行r,w,x的權(quán)限控制。