Linux :
1、Linux的發(fā)展史 unix---minix---linux
Unix
是Ken Thompson當(dāng)時是為了讓一臺空閑的電腦上能夠運行“星際旅行”游行松忍,用了1個月的時間 編寫出了 Unix操作系統(tǒng)的原型播歼,BCPL語言 為基礎(chǔ)劣坊,設(shè)計出很簡單且很接近硬件的 B語言(取BCPL的首字母)砍聊,并且他用B語言寫了第一個UNIX操作系統(tǒng)丈氓。因為B語言的跨平臺性較差,為了能夠在其他的電腦上也能夠運行這個非常棒的Unix操作系統(tǒng)宫纬,Dennis Ritchie和Ken Thompson 從B語言的基礎(chǔ)上準(zhǔn)備研究一個更好的語言抚岗,然后他倆在B語言的基礎(chǔ)上又研發(fā)出了先在大名鼎鼎的C語言,然后用C語言寫出了Unix操作系統(tǒng)哪怔。
Minix
因為AT&T(通用電氣)的政策改變宣蔚,在Version 7 Unix推出之后,發(fā)布新的使用條款认境,將UNIX源代碼私有化胚委,在大學(xué)中不再能使用UNIX源代碼。Andrew S. Tanenbaum(塔能鮑姆)教授為了能在課堂上教授學(xué)生操作系統(tǒng)運作的實務(wù)細(xì)節(jié)叉信,決定在不使用任何AT&T的源代碼前提下亩冬,自行開發(fā)與UNIX兼容的操作系統(tǒng),以避免版權(quán)上的爭議硼身。他以小型UNIX(mini-UNIX)之意硅急,將它稱為MINIX。
Linux
因為Minix只是教學(xué)使用佳遂,因此功能并不強营袜,因此Torvalds利用GNU的bash當(dāng)做開發(fā)環(huán)境,gcc當(dāng)做編譯工具丑罪,編寫了Linux內(nèi)核-v0.02荚板,但是一開始Linux并不能兼容Unix,即Unix上跑的應(yīng)用程序不能在Linux上跑吩屹,即應(yīng)用程序與內(nèi)核之間的接口不一致跪另,因為Unix是遵循POSIX規(guī)范的,因此Torvalds修改了Linux煤搜,并遵循POSIX(Portable Operating System Interface免绿,他規(guī)范了應(yīng)用程序與內(nèi)核的接口規(guī)范); 一開始Lin 擦盾,后來經(jīng)過全世界的網(wǎng)友的幫助嘲驾,最終能夠兼容多種硬件;
2厌衙、Linux的基本命令操作
查看文件信息:ls
ls -a顯示指定目錄下所有子目錄與文件距淫,包括隱藏文件
ls -l以列表方式顯示文件的詳細(xì)信息
ls -h配合 -l 以人性化的方式顯示文件大小
通配符:
*文件代表文件名中所有字符
ls te*查找以te開頭的文件
ls *html查找結(jié)尾為html的文件
?代表文件名中任意一個字符
ls ?.c只找第一個字符任意婶希,后綴為.c的文件
ls a.?只找只有3個字符榕暇,前2字符為a.,最后一個字符任意的文件
[][”和“]”將字符組括起來喻杈,表示可以匹配字符組中的任意一個彤枢。“-”用于表示字符范圍筒饰。
[abc]匹配a缴啡、b、c中的任意一個
[a-f]匹配從a到f范圍內(nèi)的的任意一個字符
ls [a-f]*找到從a到f范圍內(nèi)的的任意一個字符開頭的文件
ls a-f查找文件名為a-f的文件,當(dāng)“-”處于方括號之外失去通配符的作用
\如果要使通配符作為普通字符使用瓷们,可以在其前面加上轉(zhuǎn)義字符业栅∶敫溃“?”和“*”處于方括號內(nèi)時不用使用轉(zhuǎn)義字符就失去通配符的作用。
ls \*a查找文件名為*a的文件
輸出重定向命令:
?>輸出重定向會覆蓋原來的內(nèi)容
>>輸出重定向則會追加到文件的尾部
分屏顯示:more
管道:|??一個命令的輸出可以通過管道做為另一個命令的輸入 ?就是一頭進(jìn)一頭出
清屏:clear
切換工作目錄: cd ?
cd 切換到當(dāng)前用戶的主目錄(/home/用戶目錄)碘裕,用戶登陸的時候携取,默認(rèn)的目錄就是用戶的主目錄。
cd ~切換到當(dāng)前用戶的主目錄(/home/用戶目錄)
cd .切換到當(dāng)前目錄
cd ..切換到上級目錄
cd -可進(jìn)入上次所在的目錄
顯示當(dāng)前路徑:pwd
創(chuàng)建目錄:mkdir
通過mkdir命令可以創(chuàng)建一個新的目錄帮孔。參數(shù)-p可遞歸創(chuàng)建目錄雷滋。
絕對路徑和相對路徑
相對路徑?在輸入路徑時,最前面不是?/?或者?~文兢,表示相對?當(dāng)前目錄?所在的目錄位置
絕對路徑?在輸入路徑時晤斩,最前面是?/?或者?~,表示從?根目錄/家目錄?開始的具體目錄位置
創(chuàng)建文件:touch
查看歷史命令:history?
查看文件內(nèi)容:cat
編輯文件:gedit
刪除目錄:rmdir?
可使用rmdir命令刪除一個目錄姆坚。必須離開目錄澳泵,并且目錄必須為空目錄,不然提示刪除失敗旷偿。
刪除文件:rm?? ?使用rm命令要小心烹俗,因為文件刪除后不能恢復(fù)
rm -i以進(jìn)行交互式方式執(zhí)行
rm -f強制刪除,忽略不存在的文件萍程,無需提示
rm -r遞歸地刪除目錄下的內(nèi)容幢妄,刪除文件夾時必須加此參數(shù)
建立鏈接文件:ln
ln -s 軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效茫负。
ln硬鏈接:硬鏈接只能鏈接普通文件蕉鸳,不能鏈接目錄。
查看或者合并文件內(nèi)容:cat
文本搜索:grep 可以搜索文件內(nèi)容·
在grep命令中輸入字符串參數(shù)時忍法,最好引號或雙引號括起來潮尝。例如:grep‘a(chǎn) ’1.txt。
grep ?-v顯示不包含匹配文本的所有行(相當(dāng)于求反)
grep -n顯示匹配行及行號
grep -i忽略大小寫
^a行首,搜尋以 m 開頭的行饿序;grep -n '^a' 1.txt
ke$行尾,搜尋以 ke 結(jié)束的行勉失;grep -n 'ke$' 1.txt
[Ss]igna[Ll]匹配 [] 里中一系列字符中的一個;搜尋匹配單詞signal原探、signaL乱凿、Signal、SignaL的行咽弦;grep -n '[Ss]igna[Ll]' 1.txt
.(點)匹配一個非換行符的字符徒蟆;匹配 e 和 e 之間有任意一個字符,可以匹配 eee型型,eae段审,eve,但是不匹配 ee闹蒜,eaae寺枉;grep -n 'e.e' 1.txt
查找文件:find
find ./ -nametest.sh查找當(dāng)前目錄下所有名為test.sh的文件
find ./ -name '*.sh'查找當(dāng)前目錄下所有后綴為.sh的文件
find ./ -name "[A-Z]*"查找當(dāng)前目錄下所有以大寫字母開頭的文件
find /tmp -size 2M查找在/tmp 目錄下等于2M的文件
find /tmp -size +2M查找在/tmp 目錄下大于2M的文件
find /tmp -size -2M查找在/tmp 目錄下小于2M的文件
find ./ -size +4k -size -5M查找當(dāng)前目錄下大于4k抑淫,小于5M的文件
find ./ -perm 0777查找當(dāng)前目錄下權(quán)限為 777 的文件或目錄
拷貝文件:cp
cp命令的功能是將給出的文件或目錄復(fù)制到另一個文件或目錄中,相當(dāng)于DOS下的copy命令
-f已經(jīng)存在的目標(biāo)文件而不提示
-i交互式復(fù)制型凳,在覆蓋目標(biāo)文件之前將給出提示要求用戶確認(rèn)
-r若給出的源文件是目錄文件丈冬,則cp將遞歸復(fù)制該目錄下的所有子目錄和文件,目標(biāo)文件必須為一個目錄名甘畅。
-v顯示拷貝進(jìn)度
移動文件:mv
用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名往弓。
-f禁止交互式操作疏唾,如有覆蓋也不會給出提示
-i確認(rèn)交互方式操作,如果mv操作將導(dǎo)致對已存在的目標(biāo)文件的覆蓋函似,系統(tǒng)會詢問是否重寫槐脏,要求用戶回答以避免誤覆蓋文件
-v顯示移動進(jìn)度
歸檔管理:tar
tar是Unix/Linux中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中撇寞,也可以把檔案文件解開以恢復(fù)數(shù)據(jù)顿天。
tar使用格式 tar [參數(shù)] 打包文件名 文件
tar命令很特殊,其參數(shù)前面可以使用“-”蔑担,也可以不使用牌废。
-c生成檔案文件,創(chuàng)建打包文件
-v列出歸檔解檔的詳細(xì)過程啤握,顯示進(jìn)度
-f指定檔案文件名稱鸟缕,f后面一定是.tar文件,所以必須放選項最后
-t列出檔案中包含的文件
-x解開檔案文件
歸檔:tar -cvf test.tar * ?歸檔是沒有壓縮功能的
解檔:tar -xvf test.tar
文件壓縮解壓:gzip
-d解壓
-r壓縮所有子目錄
壓縮用法:tar cvzf 壓縮包包名 文件1 文件2 ...?
解壓用法: tar zxvf 壓縮包包名
歸檔并壓縮:tar -zcvf test.tar.gz *
解壓縮:tar -zxvf test.tar.gz
解壓到指定目錄:-C (大寫字母“C”)
文件壓縮解壓:bzip2
tar與bzip2命令結(jié)合使用實現(xiàn)文件打包排抬、壓縮(用法和gzip一樣)懂从。
tar只負(fù)責(zé)打包文件,但不壓縮蹲蒲,用bzip2壓縮tar打包后的文件番甩,其擴展名一般用xxxx.tar.bz2。
在tar命令中增加一個選項(-j)可以調(diào)用bzip2實現(xiàn)了一個壓縮的功能届搁,實行一個先打包后壓縮的過程缘薛。
壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
文件壓縮解壓:zip、unzip
通過zip壓縮文件的目標(biāo)文件不需要指定擴展名咖祭,默認(rèn)擴展名為zip掩宜。
壓縮文件:zip [-r] 目標(biāo)文件(沒有擴展名) 源文件
解壓文件:unzip -d 解壓后目錄文件 壓縮文件