一、Linux背景
Linux是一種自由和開(kāi)放源代碼的類(lèi)UNIX操作系統(tǒng),該操作系統(tǒng)的內(nèi)核由林納斯托瓦茲在1991年首次發(fā)布,之后,在加上用戶空間的應(yīng)用程序之后,就成為了Linux操作系統(tǒng)。嚴(yán)格來(lái)講,Linux只是操作系統(tǒng)內(nèi)核本身,但通常采用“Linux內(nèi)核”來(lái)表達(dá)該意思。而Linux則常用來(lái)指基于Linux內(nèi)核的完整操作系統(tǒng),它包括GUI組件和許多其他實(shí)用工具
GNU通用公共許可協(xié)議(GNU General Public License,簡(jiǎn)稱(chēng)GNU GPL或GPL),是一個(gè)廣泛被使用的自由軟件許可協(xié)議條款,最初由理查德斯托曼為GNU計(jì)劃而撰寫(xiě),GPL給予了計(jì)算機(jī)程序自由軟件的定義, 任何基于GPL軟件開(kāi)發(fā)衍生的產(chǎn)品在發(fā)布時(shí)必須采用GPL許可證方式,且必須公開(kāi)源代碼
Linux是自由軟件和開(kāi)放源代碼軟件發(fā)展中最著名的例子。只要遵循GNU通用公共許可證,任何個(gè)人和機(jī)構(gòu)都可以自由地使用Linux的所有底層源代碼,也可以自由地修改和再發(fā)布。隨著Linux操作系統(tǒng)飛速發(fā)展,各種集成Linux上的開(kāi)源軟件和實(shí)用工具也得到了應(yīng)用和普及,因此,Linux也成為了開(kāi)源軟件的代名詞
二、Linux下基本指令
ls 指令
語(yǔ)法: ls [選項(xiàng)][目錄或文件]
功能:對(duì)于目錄,該命令列出該目錄下的所有子目錄與文件。對(duì)于文件,將列出文件名以及其他信息
常用選項(xiàng)
-a 列出目錄下的所有文件,包括以 . 開(kāi)頭的隱含文件
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。 如:ls –d 指定目錄
-i 輸出文件的 i 節(jié)點(diǎn)的索引信息。 如 ls –ai 指定文件
-k 以 k 字節(jié)的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的詳細(xì)信息 ls -l 等價(jià)于ll
-n 用數(shù)字的 UID,GID 代替名稱(chēng)
-F 在每個(gè)文件名后附上一個(gè)字符以說(shuō)明該文件的類(lèi)型,“*”表示可執(zhí)行的普通文件;“/”表示目錄;“@”表示符號(hào)鏈接;“|”表示FIFOs;“=”表示套接字(sockets)(目錄類(lèi)型識(shí)別)
-r 對(duì)目錄反向排序
-t 以時(shí)間排序
-s 在l文件名后輸出該文件的大?。ù笮∨判?,如何找到目錄下最大的文件)
-R 列出所有子目錄下的文件。(遞歸)
-1 一行只輸出一個(gè)文件
指令演示
ls ls -l 與 ll :我們可以看到,ls只是列出文件的名稱(chēng),而ls -l 會(huì)顯示出文件的其他信息,同時(shí),在linux下,ls -l和ll命令的作用相同
ls:顯示當(dāng)前路徑下的文件或目錄的名稱(chēng),默認(rèn)不顯示隱藏文件
ll:顯示當(dāng)前路徑下的文件或目錄的更詳細(xì)的屬性信息,包括隱藏文件
ls -al (ll -a) : 當(dāng)我們加上-a選項(xiàng)之后,我們會(huì)發(fā)現(xiàn),多顯示出了三個(gè)以.開(kāi)頭的文件,他們分別為當(dāng)前目錄和上級(jí)目錄
如果我們創(chuàng)建的文件是以.開(kāi)頭的話,那么如果我們不帶-a就也不會(huì)顯示出來(lái),這類(lèi)文件被稱(chēng)為隱藏文件
ls -d : 當(dāng)我們帶上-d選項(xiàng)之后,系統(tǒng)就會(huì)顯示出目錄的信息
-d:不會(huì)進(jìn)入目錄,而是顯示目錄本身
ls -R :當(dāng)我們帶上-R選項(xiàng)之后,系統(tǒng)會(huì)直接顯示目錄里面文件的信息
知識(shí)拓展
1.在linux在寫(xiě)指令是做什么?在linux下寫(xiě)指令相當(dāng)于在windows下學(xué)習(xí)基本操作,前者是命令行,后者是圖形化界面,二者在操作系統(tǒng)層面沒(méi)有區(qū)別
2.Linux 是一款操作系統(tǒng),而操作系統(tǒng)是一個(gè)管理軟件,它通過(guò)對(duì)下管理好軟硬件資源(驅(qū)動(dòng)設(shè)備和硬件)這個(gè)手段,來(lái)達(dá)到對(duì)上(應(yīng)用軟件)提供良好的(安全的,穩(wěn)定的,高效的)運(yùn)行環(huán)境的目的
3.一個(gè)文件是數(shù)據(jù)由內(nèi)容數(shù)據(jù)和屬性數(shù)據(jù)組成,內(nèi)容數(shù)據(jù)是我們往文件中寫(xiě)入的數(shù)據(jù),而屬性數(shù)據(jù)則是指文件的大小,類(lèi)型,權(quán)限,創(chuàng)建空間等等,所以,空文件也是占用磁盤(pán)空間的,雖然沒(méi)有內(nèi)容數(shù)據(jù),但是它還要存儲(chǔ)文件的屬性數(shù)據(jù)
4.在linux在,ls -l 與ll 等價(jià),此外,其他指令與-l 搭配的復(fù)合選項(xiàng)也可以縮小,比如ls -al 可以縮寫(xiě)為ll -a
5.linux中以.開(kāi)頭的文件稱(chēng)為隱藏文件,單獨(dú)一個(gè).是當(dāng)前目錄,而…則是上級(jí)目錄
6.linux默認(rèn)情況下,黑色為普通文件,藍(lán)色為目錄,linux 的目錄相當(dāng)于windows的文件夾
pwd 命令
語(yǔ)法: pwd
功能:顯示用戶當(dāng)前所在的目錄
指令演示
cd 指令
語(yǔ)法:cd 目錄名
功能:改變工作目錄。將當(dāng)前工作目錄改變到指定的目錄下
常用選項(xiàng)
cd … : 返回上級(jí)目錄
cd ~:進(jìn)入用戶家目
cd -:返回最近訪問(wèn)目錄
指令演示
/home/XXX:叫做XXX的工作路徑,或者家目錄----特定用戶登錄時(shí),默認(rèn)所處的路徑,root用戶的家目錄叫做/root
如果我們不斷使用返回上級(jí)目錄(cd …)指令,回到根目錄之后就無(wú)法回退了,在windows下我們退到顯示磁盤(pán)界面也無(wú)法回退了,否則就只能退出,二者相似
知識(shí)拓展
1.無(wú)論是windows還是Linux,他們的磁盤(pán)的文件和目錄的結(jié)構(gòu)都是樹(shù)狀結(jié)構(gòu)(多叉樹(shù)),因?yàn)樵跇?shù)狀結(jié)構(gòu)中,我們找到一個(gè)文件或者目錄的路徑都是唯一的,那么我們就可以使用一個(gè)唯一標(biāo)識(shí)來(lái)標(biāo)記一個(gè)文件或者目錄,此外通過(guò)文件/目錄以及樹(shù)狀結(jié)構(gòu)的特點(diǎn),我們可以知道,樹(shù)的葉子節(jié)點(diǎn)可能是一個(gè)文件也可能是一個(gè)空目錄,而樹(shù)的非葉子節(jié)點(diǎn)一定是一個(gè)目錄
2.我們標(biāo)識(shí)一個(gè)文件/目錄或者進(jìn)入一個(gè)文件/目錄有兩種方式,一種是絕對(duì)路徑,它是從根目錄開(kāi)始,一級(jí)一級(jí)的逐級(jí)往下標(biāo)識(shí)/找,直到找到該文件/目錄,另一種是相對(duì)路徑,它是從當(dāng)前路徑開(kāi)始,不斷往后找,絕對(duì)路徑安全同用但是書(shū)寫(xiě)比較的麻煩,相對(duì)路徑便捷但是沒(méi)有那么安全,文件/目錄轉(zhuǎn)移位置之后可能就找不到我們想要找的文件/目錄,所以官方文檔中一般使用的是絕對(duì)路徑,而我們?nèi)粘V幸话闶褂孟鄬?duì)路徑居多,比如./a.out就是最常見(jiàn)的一個(gè)例子,因?yàn)橄鄬?duì)路徑比較簡(jiǎn)單
3.在windows中,使用\作為路徑分隔符,但是這個(gè)并不是特別規(guī)范,以為你它可能與轉(zhuǎn)義字符沖突,而Linux使用的是/作為路徑分隔符
tree 指令
語(yǔ)法:tree[選項(xiàng)][目錄](méi)
功能: 以樹(shù)狀結(jié)構(gòu)的格式列出目錄的內(nèi)容
常用選項(xiàng)
- -a 列出所有文件,包括隱藏文件、目錄
- -C在文件和目錄清單上加上彩印,便于區(qū)分文件類(lèi)型
- -d 僅列出目錄名稱(chēng),而非內(nèi)容
- -D 僅列出文件或目錄更改時(shí)間
- -L目錄樹(shù)的最大顯示深度
- -p 打印結(jié)構(gòu)的同時(shí)打印文件權(quán)限
- -l 跟隨目錄的符號(hào)鏈接,就像他們是目錄一樣,避免導(dǎo)致遞歸循環(huán)的鏈接
- -F 在每個(gè)條目后加上文件類(lèi)型的指示符(如目錄是/)
指令演示
touch 指令
語(yǔ)法:touch [選項(xiàng)]… 文件…
功能:touch命令參數(shù)可更改文檔或目錄的日期時(shí)間,包括存取時(shí)間和更改時(shí)間,或者新建一個(gè)不存在的文件
常用選項(xiàng)
-a 或–time=atime或–time=access或–time=use只更改存取時(shí)間
-c 或–no-create 不建立任何文檔
-d 使用指定的日期時(shí)間,而非現(xiàn)在的時(shí)間
-f 此參數(shù)將忽略不予處理,僅負(fù)責(zé)解決BSD版本touch指令的兼容性問(wèn)題
-m 或–time=mtime或–time=modify 只更改變動(dòng)時(shí)間
-r 把指定文檔或目錄的日期時(shí)間,統(tǒng)統(tǒng)設(shè)成和參考文檔或目錄的日期時(shí)間相同
-t 使用指定的日期時(shí)間,而非現(xiàn)在的時(shí)間
知識(shí)拓展
1.文件的時(shí)間有3種:
- 最近訪問(wèn)時(shí)間(access) : cat less等查看文件后,該時(shí)間會(huì)改變
- 最近修改時(shí)間(Modify):使用nano/vim等編譯器修改文件的內(nèi)容之后,三個(gè)時(shí)間都改變
- 最近改動(dòng)時(shí)間(Change):chmod修改文件權(quán)限或者屬性之后,這個(gè)時(shí)間會(huì)改變
2.stat指令可以顯示文件或文件系統(tǒng)的狀態(tài)
3.touch 只能用來(lái)創(chuàng)建普通文件,不能創(chuàng)建目錄
指令演示
mkdir 指令
語(yǔ)法:mkdir [選項(xiàng)] dirname…
功能:在當(dāng)前目錄下創(chuàng)建一個(gè)名為 “dirname”的目錄
常用選項(xiàng):
-p, --parents 可以是一個(gè)路徑名稱(chēng)。此時(shí)若路徑中的某些目錄尚不存在,加上此選項(xiàng)后,系統(tǒng)將自動(dòng)建立好那些尚不存在的目錄,即一次可以建立多個(gè)目錄;
指令演示
rmdir 指令
rmdir是一個(gè)與mkdir相對(duì)應(yīng)的命令。mkdir是建立目錄,而rmdir是刪除命令
語(yǔ)法:rmdir [-p][dirName]
適用對(duì)象:具有當(dāng)前目錄操作權(quán)限的所有使用者
功能:刪除空目錄
常用選項(xiàng)
-p 當(dāng)子目錄被刪除后如果父目錄也變成空目錄的話,就連帶父目錄一起刪除
指令演示
rm 指令
rm命令可以同時(shí)刪除文件或目錄
語(yǔ)法:rm [-f-i-r-v][dirName/dir]
適用對(duì)象:所有使用者
功能:刪除文件或目錄
常用選項(xiàng)
-f 即使文件屬性為只讀(即寫(xiě)保護(hù)),亦直接刪除
-i 刪除前逐一詢(xún)問(wèn)確認(rèn)
-r 刪除目錄及其下所有文件
指令演示
rm默認(rèn)刪除普通文件
rm 遞歸刪除目錄
man 指令
Linux的命令有很多參數(shù),我們不可能全記住,我們可以通過(guò)查看聯(lián)機(jī)手冊(cè)獲取幫助。訪問(wèn)Linux手冊(cè)頁(yè)的命令是man
語(yǔ)法: man [選項(xiàng)] 命令
常用選項(xiàng)
-k 根據(jù)關(guān)鍵字搜索聯(lián)機(jī)幫助
num 只在第num章節(jié)找
-a 將所有章節(jié)的都顯示出來(lái),比如 man printf 它缺省從第一章開(kāi)始搜索,知道就停止,用a選項(xiàng),當(dāng)按下q退出,他會(huì)繼續(xù)往后面搜索,直到所有章節(jié)都搜索完畢
面手冊(cè)分為8章:
1 是普通的命令
2 是系統(tǒng)調(diào)用,如open,write之類(lèi)的(通過(guò)這個(gè),至少可以很方便的查到調(diào)用這個(gè)函數(shù),需要加什么頭文件)
3 是庫(kù)函數(shù),如printf,fread4是特殊文件,也就是/dev下的各種設(shè)備文件
5 是指文件的格式,比如passwd, 就會(huì)說(shuō)明這個(gè)文件中各個(gè)字段的含義
6 是給游戲留的,由各個(gè)游戲自己定義
7 是附件還有一些變量,比如向environ這種全局變量在這里就有說(shuō)明
8 是系統(tǒng)管理用的命令,這些命令只能由root使用,如ifconfifig
知識(shí)拓展
1.man指令需要安裝之后才能夠使用,安裝的命令是" yum install -y man-pages" ,且該命令只能由root用戶來(lái)安裝或使用sudo
2.man如果不指定具體章節(jié)就會(huì)默認(rèn)從1號(hào)手冊(cè)開(kāi)始找,直到找到為止,如果指定章節(jié),就會(huì)到指定的章節(jié)中去找
3.由于Linux是用C語(yǔ)言寫(xiě)的,所以man默認(rèn)包含了C語(yǔ)言函數(shù)的手冊(cè),具體在3號(hào)手冊(cè),此外,如果我們需要查看其他語(yǔ)言,比如C++/java/python則需要現(xiàn)在在Linux安裝,也可以直接到他們的官網(wǎng)進(jìn)行查詢(xún)
4.我們使用man指令進(jìn)入文檔之后,按q鍵即可退出文檔
指令演示
cp 指令
語(yǔ)法:cp [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
功能: 復(fù)制文件或目錄
說(shuō)明: cp指令用于復(fù)制文件或目錄,如同時(shí)指定兩個(gè)以上的文件或目錄,且最后的目的地是一個(gè)已經(jīng)存在的目錄,則它會(huì)把前面指定的所有文件或目錄復(fù)制到此目錄中。若同時(shí)指定多個(gè)文件或目錄,而最后的目的地并非一個(gè)已存在的目錄,則會(huì)出現(xiàn)錯(cuò)誤信息
常用選項(xiàng)
-f 或 --force 強(qiáng)行復(fù)制文件或目錄, 不論目的文件或目錄是否已經(jīng)存在
-i 或 --interactive 覆蓋文件之前先詢(xún)問(wèn)用戶
-r遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態(tài),不屬于目錄或符號(hào)鏈接,則一律視為普通文件處理
-R 或 --recursive遞歸處理,將指定目錄下的文件及子目錄一并處理
cp指令用于復(fù)制文件或目錄,如果同時(shí)指定兩個(gè)以上的文件或目錄,且最后的目的地是一個(gè)已經(jīng)存在的文件或目錄,則他會(huì)把前面指定的所有文件或目錄復(fù)制到該目錄中,如果最后目的地不是一個(gè)已經(jīng)存在的文件或目錄,則會(huì)出現(xiàn)錯(cuò)誤信息
指令演示
復(fù)制不重名的普通文件
復(fù)制重名文件,當(dāng)復(fù)制重名文件時(shí),如果我們不希望操作系統(tǒng)向我們確認(rèn),可以使用-f選項(xiàng)類(lèi)強(qiáng)行復(fù)制
復(fù)制整個(gè)目錄及目錄一下的所有文件
mv 指令
mv命令是move的縮寫(xiě),可以用來(lái)移動(dòng)文件或者將文件改名(move (rename) fifiles),是Linux系統(tǒng)下常用的命令,經(jīng)常用來(lái)備份文件或者目錄。
語(yǔ)法: mv [選項(xiàng)] 源文件或目錄 目標(biāo)文件或目錄
功能:
1.視mv命令中第二個(gè)參數(shù)類(lèi)型的不同(是目標(biāo)文件還是目標(biāo)目錄),mv命令將文件重命名或?qū)⑵湟浦烈粋€(gè)新的
目錄中。
2.當(dāng)?shù)诙€(gè)參數(shù)類(lèi)型是文件時(shí),mv命令完成文件重命名,此時(shí),源文件只能有一個(gè)(也可以是源目錄名),它
將所給的源文件或目錄重命名為給定的目標(biāo)文件名。
3.當(dāng)?shù)诙€(gè)參數(shù)是已存在的目錄名稱(chēng)時(shí),源文件或目錄參數(shù)可以有多個(gè),mv命令將各參數(shù)指定的源文件均移至
目標(biāo)目錄中。
常用選項(xiàng)
-f :force 強(qiáng)制的意思,如果目標(biāo)文件已經(jīng)存在,不會(huì)詢(xún)問(wèn)而直接覆蓋
-i :若目標(biāo)文件 (destination) 已經(jīng)存在時(shí),就會(huì)詢(xún)問(wèn)是否覆蓋
指令演示
重命名目錄或文件
cat 指令
語(yǔ)法:cat [選項(xiàng)][文件]
功能: 查看目標(biāo)文件的內(nèi)容,即將整個(gè)文件的內(nèi)容從上到下顯示到終端(屏幕)
常用選項(xiàng)
-b 對(duì)非空輸出行編號(hào)
-n 對(duì)輸出的所有行編號(hào)
-s 不輸出多行空行
和 cat對(duì)應(yīng)的還有一個(gè)指令–tac,tac會(huì)將文件內(nèi)容從下到上顯示到終端,但是tac不能顯示行號(hào)
指令演示
為了方便指令的演示,我們使用shell腳本生成一段簡(jiǎn)單的具有一萬(wàn)行的文本文件,腳本指令入下:
cnt=0; while [ $cnt -le 10000 ] ; do echo "hello linux [$cnt]"; let cnt++; done >test.txt
不帶行號(hào)顯示
帶行號(hào)顯示
more 指令
語(yǔ)法:more [選項(xiàng)][文件]
功能:more命令,功能類(lèi)似 cat ,都是將文本的內(nèi)容顯示到終端上,但是與cat不同的是more會(huì)以全屏幕的方式顯示文本文件的內(nèi)容,當(dāng)我們按空白鍵(space)時(shí)就會(huì)往下一頁(yè)顯示,按b鍵時(shí)就會(huì)往回(back)一頁(yè)顯示,而且more還有搜索字串的功能,同時(shí),由于more命令從前往后讀取文件,因此在啟動(dòng)時(shí)就加載整個(gè)文件
常用選項(xiàng)
-n 定義屏幕大小為n行
q 退出more
+n 從第n行開(kāi)始顯示
/字符串,向下搜索“字符串”的功能
-c 從頂部清屏,然后顯示
-p 通過(guò)清除窗口而不是滾屏來(lái)對(duì)文件進(jìn)行換頁(yè),與-c類(lèi)似
-u 把文件內(nèi)容中的下劃線去掉
知識(shí)拓展
1.我們可以使用/[目標(biāo)字符串]來(lái)查找字符串,但是more只能查找處于文本后面的字符串,而不能查找處于文本前面的字符串
2.我們可以按q鍵退出查看
指令演示
指定頁(yè)面行數(shù)顯示
less 指令
less 工具也是對(duì)文件或其它輸出進(jìn)行分頁(yè)顯示的工具,應(yīng)該說(shuō)是linux正統(tǒng)查看文件內(nèi)容的工具,功能極其強(qiáng)大。less 的用法比起 more 更加的有彈性。在 more 的時(shí)候,我們并沒(méi)有辦法向前面翻, 只能往后面看但若使用了 less 時(shí),就可以使用 [pageup][pagedown] 等按鍵的功能來(lái)往前往后翻看文件,更容易用來(lái)查看一個(gè)文件的內(nèi)容!除此之外,在 less 里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜
語(yǔ)法: less [參數(shù)] 文件
功能:
less與more類(lèi)似,但使用less可以隨意瀏覽文件,而more僅能向前移動(dòng),卻不能向后移動(dòng),而且less在查看之前不會(huì)加載整個(gè)文件,對(duì)于顯示大型文件具有較高的效率
常用選項(xiàng)
-i 忽略搜索時(shí)的大小寫(xiě)
-N 顯示每行的行號(hào)
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
N:反向重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
q:quit
指令演示
向前查找
向后查找
head 指令
head 與 tail 就像它的名字一樣的淺顯易懂,它是用來(lái)顯示開(kāi)頭或結(jié)尾某個(gè)數(shù)量的文字區(qū)塊,head 用來(lái)顯示檔的開(kāi)頭至標(biāo)準(zhǔn)輸出中,而 tail 想當(dāng)然爾就是看檔案的結(jié)尾
語(yǔ)法: head [參數(shù)]… [文件]…
功能:head 用來(lái)顯示檔案的開(kāi)頭至標(biāo)準(zhǔn)輸出中,默認(rèn)head命令打印其相應(yīng)文件的開(kāi)頭10行。
常用選項(xiàng):-n<行數(shù)> 顯示的行數(shù)
指令演示
tail 指令
tail 命令從指定點(diǎn)開(kāi)始將文件寫(xiě)到標(biāo)準(zhǔn)輸出.使用tail命令的-f選項(xiàng)可以方便的查閱正在改變的日志文件,tail -f fifilename會(huì)把fifilename里最尾部的內(nèi)容顯示在屏幕上,并且不但刷新,使你看到最新的文件內(nèi)容.
語(yǔ)法: tail[必要參數(shù)][選擇參數(shù)][文件]
功能: 用于顯示指定文件末尾內(nèi)容,不指定文件時(shí),作為輸入信息進(jìn)行處理。常用查看日志文件。
常用選項(xiàng):
-f 循環(huán)讀取
-n<行數(shù)> 顯示行數(shù)
指令演示
知識(shí)拓展
1.tail命令從指定點(diǎn)開(kāi)始將文件寫(xiě)到標(biāo)準(zhǔn)輸出
2.使用tail命令的-f 選項(xiàng)可以方便的查閱正在改變的日志文件
3.tail -f filename 會(huì)把filename里最尾部的內(nèi)容顯示到屏幕上,并且會(huì)自動(dòng)刷新,使你看到最新的文件內(nèi)容
4.顯示文件中間位置的數(shù)據(jù)的兩種方式:
重定位
我們可以先使用重定位>將head指令的數(shù)據(jù)報(bào)錯(cuò)到一個(gè)臨時(shí)文件中,然后再使用tail指令取出臨時(shí)文件尾部的數(shù)據(jù),這些數(shù)據(jù)就是我們需要的中間的數(shù)據(jù),我們以取出100行到110行數(shù)據(jù)為例:
但是我們發(fā)現(xiàn)需這種方式需要進(jìn)行數(shù)據(jù)拷貝和產(chǎn)生臨時(shí)文件夾,在時(shí)間和空間上有一定的消耗,所以我們采用管道的方式
管道
我們的在linux中管道就是用于傳輸數(shù)據(jù)的一種手段,它分為入口和出口,head和tail都是從文件中讀取數(shù)據(jù),然后輸出到終端,我們可以將head和tail用管代進(jìn)行連接,所以head從文件中讀取的數(shù)據(jù)會(huì)直接流入到管道中,然后tail從管道讀取數(shù)據(jù),然后輸出到終端上
date 指令
date顯示
date 指定格式顯示時(shí)間: date +%Y:%m:%d
date 用法:date [OPTION]… [+FORMAT]
1.在顯示方面,使用者可以設(shè)定欲顯示的格式,格式設(shè)定為一個(gè)加號(hào)后接數(shù)個(gè)標(biāo)記,其中常用的標(biāo)記列表如下
%H : 小時(shí)(00…23)
%M : 分鐘(00…59)
%S : 秒(00…61)
%X : 相當(dāng)于 %H:%M:%S
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相當(dāng)于 %Y-%m-%d
2.在設(shè)定時(shí)間方面
date -s //設(shè)置當(dāng)前時(shí)間,只有root權(quán)限才能設(shè)置,其他只能查看。
date -s 20080523 //設(shè)置成20080523,這樣會(huì)把具體時(shí)間設(shè)置成空00:00:00
date -s 01:01:01 //設(shè)置具體時(shí)間,不會(huì)對(duì)日期做更改
date -s “01:01:01 2008-05-23″ //這樣可以設(shè)置全部時(shí)間
date -s “01:01:01 20080523″ //這樣可以設(shè)置全部時(shí)間
date -s “2008-05-23 01:01:01″ //這樣可以設(shè)置全部時(shí)間
date -s “20080523 01:01:01″ //這樣可以設(shè)置全部時(shí)間
3.時(shí)間戳
時(shí)間->時(shí)間戳:date +%s
時(shí)間戳->時(shí)間:date -d@時(shí)間戳數(shù)值
Unix時(shí)間戳(英文為Unix epoch, Unix time, POSIX time 或 Unix timestamp)是從1970年1月1日(UTC/GMT的
午夜)開(kāi)始所經(jīng)過(guò)的秒數(shù),不考慮閏秒,此外,由于我國(guó)處于東八區(qū),所以對(duì)應(yīng)過(guò)來(lái)我們那個(gè)時(shí)候的時(shí)間為1970年1 月1日8時(shí)0分0秒
指令演示
1.格式化顯示當(dāng)前時(shí)間
中間可以加任何形式的分隔符,但是不能夠加空格,加空格會(huì)被認(rèn)為是多個(gè)指令
2.時(shí)間戳的生成和轉(zhuǎn)換
cal 指令
cal命令可以用來(lái)顯示公歷(陽(yáng)歷)日歷。公歷是現(xiàn)在國(guó)際通用的歷法,又稱(chēng)格列歷,通稱(chēng)陽(yáng)歷?!瓣?yáng)歷”又名“太陽(yáng)
歷”,系以地球繞行太陽(yáng)一周為一年,為西方各國(guó)所通用,故又名“西歷”。
命令格式: cal [參數(shù)][月份][年份]
功能: 用于查看日歷等時(shí)間信息,如只有一個(gè)參數(shù),則表示年份(1-9999),如有兩個(gè)參數(shù),則表示月份和年份
常用選項(xiàng):
-3 顯示系統(tǒng)前一個(gè)月,當(dāng)前月,下一個(gè)月的月歷
-j 顯示在當(dāng)年中的第幾天(一年日期按天算,從1月1號(hào)算起,默認(rèn)顯示當(dāng)前月在一年中的天數(shù))
-y 顯示當(dāng)前年份的日歷
指令演示
find 指令
語(yǔ)法: fifind pathname -options
功能: 用于在文件樹(shù)種查找文件,并作出相應(yīng)的處理(可能訪問(wèn)磁盤(pán))
常用選項(xiàng):-name 按照文件名查找文件
知識(shí)拓展
1.Linux下fifind命令在目錄結(jié)構(gòu)中搜索文件,并執(zhí)行指定的操作。
2.Linux下fifind命令提供了相當(dāng)多的查找條件,功能很強(qiáng)大。由于fifind具有強(qiáng)大的功能,所以它的選項(xiàng)也很多,其中大部分選項(xiàng)都值得我們花時(shí)間來(lái)了解一下。
3.即使系統(tǒng)中含有網(wǎng)絡(luò)文件系統(tǒng)( NFS),fifind命令在該文件系統(tǒng)中同樣有效,只你具有相應(yīng)的權(quán)限。
4.在運(yùn)行一個(gè)非常消耗資源的find命令時(shí),很多人都傾向于把它放在后臺(tái)執(zhí)行,因?yàn)楸闅v一個(gè)大的文件系統(tǒng)可能會(huì)花費(fèi)很長(zhǎng)的時(shí)間(這里是指30G字節(jié)以上的文件系統(tǒng))。我們進(jìn)行find搜索時(shí),可能需要訪問(wèn)磁盤(pán)進(jìn)而導(dǎo)致效率低下
指令演示
與find相關(guān)的其他指令
1.which – 用于搜索命令
2.alias --對(duì)指令進(jìn)行重命名(起別名)
需要注意的是,我們使用alias為其他指令創(chuàng)建別名是一種臨時(shí)性的,當(dāng)我們重新啟動(dòng)系統(tǒng)之后別名會(huì)失效
3.whereis-在特定的;路徑下,查找與指定文件名近似匹配的文件或指令
grep 指令
Linux grep 命令行詳解
語(yǔ)法: grep [選項(xiàng)] 搜尋字符串 文件
功能: 在文件中搜索字符串,將找到的行打印出來(lái)
常用選項(xiàng):
-i :忽略大小寫(xiě)的不同,所以大小寫(xiě)視為相同
-n :順便輸出行號(hào)
-v :反向選擇,亦即顯示出沒(méi)有 ‘搜尋字符串’ 內(nèi)容的那一行
為了方便我們演示,我們需要?jiǎng)?chuàng)建兩個(gè)文件
1.test.txt
cnt=0; while [ $cnt -le 10000 ] ; do echo "hello linux [$cnt]"; let cnt++; done >test.txt
我們做出如下修改
2.num.txt
指令演示
1.在文件中搜索字符串
2.忽略大小寫(xiě)搜索
3.反向過(guò)濾
與grep相關(guān)的其他指令
grep可以和其他指令配合并結(jié)合管道,來(lái)實(shí)現(xiàn)某些匹配工作
1.wc-總計(jì)次數(shù)
grep+wc->統(tǒng)計(jì)符合篩選條件的行數(shù)
2.sort對(duì)文本內(nèi)容進(jìn)行排序
3.uniq–取出文本相鄰的重復(fù)內(nèi)容
sort+uniq+管道->取出文本中重復(fù)的數(shù)據(jù)并排序
注意:grep,sort,uniq是將文本的內(nèi)容按照一定的條件篩選后顯示到終端,不會(huì)改變文本里面的數(shù)據(jù)
zip 指令
語(yǔ)法: zip 壓縮文件.zip 目錄或文件
功能: 將目錄或文件壓縮成zip格式
常用選項(xiàng): -r 遞 歸處理,將指定目錄下的所有文件和子目錄一并處理
拓展知識(shí)
1.我們?yōu)槭裁匆獙?duì)文件進(jìn)行打包與壓縮
便于傳輸,互聯(lián)網(wǎng)有許多大大小小的文件,將所有文件打包到一個(gè)文件中進(jìn)行傳輸可以避免小文件的丟失,從而實(shí)現(xiàn)高效傳輸,比如大學(xué)時(shí)班委對(duì)同學(xué)們提交的文件進(jìn)行打包
便于保存,將所有文件保存在一個(gè)文件便于我們對(duì)它進(jìn)行管理和保存
2.zip默認(rèn)對(duì)一個(gè)目錄進(jìn)行打包壓縮的時(shí)候,只會(huì)對(duì)目錄進(jìn)行打包壓縮,所有我們使用zip進(jìn)行打包壓縮的時(shí)候需要帶上-r選項(xiàng)
指令演示
1.打包壓縮目錄文件
2.打包壓縮普通文件
unzip 指令
語(yǔ)法:unzip[壓縮文件/目錄](méi)[選項(xiàng)]
功能:解包并解壓目錄/文件
常用選項(xiàng):-d 將文件解壓到指定目錄下
拓展知識(shí)
1.zip將文件進(jìn)行打包并壓縮,unzip對(duì)文件進(jìn)行解包并解壓
2.unzip 默認(rèn)將文件/目錄解壓到當(dāng)前路徑,加上-d可以解壓到指定路徑
指令演示
1.解壓到當(dāng)前路徑
2.解壓到指定路徑
tar 指令
語(yǔ)法:tar[選項(xiàng)][文件/目錄](méi)
目錄:將目錄或文件壓縮成tgz模式
tar [-cxtzjvf] 文件與目錄 … 參數(shù):
-c :建立一個(gè)壓縮文件的參數(shù)指令(create 的意思);
-x :解開(kāi)一個(gè)壓縮文件的參數(shù)指令!
-t :查看 tarfifile 里面的文件!不打開(kāi)壓縮文件,直接查看壓縮包里文件的內(nèi)容
-z :是否同時(shí)具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
-j :是否同時(shí)具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
-v :壓縮的過(guò)程中顯示文件!這個(gè)常用,但不建議用在背景執(zhí)行過(guò)程!解壓/壓縮的時(shí)候同步壓縮文件列表
-f :使用檔名,請(qǐng)留意,在 f 之后要立即接檔名喔!不要再加參數(shù)!
-C : 解壓到指定目錄
知識(shí)拓展:
1.我們使用tar指令的時(shí)候,-f選項(xiàng)需要放在最后面,其余的選項(xiàng)可以隨意調(diào)換位置
2.tar默認(rèn)將目錄/文件解壓到當(dāng)前路徑,解壓到其他路徑需要加上-C選項(xiàng)
3.tar格式的壓縮文件不支持解壓查看文件,使用-t選項(xiàng)即可
指令演示
1.解壓文件/目錄
2.壓縮文件過(guò)程中并顯示文件列表
3.不解壓查看文件
4.解壓文件/目錄到當(dāng)前路徑,并在解壓過(guò)程中顯示文件
5.解壓文件/目錄到指定路徑,在解壓過(guò)程不顯示文件
bc 指令
bc命令是任意精度計(jì)算器語(yǔ)言,在Linux下被當(dāng)做計(jì)算器使用,我們可以做基本的數(shù)學(xué)運(yùn)算,輸入quit即可退出bc
bc和管道結(jié)合使用
uname 指令
語(yǔ)法:uname [選項(xiàng)]
功能: uname用來(lái)獲取電腦和操作系統(tǒng)的相關(guān)信息。
補(bǔ)充說(shuō)明:uname可顯示linux主機(jī)所用的操作系統(tǒng)的版本、硬件的名稱(chēng)等基本信息。
常用選項(xiàng):
-a或–all 詳細(xì)輸出所有信息,依次為內(nèi)核名稱(chēng),主機(jī)名,內(nèi)核版本號(hào),內(nèi)核版本,硬件名,處理器類(lèi)
型,硬件平臺(tái)類(lèi)型,操作系統(tǒng)名稱(chēng)
-r可以輸出部分信息,比如內(nèi)核版本,硬件名,處理器類(lèi)型(體系結(jié)構(gòu)/cpu框架)
指令演示
其他指令
1.lscpu–查看CPU信息
2.lsmem–查看內(nèi)容信息
3.df -h–查看磁盤(pán)情況
4.who–查看linux當(dāng)前在線用戶
重要的幾個(gè)熱鍵[Tab],[ctrl]-c, [ctrl]-d
1.[Tab]按鍵—具有『命令補(bǔ)全』和『檔案補(bǔ)齊』的功能,當(dāng)我們輸入一個(gè)命令的一部分,然后按一次[tab],有的需要按兩次之后,Linux就會(huì)自動(dòng)將該指令補(bǔ)全
2.[Ctrl]-c按鍵—讓當(dāng)前的程序『停掉』終止前臺(tái)異常程序
一般用于兩個(gè)方面,一是終止一次程序,比如死循環(huán)程序
二是廢止當(dāng)前命令行
3.[ctrl] -d按鍵–退出當(dāng)前用戶(退出一層),可以取代exit
4.[ctrl] -r–搜索歷史命令,我們輸入ctrl+r,然后輸入關(guān)鍵字系統(tǒng)就會(huì)彈出對(duì)應(yīng)的歷史指令,我們按<–>即可選中
關(guān)機(jī)
語(yǔ)法:shutdown [選項(xiàng)]
常見(jiàn)選項(xiàng)
-h : 將系統(tǒng)的服務(wù)停掉后,立即關(guān)機(jī)
-r : 在將系統(tǒng)的服務(wù)停掉之后就重新啟動(dòng)
-t sec : -t 后面加秒數(shù),亦即『過(guò)幾秒后關(guān)機(jī)』的意思
我們需要注意,虛擬機(jī)需要關(guān)機(jī),但是云服務(wù)器不需要關(guān)機(jī)
三、擴(kuò)展指令
◆ 安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
◆ 文件處理命令:file、mkdir、grep、dd、fifind、mv、ls、diffff、cat、ln;
◆ 系統(tǒng)管理相關(guān)命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
◆ 網(wǎng)絡(luò)操作命令:ifconfifig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、fifinger、mailnslookup;
◆ 系統(tǒng)安全相關(guān)命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-418673.html
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-418673.html
到了這里,關(guān)于【Linux】Linux背景&&常見(jiàn)的基本指令的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!