開源協(xié)定
- GPL開源協(xié)定:
http://www.gnu.org/licenses/gpl-1.0.html
如果程序使用并且修改了GPL代碼,那么相應(yīng)程序也必須要開源,否則就不能使GPL的軟件,是否把程序商用和GPL沒關(guān)系。
使用開源軟件并不受GPL約束,只有基于開源軟件,修改開源軟件的源碼的時(shí)才受 GPL約束。
GPL開源軟件都不能賣版權(quán),因?yàn)槭枪舶鏅?quán)
- LGPL開源協(xié)定:
http://www.gnu.org/copyleft/lesser.html - GPLv2開源協(xié)定:
http://www.gnu.org/licenses/gpl-2.0.html - GPLv3開源協(xié)定:
http://www.gnu.org/licenses/gpl-3.0.html - BSD開源協(xié)定:
1、如果二次發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來的代碼中的BSD協(xié)定;
2、如果二次發(fā)布產(chǎn)品是二進(jìn)制格式的庫或程序,則需要在發(fā)布的文檔或版權(quán)聲明中說明包含原來的代碼中的BSD協(xié)定;
3、不可以用開源代碼的作者或組織,以及原來的產(chǎn)品的名字做市場(chǎng)推廣。 - Apache開源協(xié)定:
https://www.apache.org/licenses/LICENSE-2.0.html
開源關(guān)系圖 ● 圖片轉(zhuǎn)自 www.chinaunix.net badb0y的blog(http://badb0y.blog.chinaunix.net/)
Linux基礎(chǔ)知識(shí)
命令提示符
# COMMAND OPTIONS ARGUMENTS
當(dāng)發(fā)起一個(gè)命令,表示請(qǐng)求內(nèi)核將某個(gè)二進(jìn)制程序運(yùn)行為一個(gè)進(jìn)程,由程序轉(zhuǎn)換為進(jìn)程,由靜態(tài)轉(zhuǎn)換為動(dòng)態(tài)(有生命周期);并且由OPTIONS對(duì)命令進(jìn)行修正;作用于所給定的參數(shù)ARGUMENTS上。
命令本身是一個(gè)可執(zhí)行的程序文件:二進(jìn)制格式的文件,有可能會(huì)調(diào)用共享庫文件
多數(shù)系統(tǒng)程序文件都存放于:/bin,/sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin目錄
普通命令存放于:/bin, /sbin, /usr/local/bin目錄
管理命令存放于:/sbin, /usr/sbin, /usr/local/sbin目錄
共享庫文件多數(shù)存放于:/lib,/lib64, /usr/lib64, /usr/local/lib, /usr/local/lib64
32位系統(tǒng)的庫存放于:/lib /usr/lib /usr/local/lib
64位系統(tǒng)的庫存放于:/lib64 /usr/lib64 /usr/local/lib64
查看路徑下的文件命令:
~]# ls (以上文件路徑)
注意:并非所有的命令都有一個(gè)在某目錄與之對(duì)應(yīng)的可執(zhí)行程序文件
命令必須遵循特定格式規(guī)范:
Linux為:ELF,Windows為:exe、msi,等
查看程序類型及相關(guān)信息:
~]# file /bin/ls
命令分為兩類:
- 由shell程序 的自帶的命令:內(nèi)置命令(builtin)
- 獨(dú)立的可執(zhí)行程序文件,文件名即命令名:外部命令
shell程序是獨(dú)特的程序,負(fù)責(zé)解析用戶提供的命令:
環(huán)境變量:PATH決定了從哪些路徑中查找用戶鍵入的命令字符串所對(duì)應(yīng)的命令文件,查找次序:自左而右。
~]# echo $ PATH
按空格分隔命令各單元
查看命令類型:
~]# type COMMAND
選項(xiàng)OPTIONS:
指定命令的運(yùn)行特性:
選項(xiàng)有兩種表現(xiàn)形式
- 短選項(xiàng):-C,-l,-d
注意:有些命令的選項(xiàng)沒有-
如果同一命令同時(shí)使用多個(gè)短選項(xiàng),多數(shù)可合并,如:
~]# ls -l -d /var
等同于
~]# ls -ld /var
- 長選項(xiàng):--word,--help,--human,--readable。長選項(xiàng)不能合并。
注意:有些選項(xiàng)可以帶參數(shù),此參數(shù)稱為選項(xiàng)參數(shù)。長選選項(xiàng)的參數(shù)由“=”號(hào)連接,短選項(xiàng)的參數(shù)由空格分隔
參數(shù) ARGUMENTS
命令的作用或生效對(duì)象
注意:不同的命令的參數(shù)格式是不一樣的,有些命令可同時(shí)帶多個(gè)參數(shù),中間以空格分隔,如:ls -ld /var /etc
獲取命令的使用幫助:
- 內(nèi)部命令幫助:
~]# help COMMAND
外部命令幫助:
(1. 命令自帶簡(jiǎn)要格式的使用幫助
~]# COMMAND --help
(2.使用手冊(cè):manual
位置:/usr/share/man
~]# man COMMAND
SECTION:
- NAME:功能性說明
- SYNOPSIS:語法格式
- DESCRIPTION:描述
- OPTIONS:選項(xiàng)
- EXAMPLES:使用示例
- AUTHOR:作者
- BUGS:報(bào)告程序BUG的方式
- SEE ALSO:參考
……
操作方法
“[]”內(nèi)為可選內(nèi)容
“<>”內(nèi)為必選內(nèi)容
”a|b|c“為多選一
“……”為同類內(nèi)容可出現(xiàn)多個(gè):
使用手冊(cè):是壓縮格式的文件,有章節(jié)之分。
/usr/share/man
man1,man2,……
上例中尾數(shù)的含義
1:用戶命令
2:系統(tǒng)調(diào)用
3:C庫調(diào)用
4:設(shè)備文件或特殊文件
5:文件格式(配置文件格式)
6:游戲使用幫助
7: 雜項(xiàng)
8:管理工具及守護(hù)進(jìn)行
~]# man CHAPTER COMMAND
注意:并非每個(gè)COMMAND在所有章節(jié)下都有手冊(cè)
查看命令:
~]# whatis COMMAND
注意:其執(zhí)行過程是查詢數(shù)據(jù)庫進(jìn)行的
手動(dòng)更新數(shù)據(jù)庫
~]# makewhatis
man命令翻頁操作
向文件尾部翻一屏:空格鍵
向文件首部翻一屏:b
向文件尾部翻半屏:Ctrl + d
向文件首部翻半屏:Ctrl + u
向文件尾部翻一行:回車鍵
向文件首部翻一行:k
轉(zhuǎn)到最后一行:g
跳轉(zhuǎn)指定行:#G
文本搜索:
/keyword:從文件首部向文件尾部依次查找,不區(qū)分大小寫
?keyword:從文件尾部向文件首部依次查找
n:與查找命令方向相同
N:與查找命令方向相反
退出:
q:quit
選項(xiàng):
-M /PATH/TO/SOMEDIR:到指定目錄下查找命令手冊(cè)并打開手冊(cè)
練習(xí):
獲取useradd命令用法
- 添加用戶gentoo
- 添加用戶slackware,要求指定其所用的shell為/bin/tcsh
(3.info COMMAND
獲取命令的在線文檔
(4.很多應(yīng)用程序會(huì)自帶幫助文檔:/usr/share/doc/APP-VERSION
README:程序的相關(guān)信息
INSTALL:安裝幫助
CHANGES:版本迭代時(shí)的改動(dòng)信息
(5.主流發(fā)行版官方文檔
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/
(6.程序官方文檔
官方站點(diǎn)上的“Document(Doc)”
(7.搜索引擎
google
如文件參考手冊(cè)不能直接查到,可以先用whereis查找文件路徑,看文件在man目錄下的哪個(gè)文件,如查到:man/3/printf 則可用~]# man 3 printf命令查看相關(guān)參考手冊(cè)