超長干貨教你:輕松搞定Unix/Linux環(huán)境使用
1 Unix/Linux操作系統(tǒng)介紹
1.1 操作系統(tǒng)的作用
1.1.1 操作系統(tǒng)的目標(biāo)
-
方便:使計(jì)算機(jī)系統(tǒng)易于使用 -
有效:以更有效的方式使用計(jì)算機(jī)系統(tǒng)資源 -
擴(kuò)展:方便用戶有效開發(fā)、測試和引進(jìn)新功能
1.1.2 操作系統(tǒng)的地位
操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)中承上啟下的地位:向下封裝硬件,向上提供操作接口。
1.2 Unix/Linux操作系統(tǒng)介紹
1.2.1 Unix家族
-
1965:貝爾實(shí)驗(yàn)室(Bell Labs)加入一項(xiàng)由通用電氣和麻省理工學(xué)院合作的計(jì)劃,該計(jì)劃要建立一套多使用者、多任務(wù)、多層次的MULTICS操作系統(tǒng)。后來因?yàn)轫?xiàng)目太為復(fù)雜失敗。 -
1969:其主要開發(fā)者Thompson(后被稱為UNIX之父)和Ritchie領(lǐng)導(dǎo)一組開發(fā)者,開發(fā)了一個(gè)新的多任務(wù)操作系統(tǒng)—UNICS,后來被改名為Unix,最初的Unix是用B語言和匯編語言混合編寫而成。 -
1971:兩人在貝爾實(shí)驗(yàn)室共同發(fā)明了C語言,并于1973用C語言重寫了Unix。 -
1974:UNIX第一次出現(xiàn)在貝爾實(shí)驗(yàn)室以外。此后UNIX被政府機(jī)關(guān),研究機(jī)構(gòu),企業(yè)和大學(xué)注意到,并逐漸流行開來。 -
1980:有兩個(gè)最主要的Unix的版本線,一個(gè)是Berkeley的BSD UNIX,另一個(gè)是AT&T的Unix,兩者的競爭最終引發(fā)了Unix的戰(zhàn)爭,最終導(dǎo)致Unix出現(xiàn)各種各樣的變種。 -
1982:AT&T基于版本7開發(fā)了UNIX System Ⅲ的第一個(gè)商業(yè)版本,并不再開源。 -
1992~2001:由于版權(quán)問題,AT&T公司與BSD開發(fā)組開始了一場將近10年的版權(quán)官司。UNIX由于其昂貴的費(fèi)用,僅局限于大型機(jī)的應(yīng)用;BSD因?yàn)榘鏅?quán)問題,失去了寶貴的發(fā)展時(shí)期。
1.2.2 Linux家族
-
Minix(mini-UNIX)最初是由Andrew Tanenbaum教授,仿照4.3BSD的源代碼,白手起家完成了12000行C語言的編寫工作這個(gè)系統(tǒng)只是一個(gè)教學(xué)工具,沒有什么實(shí)際應(yīng)用價(jià)值。 -
1990年,Linus Torvalds決定編寫一個(gè)自己的Minix內(nèi)核,初名為Linus' Minix,意為Linus的Minix內(nèi)核,后來改名為Linux,此內(nèi)核于1991年正式發(fā)布,并逐漸引起人們的注意。 -
Linux操作系統(tǒng)的誕生、發(fā)展、和成長過程依賴于五個(gè)重要支柱:unix操作系統(tǒng)、minix操作系統(tǒng)、GNU計(jì)劃、POSIX標(biāo)準(zhǔn)和互聯(lián)網(wǎng)。 -
GNU計(jì)劃:GNU是“GNU is Not Unix”的遞歸縮寫,由Richard M.Stallman于1984年創(chuàng)辦,旨在開發(fā)一個(gè)免費(fèi)、類unix的操作系統(tǒng)-GNU系統(tǒng)及其開發(fā)工具;Emacs編輯系統(tǒng)、BASH shell程序、GCC、GDB等開發(fā)工具都是GNU組織的產(chǎn)品。 -
1992年Linux與其他GNU軟件結(jié)合,完全自由的操作系統(tǒng)正式誕生。該操作系統(tǒng)往往被稱為“GNU/Linux”或簡稱Linux。 -
POSIX標(biāo)準(zhǔn):POSIX標(biāo)準(zhǔn)定義了操作系統(tǒng)應(yīng)該為應(yīng)用程序提供的接口標(biāo)準(zhǔn),POSIX標(biāo)準(zhǔn)用來統(tǒng)一Unix、Linux各分支編程接口,以提高其通用型和可移植性。
1.2.3 Linux的兩類用戶
1.2.4 Linux的遠(yuǎn)親
1.2.5 Linux和Unix的聯(lián)系
-
UNIX系統(tǒng)是工作站上最常用的操作系統(tǒng),它是一個(gè)多用戶、多任務(wù)的實(shí)時(shí)操作系統(tǒng),允許多人同時(shí)訪問計(jì)算機(jī), 并同時(shí)運(yùn)行多個(gè)任務(wù)。UNIX系統(tǒng)具有穩(wěn)定、高效、安全、方便、功能強(qiáng)大等諸多優(yōu)點(diǎn),自20世紀(jì)70年代開始便運(yùn)行在許多大型和小型計(jì)算機(jī)上。 -
UNIX雖然是一個(gè)安全、穩(wěn)定且功能強(qiáng)大的操作系統(tǒng),但它也一直是一種大型的而且對運(yùn)行平臺(tái)要求很高的操作系統(tǒng),只能在工作站或小型機(jī)上才能發(fā)揮全部功能,并且價(jià)格昂貴,對普通用戶來說是可望而不可及的,這為后來Linux的崛起提供了機(jī)會(huì),Linux是一個(gè)類UNIX操作系統(tǒng)。 -
Linux是免費(fèi)的、不受版權(quán)制約、與UNIX兼容的操作系統(tǒng)。 -
Linux在x86架構(gòu)上實(shí)現(xiàn)了UNIX系統(tǒng)的全部特性,具有多用戶多任務(wù)的能力,同時(shí)保持了高效性和穩(wěn)定性,Linux具有如下的優(yōu)秀的特點(diǎn):
-
開放性; -
完全免費(fèi); -
多用戶; -
多任務(wù); -
良好的用戶界面; -
設(shè)備獨(dú)立性; -
提供了豐富的網(wǎng)絡(luò)功能; -
可靠的系統(tǒng)安全性; -
良好的可移植性。
1.2.6 Linux內(nèi)核及發(fā)行版介紹
「1) Linux內(nèi)核版本」
內(nèi)核(kernel)是系統(tǒng)的心臟,是運(yùn)行程序和管理像磁盤和打印機(jī)等硬件設(shè)備的核心程序,它提供了一個(gè)在裸設(shè)備與應(yīng)用程序間的抽象層。
Linux內(nèi)核版本又分為穩(wěn)定版和開發(fā)版,兩種版本是相互關(guān)聯(lián),相互循環(huán):
-
穩(wěn)定版:具有工業(yè)級強(qiáng)度,可以廣泛地應(yīng)用和部署。新的穩(wěn)定版相對于較舊的只是修正一些bug或加入一些新的驅(qū)動(dòng)程序。 -
開發(fā)版:由于要試驗(yàn)各種解決方案,所以變化很快。
內(nèi)核源碼網(wǎng)址:http://www.kernel.org,所有來自全世界的對Linux源碼的修改最終都會(huì)匯總到這個(gè)網(wǎng)站,由Linus領(lǐng)導(dǎo)的開源社區(qū)對其進(jìn)行甄別和修改最終決定是否進(jìn)入到Linux主線內(nèi)核源碼中。
「2)Linux發(fā)行版本」
Linux發(fā)行版 (也被叫做 GNU/Linux 發(fā)行版) 通常包含了包括桌面環(huán)境、辦公套件、媒體播放器、數(shù)據(jù)庫等應(yīng)用軟件。
這些操作系統(tǒng)通常由Linux內(nèi)核、以及來自GNU計(jì)劃的大量的函式庫,和基于X Window的圖形界面,在X Window中用戶同樣可以通過使用鼠標(biāo)對窗口、菜單等進(jìn)行操作來完成相應(yīng)的工作。
X Window系統(tǒng)是一個(gè)非常出色的圖形窗口系統(tǒng),是類UNIX系統(tǒng)的圖形用戶界面的工業(yè)標(biāo)準(zhǔn)。X Window系統(tǒng)最重要的特征之一就是它的結(jié)構(gòu)與設(shè)備無關(guān)。
X Window系統(tǒng)的主要特點(diǎn)有如下幾點(diǎn):
-
X Window系統(tǒng)是客戶機(jī)/服務(wù)器結(jié)構(gòu)的。X Window的實(shí)現(xiàn)是與操作系統(tǒng)內(nèi)核分開的,其主要由X Server和X Client兩部分組成。 -
X Window系統(tǒng)不是Unix/Linux操作系統(tǒng)的必須的構(gòu)成部分,而只是一個(gè)可選的應(yīng)用程序組件。
1.2.7 Unix/Linux開發(fā)應(yīng)用領(lǐng)域介紹
-
Unix/Linux服務(wù)器
是目前Unix/Linux應(yīng)用最多的一個(gè)領(lǐng)域,可以提供Web、FTP、Gopher、SMTP/POP3、Proxy/Cache、DNS等服務(wù)器,支持服務(wù)器集群,支持虛擬主機(jī)、虛擬服務(wù)、VPN等。
-
嵌入式Linux系統(tǒng)
嵌入式Linux是將流行的Linux操作系統(tǒng)進(jìn)行剪裁修改,能夠在嵌入式計(jì)算機(jī)系統(tǒng)上運(yùn)行的一種操作系統(tǒng)。Linux嵌入式系統(tǒng)能夠支持多種CPU和硬件平臺(tái),性能穩(wěn)定,剪裁性好,開發(fā)和使用容易。其中包括Embedix、uCLinux、muLinux等。
-
桌面應(yīng)用
近年來,Linux系統(tǒng)特別強(qiáng)調(diào)在桌面應(yīng)用方面的改進(jìn),并且已達(dá)到相當(dāng)?shù)乃?,完全可以作為一種集辦公應(yīng)用、多媒體應(yīng)用、網(wǎng)絡(luò)應(yīng)用等多方面功能于一體的圖形界面操作系統(tǒng),在辦公應(yīng)用方面,Unix/Linux集成了openOffice、SUN公司的StarOffice以及KOffice等工具。
-
電子政務(wù)
隨著Linux的快速發(fā)展,Linux已逐漸成為Windows系統(tǒng)重要的競爭力量。尤其是Linux在安全性方面的獨(dú)特優(yōu)勢,又使得Linux在政府應(yīng)用領(lǐng)域得到很大的發(fā)展。目前一些國家正將其電子政務(wù)系統(tǒng)向Linux平臺(tái)遷移。中國政府也對Linux給予極大的支持。
2 文件系統(tǒng)
2.1 目錄和路徑
2.1.1 目錄
-
目錄是一組相關(guān)文件的集合。 -
一個(gè)目錄下面除了可以存放文件之外還可以存放其他目錄,即可包含子目錄。 -
在確定文件、目錄位置時(shí),DOS和Unix/Linux都采用“路徑名+文件名”的方式。路徑反映的是目錄與目錄之間的關(guān)系。
2.1.2 路徑
Unix/Linux路徑由到達(dá)定位文件的目錄組成。在Unix/Linux系統(tǒng)中組成路徑的目錄分割符為斜杠“/”,而DOS則用反斜杠“\”來分割各個(gè)目錄。
路徑分為絕對路徑和相對路徑:
「絕對路徑」
-
絕對路徑是從目錄樹的樹根“/”目錄開始往下直至到達(dá)文件所經(jīng)過的所有節(jié)點(diǎn)目錄。 -
下級目錄接在上級目錄后面用“/”隔開。 -
注意:絕對路徑都是從“/”開始的,所以第一個(gè)字符一定是“/”。
「相對路徑」
-
相對路徑是指目標(biāo)目錄相對于當(dāng)前目錄的位置。 -
如果不在當(dāng)前目錄下,則需要使用兩個(gè)特殊目錄“.”和“”了。目錄“.”指向當(dāng)前目錄,而目錄“..”。
2.2 文件系統(tǒng)
2.2.1 Windows和Linux文件系統(tǒng)區(qū)別
在 windows 平臺(tái)下,打開“計(jì)算機(jī)”,我們看到的是一個(gè)個(gè)的驅(qū)動(dòng)器盤符:
每個(gè)驅(qū)動(dòng)器都有自己的根目錄結(jié)構(gòu),這樣形成了多個(gè)樹并列的情形,如圖所示:
在 Linux 下,我們是看不到這些驅(qū)動(dòng)器盤符,我們看到的是文件夾(目錄):
在早期的 UNIX 系統(tǒng)中,各個(gè)廠家各自定義了自己的 UNIX 系統(tǒng)文件目錄,比較混亂。Linux 面世不久后,對文件目錄進(jìn)行了標(biāo)準(zhǔn)化,于1994年對根文件目錄做了統(tǒng)一的規(guī)范,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn)。FHS 標(biāo)準(zhǔn)規(guī)定了 Linux 根目錄各文件夾的名稱及作用,統(tǒng)一了Linux界命名混亂的局面。
和Windows操作系統(tǒng)類似,所有Unix/Linux的數(shù)據(jù)都是由文件系統(tǒng)按照樹型目錄結(jié)構(gòu)管理的。而且Unix/Linux操作系統(tǒng)同樣要區(qū)分文件的類型,判斷文件的存取屬性和可執(zhí)行屬性。
Unix/Linux也采用了樹狀結(jié)構(gòu)的文件系統(tǒng),它由目錄和目錄下的文件一起構(gòu)成。但Unix/Linux文件系統(tǒng)不使用驅(qū)動(dòng)器這個(gè)概念,而是使用單一的根目錄結(jié)構(gòu),所有的分區(qū)都掛載到單一的“/”目錄上,其結(jié)構(gòu)示意圖如圖所示:
無論何種版本的 Linux 發(fā)行版,桌面、應(yīng)用是 Linux 的外衣,文件組織、目錄結(jié)構(gòu)才是Linux的內(nèi)心。
2.2.2 Linux目錄結(jié)構(gòu)
-
/:根目錄,一般根目錄下只存放目錄,在Linux下有且只有一個(gè)根目錄。所有的東西都是從這里開始。當(dāng)你在終端里輸入“/home”,你其實(shí)是在告訴電腦,先從/(根目錄)開始,再進(jìn)入到home目錄。 -
/bin: /usr/bin: 可執(zhí)行二進(jìn)制文件的目錄,如常用的命令ls、tar、mv、cat等。 -
/boot:放置linux系統(tǒng)啟動(dòng)時(shí)用到的一些文件,如Linux的內(nèi)核文件:/boot/vmlinuz,系統(tǒng)引導(dǎo)管理器:/boot/grub。 -
/dev:存放linux系統(tǒng)下的設(shè)備文件,訪問該目錄下某個(gè)文件,相當(dāng)于訪問某個(gè)設(shè)備,常用的是掛載光驅(qū) mount /dev/cdrom /mnt。 -
/etc:系統(tǒng)配置文件存放的目錄,不建議在此目錄下存放可執(zhí)行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。 -
/home:系統(tǒng)默認(rèn)的用戶家目錄,新增用戶賬號(hào)時(shí),用戶的家目錄都存放在此目錄下,~表示當(dāng)前用戶的家目錄,~edu 表示用戶 edu 的家目錄。 -
/lib: /usr/lib: /usr/local/lib:系統(tǒng)使用的函數(shù)庫的目錄,程序在執(zhí)行過程中,需要調(diào)用一些額外的參數(shù)時(shí)需要函數(shù)庫的協(xié)助。 -
/lost+fount:系統(tǒng)異常產(chǎn)生錯(cuò)誤時(shí),會(huì)將一些遺失的片段放置于此目錄下。 -
/mnt: /media:光盤默認(rèn)掛載點(diǎn),通常光盤掛載于 /mnt/cdrom 下,也不一定,可以選擇任意位置進(jìn)行掛載。 -
/opt:給主機(jī)額外安裝軟件所擺放的目錄。 -
/proc:此目錄的數(shù)據(jù)都在內(nèi)存中,如系統(tǒng)核心,外部設(shè)備,網(wǎng)絡(luò)狀態(tài),由于數(shù)據(jù)都存放于內(nèi)存中,所以不占用磁盤空間,比較重要的目錄有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。 -
/root:系統(tǒng)管理員root的家目錄。 -
/sbin: /usr/sbin: /usr/local/sbin:放置系統(tǒng)管理員使用的可執(zhí)行命令,如fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個(gè)目錄是給系統(tǒng)管理員 root使用的命令,一般用戶只能"查看"而不能設(shè)置和使用。 -
/tmp:一般用戶或正在執(zhí)行的程序臨時(shí)存放文件的目錄,任何人都可以訪問,重要數(shù)據(jù)不可放置在此目錄下。 -
/srv:服務(wù)啟動(dòng)之后需要訪問的數(shù)據(jù)目錄,如 www 服務(wù)需要訪問的網(wǎng)頁數(shù)據(jù)存放在 /srv/www 內(nèi)。 -
/usr:應(yīng)用程序存放目錄,/usr/bin 存放應(yīng)用程序,/usr/share 存放共享數(shù)據(jù),/usr/lib 存放不能直接運(yùn)行的,卻是許多程序運(yùn)行所必需的一些函數(shù)庫文件。/usr/local: 存放軟件升級包。/usr/share/doc: 系統(tǒng)說明文件存放目錄。/usr/share/man: ?程序說明文件存放目錄。 -
/var:放置系統(tǒng)執(zhí)行過程中經(jīng)常變化的文件,如隨時(shí)更改的日志文件 /var/log,/var/log/message:所有的登錄文件存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程序或服務(wù)啟動(dòng)后,其PID存放在該目錄下。
2.3 一切皆文件
2.3.1 一切皆文件
Unix/Linux對數(shù)據(jù)文件(.mp3、.bmp),程序文件(.c、.h、*.o),設(shè)備文件(LCD、觸摸屏、鼠標(biāo)),網(wǎng)絡(luò)文件( socket ) 等的管理都抽象為文件,使用統(tǒng)一的方式方法管理。
在Unix/Linux操作系統(tǒng)中也必須區(qū)分文件類型,通過文件類型可以判斷文件屬于可執(zhí)行文件、文本文件還是數(shù)據(jù)文件。在Unix/Linux系統(tǒng)中文件可以沒有擴(kuò)展名。
2.3.2 文件分類
通常,Unix/Linux系統(tǒng)中常用的文件類型有5種:普通文件、目錄文件、設(shè)備文件、管道文件和鏈接文件。
「普通文件」
普通文件是計(jì)算機(jī)操作系統(tǒng)用于存放數(shù)據(jù)、程序等信息的文件,一般都長期存放于外存儲(chǔ)器(磁盤、磁帶等)中。普通文件一般包括文本文件、數(shù)據(jù)文件、可執(zhí)行的二進(jìn)制程序文件等。
在Unix/Linux中可以通過file命令來查看文件的類型。如果file文件后面攜帶文件名,則查看指定文件的類型,如果攜帶通配符“*”,則可以查看當(dāng)前目錄下的所有文件的類型。
「目錄文件」
Unix/Linux系統(tǒng)把目錄看成是一種特殊的文件,利用它構(gòu)成文件系統(tǒng)的樹型結(jié)構(gòu)。
目錄文件只允許系統(tǒng)管理員對其進(jìn)行修改,用戶進(jìn)程可以讀取目錄文件,但不能對它們進(jìn)行修改。
每個(gè)目錄文件至少包括兩個(gè)條目,“..”表示上一級目錄,“.”表示該目錄本身。
「設(shè)備文件」
Unix/Linux系統(tǒng)把每個(gè)設(shè)備都映射成一個(gè)文件,這就是設(shè)備文件。它是用于向I/O設(shè)備提供連接的一種文件,分為字符設(shè)備和塊設(shè)備文件。
字符設(shè)備的存取以一個(gè)字符為單位,塊設(shè)備的存取以字符塊為單位。每一種I/O設(shè)備對應(yīng)一個(gè)設(shè)備文件,存放在/dev目錄中,如行式打印機(jī)對應(yīng)/dev/lp,第一個(gè)軟盤驅(qū)動(dòng)器對應(yīng)/dev/fd0。
「管道文件」
管道文件也是Unix/Linux中較特殊的文件類型,這類文件多用于進(jìn)程間的通信。
「鏈接文件」
似于 windows 下的快捷方式,鏈接又可以分為軟鏈接(符號(hào)鏈接)和硬鏈接。
2.4 文件權(quán)限
文件權(quán)限就是文件的訪問控制權(quán)限,即哪些用戶和組群可以訪問文件以及可以執(zhí)行什么樣的操作。
Unix/Linux系統(tǒng)是一個(gè)典型的多用戶系統(tǒng),不同的用戶處于不同的地位,對文件和目錄有不同的訪問權(quán)限。為了保護(hù)系統(tǒng)的安全性,Unix/Linux系統(tǒng)除了對用戶權(quán)限作了嚴(yán)格的界定外,還在用戶身份認(rèn)證、訪問控制、傳輸安全、文件讀寫權(quán)限等方面作了周密的控制。
在 Unix/Linux中的每一個(gè)文件或目錄都包含有訪問權(quán)限,這些訪問權(quán)限決定了誰能訪問和如何訪問這些文件和目錄。
2.4.1 訪問用戶
通過設(shè)定權(quán)限可以從以下三種訪問方式限制訪問權(quán)限:
「只允許用戶自己訪問(所有者)」
所有者就是創(chuàng)建文件的用戶,用戶是所有用戶所創(chuàng)建文件的所有者,用戶可以允許所在的用戶組能訪問用戶的文件。
「允許一個(gè)預(yù)先指定的用戶組中的用戶訪問(用戶組)」
用戶都組合成用戶組,例如,某一類或某一項(xiàng)目中的所有用戶都能夠被系統(tǒng)管理員歸為一個(gè)用戶組,一個(gè)用戶能夠授予所在用戶組的其他成員的文件訪問權(quán)限。
「允許系統(tǒng)中的任何用戶訪問(其他用戶)」
用戶也將自己的文件向系統(tǒng)內(nèi)的所有用戶開放,在這種情況下,系統(tǒng)內(nèi)的所有用戶都能夠訪問用戶的目錄或文件。在這種意義上,系統(tǒng)內(nèi)的其他所有用戶就是 other 用戶類
這有點(diǎn)類似于 QQ 空間的訪問權(quán)限:
-
這個(gè) QQ 空間是屬于我的,我相當(dāng)于管理者(也就是“所有者”),我想怎么訪問就怎么訪問。 -
同時(shí),我可以設(shè)置允許 QQ 好友訪問,而這些 QQ 好友則類似于“用戶組”。 -
當(dāng)然,我可以允許所有人訪問,這里的所有人則類似于“其他用戶”。
2.4.2 訪問權(quán)限
用戶能夠控制一個(gè)給定的文件或目錄的訪問程度,一個(gè)文件或目錄可能有讀、寫及執(zhí)行權(quán)限:
「讀權(quán)限(r)」
對文件而言,具有讀取文件內(nèi)容的權(quán)限;對目錄來說,具有瀏覽目錄的權(quán)限。
「寫權(quán)限(w)」
對文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對目錄來說,具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。
「可執(zhí)行權(quán)限(x)」
對文件而言,具有執(zhí)行文件的權(quán)限;對目錄了來說該用戶具有進(jìn)入目錄的權(quán)限。
注意:通常,Unix/Linux系統(tǒng)只允許文件的屬主(所有者)或超級用戶改變文件的讀寫權(quán)限。
2.4.3 示例說明
-
第1個(gè)字母代表文件的類型:“d” 代表文件夾、“-” 代表普通文件、“c” 代表硬件字符設(shè)備、“b” 代表硬件塊設(shè)備、“s”表示管道文件、“l(fā)” 代表軟鏈接文件。 -
后 9 個(gè)字母分別代表三組權(quán)限:文件所有者、用戶者、其他用戶擁有的權(quán)限。
每一個(gè)用戶都有它自身的讀、寫和執(zhí)行權(quán)限。
-
第一組權(quán)限控制訪問自己的文件權(quán)限,即所有者權(quán)限。 -
第二組權(quán)限控制用戶組訪問其中一個(gè)用戶的文件的權(quán)限。 -
第三組權(quán)限控制其他所有用戶訪問一個(gè)用戶的文件的權(quán)限。
這三組權(quán)限賦予用戶不同類型(即所有者、用戶組和其他用戶)的讀、寫及執(zhí)行權(quán)限就構(gòu)成了一個(gè)有 9 種類型的權(quán)限組。
3 常用命令
3.1 概述
-
很多人可能在電視或電影中看到過類似的場景,黑客面對一個(gè)黑色的屏幕,上面飄著密密麻麻的字符,梆梆一頓敲,就完成了竊取資料的任務(wù)。
-
Linux 剛出世時(shí)沒有什么圖形界面,所有的操作全靠命令完成,就如同電視里的黑客那樣,充滿了神秘與晦澀。
-
近幾年來,盡管 Linux 發(fā)展得非常迅速,圖形界面越來越友好,但是在真正的開發(fā)過程中,Linux 命令行的應(yīng)用還是占有非常重要的席位,而且許多Linux功能在命令行界面要比圖形化界面下運(yùn)行的快??梢哉f不會(huì)命令行,就不算會(huì) Linux。
-
Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盤操作、文件存取、目錄操作、進(jìn)程管理、文件權(quán)限設(shè)定等。Linux 發(fā)行版本最少的命令也有 200 多個(gè),這里只介紹比較重要和使用頻率最多的命令。
3.2 命令使用方法
3.2.1 Linux 命令格式
command ?[-options] ?[parameter1] ?…
說明:
-
command:命令名,相應(yīng)功能的英文單詞或單詞的縮寫 -
[-options]:選項(xiàng),可用來對命令進(jìn)行控制,也可以省略,[]代表可選 -
parameter1 …:傳給命令的參數(shù),可以是零個(gè)一個(gè)或多個(gè)
3.2.2 查看幫助文檔
「--help」
一般是 Linux 命令自帶的幫助信息,并不是所有命令都自帶這個(gè)選項(xiàng)。
如我們想查看命令 ls 的用法:ls --help
「man」
man 是 Linux 提供的一個(gè)手冊,包含了絕大部分的命令、函數(shù)使用說明。
該手冊分成很多章節(jié)(section),使用 man 時(shí)可以指定不同的章節(jié)來瀏覽不同的內(nèi)容。
man 中各個(gè) section 意義如下:
-
Standard commands(標(biāo)準(zhǔn)命令) -
System calls(系統(tǒng)調(diào)用,如open,write) -
Library functions(庫函數(shù),如printf,fopen) -
Special devices(設(shè)備文件的說明,/dev下各種設(shè)備) -
File formats(文件格式,如passwd) -
Games and toys(游戲和娛樂) -
Miscellaneous(雜項(xiàng)、慣例與協(xié)定等,例如Linux檔案系統(tǒng)、網(wǎng)絡(luò)協(xié)定、ASCII 碼;environ全局變量) -
Administrative Commands(管理員命令,如ifconfig)
man使用格式如下:
man [選項(xiàng)] ?命令名
man設(shè)置了如下的功能鍵:
如,我們想查看 ls 的用法:man 1 ls ( 1:為數(shù)字“1”,代表第 1 個(gè) section,標(biāo)準(zhǔn)命令 )
實(shí)際上,我們不用指定第幾個(gè)章節(jié)也用查看,如,man ls。但是,有這個(gè)一種情況,假如,命令的名字和函數(shù)的名字剛好重名(如:printf),它既是命令,也可以是庫函數(shù),如果,我們不指定章節(jié)號(hào),man printf,它只查看命令的用法,不會(huì)查詢函數(shù)的用法,因?yàn)?man 是按照手冊的章節(jié)號(hào)的順序進(jìn)行搜索的。
所以,使用 man 手冊時(shí),最好指定章節(jié)號(hào):
3.2.3 使用技巧
「自動(dòng)補(bǔ)全」
在敲出命令的前幾個(gè)字母的同時(shí),按下tab鍵,系統(tǒng)會(huì)自動(dòng)幫我們補(bǔ)全命令。
「歷史命令」
當(dāng)系統(tǒng)執(zhí)行過一些命令后,可按上下鍵翻看以前的命令,history將執(zhí)行過的命令列舉出來。
3.3 常用命令
3.3.1 文件管理
「1 查看文件信息:ls」
ls是英文單詞list的簡寫,其功能為列出目錄的內(nèi)容,是用戶最常用的命令之一,它類似于DOS下的dir命令。
Linux文件或者目錄名稱最長可以有256個(gè)字符,“.”代表當(dāng)前目錄,“..”代表上一級目錄,以“.”開頭的文件為隱藏文件,需要用 -a 參數(shù)才能顯示。
ls常用參數(shù):
圖中列出的信息含義如下圖所示:
與DOS下的文件操作類似,在Unix/Linux系統(tǒng)中,也同樣允許使用特殊字符來同時(shí)引用多個(gè)文件名,這些特殊字符被稱為通配符。
「2 輸出重定向命令:>」
Linux允許將命令執(zhí)行結(jié)果重定向到一個(gè)文件,本應(yīng)顯示在終端上的內(nèi)容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,則創(chuàng)建,存在則覆蓋其內(nèi)容 )
>輸出重定向會(huì)覆蓋原來的內(nèi)容,>>輸出重定向則會(huì)追加到文件的尾部。
「3 分屏顯示:more」
查看內(nèi)容時(shí),在信息過長無法在一屏上顯示時(shí),會(huì)出現(xiàn)快速滾屏,使得用戶無法看清文件的內(nèi)容,此時(shí)可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。
「4 管道:|」
管道:一個(gè)命令的輸出可以通過管道做為另一個(gè)命令的輸入。
管道我們可以理解現(xiàn)實(shí)生活中的管子,管子的一頭塞東西進(jìn)去,另一頭取出來,這里“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。
「5 清屏:clear」
clear作用為清除終端上的顯示(類似于DOS的cls清屏功能),也可使用快捷鍵:Ctrl + l ( “l(fā)” 為字母 )。
「6 切換工作目錄:cd」
在使用Unix/Linux的時(shí)候,經(jīng)常需要更換工作目錄。cd命令可以幫助用戶切換工作目錄。Linux所有的目錄和文件名大小寫敏感。
cd后面可跟絕對路徑,也可以跟相對路徑。如果省略目錄,則默認(rèn)切換到當(dāng)前用戶的主目錄。
注意:如果路徑是從根路徑開始的,則路徑的前面需要加上 “ / ”,如 “ /mnt ”,通常進(jìn)入某個(gè)目錄里的文件夾,前面不用加 ?“ / ”。
「7 顯示當(dāng)前路徑:pwd」
使用pwd命令可以顯示當(dāng)前的工作目錄,該命令很簡單,直接輸入pwd即可,后面不帶參數(shù)。
「8 創(chuàng)建目錄:mkdir」
通過mkdir命令可以創(chuàng)建一個(gè)新的目錄。參數(shù)-p可遞歸創(chuàng)建目錄。
需要注意的是新建目錄的名稱不能與當(dāng)前目錄中已有的目錄或文件同名,并且目錄創(chuàng)建者必須對當(dāng)前目錄具有寫權(quán)限。
「8 刪除目錄:rmdir」
可使用rmdir命令刪除一個(gè)目錄。必須離開目錄,并且目錄必須為空目錄,不然提示刪除失敗。
「10 刪除文件:rm」
可通過rm刪除文件或目錄。使用rm命令要小心,因?yàn)槲募h除后不能恢復(fù)。為了防止文件誤刪,可以在rm后使用-i參數(shù)以逐個(gè)確認(rèn)要?jiǎng)h除的文件。
常用參數(shù)及含義如下表所示:
「11 建立鏈接文件:ln」
-
Linux鏈接文件類似于Windows下的快捷方式。 -
鏈接文件分為軟鏈接和硬鏈接。 -
軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。 -
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
使用格式:
-
ln 源文件 鏈接文件 -
ln -s 源文件 鏈接文件
如果沒有-s選項(xiàng)代表建立一個(gè)硬鏈接文件,兩個(gè)文件占用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項(xiàng)是更常見的形式。
注意:如果軟鏈接文件和源文件不在同一個(gè)目錄,源文件要使用絕對路徑,不能使用相對路徑。
「12 查看或者合并文件內(nèi)容:cat」
「13 文本搜索:grep」
Linux系統(tǒng)中g(shù)rep命令是一種強(qiáng)大的文本搜索工具,grep允許對文本文件進(jìn)行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式為:
grep [-選項(xiàng)] ‘搜索內(nèi)容串’文件名
在grep命令中輸入字符串參數(shù)時(shí),最好引號(hào)或雙引號(hào)括起來。例如:grep‘a(chǎn) ’1.txt。
常用選項(xiàng)說明:
grep搜索內(nèi)容串可以是正則表達(dá)式。
正則表達(dá)式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯。
grep常用正則表達(dá)式:
「14 計(jì)算文件行數(shù)或字?jǐn)?shù):wc」
常用選項(xiàng)說明:
「15 查找文件:find」
find命令功能非常強(qiáng)大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。
常用用法:
「16 拷貝文件:cp」
cp命令的功能是將給出的文件或目錄復(fù)制到另一個(gè)文件或目錄中,相當(dāng)于DOS下的copy命令。
常用選項(xiàng)說明:
cp vim_configure/ code/ -ivr 把文件夾 vim_configure 拷貝到 code 目錄里:
「17 移動(dòng)文件:mv」
用戶可以使用mv命令來移動(dòng)文件或目錄,也可以給文件或目錄重命名。
常用選項(xiàng)說明:
「18 獲取文件類型:file」
Linux系統(tǒng)文件類型不是根據(jù)文件擴(kuò)展名分類的,通過file命令可以確認(rèn)文件具體類型。
「19 歸檔管理:tar」
計(jì)算機(jī)中的數(shù)據(jù)經(jīng)常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列文件歸檔到一個(gè)大文件中,也可以把檔案文件解開以恢復(fù)數(shù)據(jù)。
tar使用格式
tar ?[參數(shù)] ?打包文件名 ?文件
tar命令很特殊,其參數(shù)前面可以使用“-”,也可以不使用。
常用參數(shù):
注意:除了f需要放在參數(shù)的最后,其它參數(shù)的順序任意。
「20 文件壓縮解壓:gzip」
-
tar與gzip命令結(jié)合使用實(shí)現(xiàn)文件打包、壓縮。 -
tar只負(fù)責(zé)打包文件,但不壓縮,用gzip壓縮tar打包后的文件,其擴(kuò)展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip ?[選項(xiàng)] ?被壓縮文件
常用選項(xiàng):
tar這個(gè)命令并沒有壓縮的功能,它只是一個(gè)打包的命令,但是在tar命令中增加一個(gè)選項(xiàng)(-z)可以調(diào)用gzip實(shí)現(xiàn)了一個(gè)壓縮的功能,實(shí)行一個(gè)先打包后壓縮的過程。
「壓縮用法」:tar cvzf 壓縮包包名 文件1 文件2 ...
-z 指定壓縮包的格式為:file.tar.gz
例如:tar zcvf test.tar.gz 1.c 2.c 3.c 4.c把 1.c 2.c 3.c 4.c 壓縮成 test.tar.gz
「解壓用法」:tar zxvf 壓縮包包名
「解壓到指定目錄」:-C (大寫字母“C”)
例子:tar -xvf new.tar.gz -C ./test/ 將 new.tar.gz 解壓到當(dāng)前目錄下的 test 目錄下:
「21 文件壓縮解壓:bzip2」
-
tar與bzip2命令結(jié)合使用實(shí)現(xiàn)文件打包、壓縮(用法和gzip一樣)。 -
tar只負(fù)責(zé)打包文件,但不壓縮,用bzip2壓縮tar打包后的文件,其擴(kuò)展名一般用xxxx.tar.bz2。 -
在tar命令中增加一個(gè)選項(xiàng)(-j)可以調(diào)用bzip2實(shí)現(xiàn)了一個(gè)壓縮的功能,實(shí)行一個(gè)先打包后壓縮的過程。 -
壓縮用法:tar cjvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c) -
解壓用法:tar xjvf 壓縮包包名 (tar jxvf bk.tar.bz2)
「22 文件壓縮解壓:zip、unzip」
-
通過zip壓縮文件的目標(biāo)文件不需要指定擴(kuò)展名,默認(rèn)擴(kuò)展名為zip。 -
壓縮文件:zip ?[-r] 目標(biāo)文件(沒有擴(kuò)展名) 源文件 -
解壓文件:unzip -d 解壓后目錄文件 壓縮文件
「23 查看命令位置:which」
3.3.2 用戶、權(quán)限管理
-
用戶是Unix/Linux系統(tǒng)工作中重要的一環(huán),用戶管理包括用戶與組賬號(hào)的管理。 -
在Unix/Linux系統(tǒng)中,不論是由本機(jī)或是遠(yuǎn)程登錄系統(tǒng),每個(gè)系統(tǒng)都必須擁有一個(gè)賬號(hào),并且對于不同的系統(tǒng)資源擁有不同的使用權(quán)限。 -
Unix/Linux系統(tǒng)中的root賬號(hào)通常用于系統(tǒng)的維護(hù)和管理,它對Unix/Linux操作系統(tǒng)的所有部分具有不受限制的訪問權(quán)限。 -
在Unix/Linux安裝的過程中,系統(tǒng)會(huì)自動(dòng)創(chuàng)建許多用戶賬號(hào),而這些默認(rèn)的用戶就稱為“標(biāo)準(zhǔn)用戶”。 -
在大多數(shù)版本的Unix/Linux中,都不推薦直接使用root賬號(hào)登錄系統(tǒng)。
「1) 查看當(dāng)前用戶:whoami」
whoami該命令用戶查看當(dāng)前系統(tǒng)當(dāng)前賬號(hào)的用戶名??赏ㄟ^cat /etc/passwd查看系統(tǒng)用戶信息。
由于系統(tǒng)管理員通常需要使用多種身份登錄系統(tǒng),例如通常使用普通用戶登錄系統(tǒng),然后再以su命令切換到root身份對傳統(tǒng)進(jìn)行管理。這時(shí)候就可以使用whoami來查看當(dāng)前用戶的身份。
「2) 查看登錄用戶:who」
who命令用于查看當(dāng)前所有登錄系統(tǒng)的用戶信息。
常用選項(xiàng):
「3) 查看登錄用戶:w」
w命令也可以查看登錄當(dāng)前系統(tǒng)的用戶信息。與who命令相比,w命令的功能更強(qiáng)大,它不但可以顯示當(dāng)前有哪些用戶登錄到系統(tǒng),還可以顯示這些用戶正在進(jìn)行的操作,并給出更加詳細(xì)和科學(xué)的統(tǒng)計(jì)數(shù)據(jù)。
w命令的格式如下:
w ?[選項(xiàng)] ?[用戶名]
如果w命令攜帶用戶名,則只顯示指定用戶的信息,否則顯示當(dāng)前所有登錄用戶的信息。
常用選項(xiàng):
「4) 退出登錄賬戶:exit」
-
如果是圖形界面,退出當(dāng)前終端; -
如果是使用ssh遠(yuǎn)程登錄,退出登陸賬戶; -
如果是切換后的登陸用戶,退出則返回上一個(gè)登陸賬號(hào)。
「5) 切換用戶:su」
可以通過su命令切換用戶,su后面可以加“-”。su和su –命令不同之處在于,su -切換到對應(yīng)的用戶時(shí)會(huì)將當(dāng)前的工作目錄自動(dòng)轉(zhuǎn)換到切換后的用戶主目錄:
「注意」:如果是ubuntu平臺(tái),需要在命令前加“sudo”,如果在某些操作需要管理員才能操作,ubuntu無需切換到root用戶即可操作,只需加“sudo”即可。sudo是ubuntu平臺(tái)下允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個(gè)工具,減少了root 用戶的登陸和管理時(shí)間,提高了安全性。
「6) 添加、刪除組賬號(hào):groupadd、groupdel」
-
groupadd 新建組賬號(hào) -
groupdel 組賬號(hào) -
cat /etc/group 查看用戶組
「7) 修改用戶所在組:usermod」
使用方法:usermod -g 用戶組 用戶名
「8) 添加用戶賬號(hào):useradd」
在Unix/Linux中添加用戶賬號(hào)可以使用adduser或useradd命令,因?yàn)閍dduser命令是指向useradd命令的一個(gè)鏈接,因此,這兩個(gè)命令的使用格式完全一樣。
useradd命令的使用格式如下:
useradd ?[參數(shù)] ?新建用戶賬號(hào)
相關(guān)說明:
-
Linux每個(gè)用戶都要有一個(gè)主目錄,主目錄就是第一次登陸系統(tǒng),用戶的默認(rèn)當(dāng)前目錄(/home/用戶); -
每一個(gè)用戶必須有一個(gè)主目錄,所以用useradd創(chuàng)建用戶的時(shí)候,一定給用戶指定一個(gè)主目錄; -
用戶的主目錄一般要放到根目錄的home目錄下,用戶的主目錄和用戶名是相同的; -
如果創(chuàng)建用戶的時(shí)候,不指定組名,那么系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)和用戶名一樣的組名。
「9) 設(shè)置用戶密碼:passwd」
在Unix/Linux中,超級用戶可以使用passwd命令為普通用戶設(shè)置或修改用戶口令。用戶也可以直接使用該命令來修改自己的口令,而無需在命令后面使用用戶名。
「10) 刪除用戶:userdel」
「11) 查詢用戶登錄情況:last」
不管是哪位用戶從哪里登錄,管理員都可以通過last命令查出,以及是否有人非法登錄。
「12) 修改文件權(quán)限:chmod」
chmod 修改文件權(quán)限有兩種使用格式:字母法與數(shù)字法。
字母法:chmod u/g/o/a ?+/-/= ?rwx ?文件
chmod o+w file 給文件file的其它用戶增加寫權(quán)限:
chmod u-r file 給文件file的擁有者減去讀的權(quán)限:
chmod g=x file設(shè)置文件file的同組用戶的權(quán)限為可執(zhí)行,同時(shí)去除讀、寫權(quán)限:
數(shù)字法:“rwx” 這些權(quán)限也可以用數(shù)字來代替
如執(zhí)行:chmod u=rwx,g=rx,o=r filename
就等同于:chmod u=7,g=5,o=4 filename
chmod 751 file:
-
文件所有者:讀、寫、執(zhí)行權(quán)限 -
同組用戶:讀、執(zhí)行的權(quán)限 -
其它用戶:執(zhí)行的權(quán)限
chmod 777 file:所有用戶擁有讀、寫、執(zhí)行權(quán)限
注意:如果想遞歸所有目錄加上相同權(quán)限,需要加上參數(shù)“ -R ”。
如:chmod 777 test/ -R 遞歸 test 目錄下所有文件加 777 權(quán)限。
「13) 修改文件所有者:chown」
使用方法:chown ?用戶名 ?文件或目錄名
「14) 修改文件所屬組:chgrp」
使用方法:chgrp ?用戶組名 ?文件或目錄名
3.3.3 系統(tǒng)管理
「1) 查看當(dāng)前日歷:cal」
cal命令用于查看當(dāng)前日歷,-y顯示整年日歷:
「2) 顯示或設(shè)置時(shí)間:date」
設(shè)置時(shí)間格式(需要管理員權(quán)限):
date ?[MMDDhhmm[[CC]YY][.ss]] +format
CC為年前兩位yy為年的后兩位,前兩位的mm為月,后兩位的mm為分鐘,dd為天,hh為小時(shí),ss為秒。如:date 010203042016.55。
顯示時(shí)間格式(date '+%y,%m,%d,%H,%M,%S').
「3) 查看進(jìn)程信息:ps」
進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序,它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元。
ps命令可以查看進(jìn)程的詳細(xì)狀況,常用選項(xiàng)(選項(xiàng)可以不加“-”)如下:
「4) 動(dòng)態(tài)顯示進(jìn)程:top」
top命令用來動(dòng)態(tài)顯示運(yùn)行中的進(jìn)程。top命令能夠在運(yùn)行后,在指定的時(shí)間間隔更新顯示信息??梢栽谑褂胻op命令時(shí)加上-d
在top命令執(zhí)行后,可以按下按鍵得到對顯示的結(jié)果進(jìn)行排序:
「5) 終止進(jìn)程:kill」
kill命令指定進(jìn)程號(hào)的進(jìn)程,需要配合 ps 使用。
使用格式:
kill [-signal] pid
信號(hào)值從0到15,其中9為絕對終止,可以處理一般信號(hào)無法終止的進(jìn)程。
kill ?9133 :9133 為應(yīng)用程序所對應(yīng)的進(jìn)程號(hào)
有些進(jìn)程不能直接殺死,這時(shí)候我們需要加一個(gè)參數(shù)“ -9 ”,“ -9 ” 代表強(qiáng)制結(jié)束:
「6) 后臺(tái)程序:&、jobs、fg」
-
用戶可以將一個(gè)前臺(tái)執(zhí)行的程序調(diào)入后臺(tái)執(zhí)行,方法為:命令 & -
如果程序已經(jīng)在執(zhí)行,ctrl+z可以將程序調(diào)入后臺(tái) -
jobs查看后臺(tái)運(yùn)行程序 -
fg編號(hào)(編號(hào)為通過jobs查看的編號(hào)),將后臺(tái)運(yùn)行程序調(diào)出到前臺(tái)
「7) 關(guān)機(jī)重啟:reboot、shutdown、init」
「8) 字符界面和圖形界面切換」
在redhat平臺(tái)下,可通過命令進(jìn)行切換:
-
init 3 切換到字符界面 -
init 5 切換到圖形界面
通過快捷鍵切換(適用大部分平臺(tái)):
-
Ctrl + Alt + F2 切換到字符界面 -
Ctrl + Alt + F7 切換到圖形界面
「9) 檢測磁盤空間:df」
df命令用于檢測文件系統(tǒng)的磁盤空間占用和空余情況,可以顯示所有文件系統(tǒng)對節(jié)點(diǎn)和磁盤塊的使用情況。
「10) 檢測目錄所占磁盤空間:du」
du命令用于統(tǒng)計(jì)目錄或文件所占磁盤空間的大小,該命令的執(zhí)行結(jié)果與df類似,du更側(cè)重于磁盤的使用狀況。
du命令的使用格式如下:
du ?[選項(xiàng)] ?目錄或文件名
「11) 格式化:mkfs」
mkfs命令相當(dāng)于DOS/Windows系統(tǒng)中的格式化命令,用于創(chuàng)建指定的文件系統(tǒng)。
使用格式如下:
mkfs ?[選項(xiàng)] ?設(shè)備文件名 ?[blocks]
「12) 應(yīng)用軟件安裝和卸載」
在 Linux 操作系統(tǒng)下,幾乎所有的軟件均通過RPM 進(jìn)行安裝、卸載及管理等操作。RPM 的全稱為Redhat Package Manager ,是由Redhat公司提出的,用于管理Linux下軟件包的軟件。它是一種軟件打包發(fā)行并且實(shí)現(xiàn)自動(dòng)安裝的程序,需要用rpm程序安裝的軟件包,其后綴是.rpm,并可以對這種程序包進(jìn)行安裝、卸裝和維護(hù)。
rpm命令的使用格式如下:
rpm ? [選項(xiàng)] ?[軟件包名]
如果是在ubuntu平臺(tái),軟件的安裝可以通過互聯(lián)網(wǎng)在線安裝,更加方便快捷:
「13) 查看或配置網(wǎng)卡信息:ifconfig」
如果,我們只是敲:ifconfig,它會(huì)顯示所有網(wǎng)卡的信息:
我們可以通過ifconfig配置網(wǎng)絡(luò)參數(shù):
-
只有root才能用ifconfig配置參數(shù),其他用戶只能查看網(wǎng)絡(luò)配置 -
ifconfig 網(wǎng)絡(luò)接口名稱 [地址協(xié)議類型] [address] [參數(shù)] -
地址協(xié)議類型如:inet(IPv4),inet6(IPv6)等 -
如:ifconfig eth0 inet 192.168.10.254 netmask 255.255.255.0 up
常用參數(shù):
ifconfig配置的網(wǎng)絡(luò)參數(shù)在內(nèi)存中,計(jì)算機(jī)重新啟動(dòng)之后就失效了,如果需要持久有效就需要修改網(wǎng)絡(luò)接口的配置文件:
-
redhat修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
IPADDR=IP地址
GATEWAY=默認(rèn)網(wǎng)關(guān)
-
ubuntu修改/etc/NetworkManager/system-connections/Wired connection 1文件
[ipv4]
method=manual
addresses1=IP地址;24;默認(rèn)網(wǎng)關(guān);
「14) 測試遠(yuǎn)程主機(jī)連通性:ping」
-
ping通過ICMP協(xié)議向遠(yuǎn)程主機(jī)發(fā)送ECHO_REQUEST請求,期望主機(jī)回復(fù)ECHO_REPLY消息 -
通過ping命令可以檢查是否與遠(yuǎn)程主機(jī)建立了TCP/IP連接
使用方法:ping [參數(shù)] 遠(yuǎn)程主機(jī)IP地址
「15) 網(wǎng)絡(luò)路由設(shè)置:route」
route可以增加,修改,顯示路由信息,使用格式如下:
route [-v] [-A family] add default [gw 默認(rèn)網(wǎng)關(guān)地址] [[dev interface]]
示例:route add default gw 192.168.1.1 dev eth0
「16) 監(jiān)控網(wǎng)絡(luò)狀態(tài):netstat」
netstat命令監(jiān)控網(wǎng)絡(luò)狀態(tài),包括接口設(shè)置,IP路由,各種網(wǎng)絡(luò)協(xié)議的統(tǒng)計(jì),netstat輸出信息說明如下:
netstat常用命令參數(shù):
4 編輯器
4.1 gedit編輯器
gedit是一個(gè)Linux環(huán)境下的文本編輯器,類似windows下的寫字板程序,在不需要特別復(fù)雜的編程環(huán)境下,作為基本的文本編輯器比較合適。
4.2 vi編輯器
4.2.1 vi介紹
vi 編輯器是 Linux 系統(tǒng)中最常用的文本編輯器,vi 在Linux界有編輯器之神的美譽(yù),幾乎所有的 Linux 發(fā)行版中都包含 vi 程序。
vi 工作在字符模式下,不需要圖形界面,非常適合遠(yuǎn)程及嵌入式工作,是效率很高的文本編輯器,盡管在 Linux 上也有很多圖形界面的編輯器可用,但vi的功能是那些圖形編輯器所無法比擬的。
vim 是 vi 的升級版,它不僅兼容 vi 的所有指令,而且還有一些新的特性,例如 vim 可以撤消無限次、支持關(guān)鍵詞自動(dòng)完成、可以用不同的顏色來高亮你的代碼。vim 普遍被推崇為類 vi 編輯器中最好的一個(gè)。
vi有輸入和命令兩種工作模式。輸入模式(也叫插入模式)用于輸入字符。命令模式則是用來運(yùn)行一些編排文件、存檔以及離開vi等操作命令。當(dāng)執(zhí)行vi后,首先進(jìn)入命令模式,此時(shí)輸入的任何字符都被視為命令。
4.2.2 vi最基本操作
「1) 打開文件」
vi filename:打開或新建文件,并將光標(biāo)置于第一行行首,如果文件不存在,則會(huì)新建文件。
「2) 編輯文件」
如果通過vi打開一個(gè)已經(jīng)存在的文件,首先進(jìn)入命令模式,此時(shí)輸入的任何字符都被視為命令,不能輸入內(nèi)容。
「3) 保存文件」
一定要先退出插入模式(按Esc進(jìn)入命令模式),然后,shift + zz (按住 “shift” + 按兩下“z”鍵) 即可保存退出當(dāng)前文件。
4.2.3 vi實(shí)用命令
「1) vi的插入模式」
「2) vi的退出」
「3) vi的刪除和修改功能」
「4) vi的行定位功能」
「5) vi的文本查找功能」
「6) vi的替換功能」
「7) vi的set指令」
5 遠(yuǎn)程操作
5.1 SSH介紹
SSH為Secure Shell的縮寫,由 IETF 的網(wǎng)絡(luò)工作小組(Network Working Group)所制定;SSH 為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。
SSH是目前較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。常用于遠(yuǎn)程登錄,以及用戶之間進(jìn)行資料拷貝。
利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。SSH最初是 UNIX 系統(tǒng)上的一個(gè)程序,后來又迅速擴(kuò)展到其他操作平臺(tái)。SSH 在正確使用時(shí)可彌補(bǔ)網(wǎng)絡(luò)中的漏洞。SSH 客戶端適用于多種平臺(tái)。幾乎所有 UNIX 平臺(tái)—包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺(tái),都可運(yùn)行SSH。
使用SSH服務(wù),需要安裝相應(yīng)的服務(wù)器和客戶端??蛻舳撕头?wù)器的關(guān)系:如果,A機(jī)器想被B機(jī)器遠(yuǎn)程控制,那么,A機(jī)器需要安裝SSH服務(wù)器,B機(jī)器需要安裝SSH客戶端。
5.2 遠(yuǎn)程登錄
5.2.1 Linux平臺(tái)相互遠(yuǎn)程
操作命令:ssh -l username hostip
注意:遠(yuǎn)程登錄的兩臺(tái)機(jī)器必須要能ping通(平通)。
首先,查看需要被遠(yuǎn)程機(jī)器的ip:
遠(yuǎn)程登錄(這里是用戶 wencong ( A 機(jī)器 ) 遠(yuǎn)程登錄 edu ( B 機(jī)器 ) ), 可以不用sudo :
SSH 告知用戶,這個(gè)主機(jī)不能識(shí)別,這時(shí)鍵入"yes",SSH 就會(huì)將相關(guān)信息,寫入" ~/.ssh/know_hosts" 中,再次訪問,就不會(huì)有這些信息了。然后輸入完口令,就可以登錄到主機(jī)了。
接著,提示輸入登陸密碼:
登陸成功:
5.2.2 Windows遠(yuǎn)程登錄Linux
如果想在 Windows 平臺(tái)下遠(yuǎn)程登錄 Linux,這時(shí)候,Windows 需要安裝 安裝相應(yīng)軟件包。這里介紹是Xmanager。
Xmanager是一款小巧、便捷的瀏覽遠(yuǎn)端X窗口系統(tǒng)的工具。它包含Xshell、Xftp等軟件:
-
Xshell:是一個(gè)Windows平臺(tái)下的SSH、TELNET和RLOGIN終端軟件。它使得用戶能輕松和安全地在Windows平臺(tái)上訪問Unix/Linux 主機(jī)。 -
Xftp:是一個(gè)應(yīng)用于 Windows 平臺(tái)的 FTP 和 SFTP 文件傳輸程序。Xftp能安全地在Unix/Linux 和 Windows 平臺(tái)之間傳輸文件。
配置Xshell,遠(yuǎn)程登錄:
Linux默認(rèn)采用的編碼格式是UTF-8,Windows默認(rèn)采用的編碼格式是ANSI(GB2312、GBK),所以需要設(shè)置一下相應(yīng)編碼:
5.3 遠(yuǎn)程傳輸文件
5.3.1 Linux平臺(tái)相互傳輸
SSH 提供了一些命令和shell用來登錄遠(yuǎn)程服務(wù)器。在默認(rèn)情況下,不允許用戶拷貝文件,但還是提供了一個(gè)“scp”命令。
本地文件復(fù)制到遠(yuǎn)程:
scp FileName RemoteUserName@RemoteHostIp:RemoteFile
scp FileName RemoteHostIp:RemoteFolder
scp FileName RemoteHostIp:RemoteFile
本地目錄復(fù)制到遠(yuǎn)程:
scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder
scp -r FolderName RemoteHostIp:RemoteFolder
遠(yuǎn)程文件復(fù)制到本地:
scp RemoteUserName@RemoteHostIp:RemoteFile FileName
scp RemoteHostIp:RemoteFolder FileName
scp RemoteHostIp:RemoteFile FileName
遠(yuǎn)程目錄復(fù)制到本地:
scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
scp -r RemoteHostIp:RemoteFolder FolderName
拷貝遠(yuǎn)程的文件:
拷貝遠(yuǎn)程的文件可以任意修改其名字:
拷貝遠(yuǎn)程的文件可以指定存放路徑:
5.3.2 Windows和Linux相互傳輸文件
6 webserver環(huán)境搭建
6.1 webserver環(huán)境搭建
http.tar.gz是用C語言編程的一個(gè)簡單版webserver。
1)把http.tar.gz拷貝到Linux環(huán)境中:
2)解壓壓縮包:
3)進(jìn)入解壓后的目錄,終端敲make編譯代碼:
4)如果是RedHat環(huán)境,需要額外配置一下防火墻:
5)root用戶啟動(dòng)或關(guān)閉web服務(wù):
6)環(huán)境測試
a)必須root用戶先啟動(dòng)web服務(wù):
b)查看web服務(wù)器所在機(jī)器的ip:
c)打開能ping通web服務(wù)器的瀏覽器:
6.2 網(wǎng)頁版HelloWorld
1)重新打開一個(gè)終端,進(jìn)入web服務(wù)器所在目錄:
2)通過vi新建hello.c文件,內(nèi)容寫如下代碼:
#include?
int?main()
{
?printf("hello?world\n");
?return?0;
}
3)退出保存hello.c后,通過gcc編譯代碼,可執(zhí)行程序的后綴名(擴(kuò)展名)一定是cgi:
-
gcc是編譯命令,放最開始位置 -
-o參數(shù)后面一定是可執(zhí)行程序名字
4)測試網(wǎng)頁版helloworld,在瀏覽器輸入:192.168.31.143/hello.cgi
5)顯示中文亂碼解決方法
Linux默認(rèn)采用的編碼格式是UTF-8,瀏覽器顯示默認(rèn)采用的編碼格式是GBK,在瀏覽器中直接設(shè)置utf-8編碼或者通過代碼指定瀏覽器為utf-8編碼。
a) 直接設(shè)置瀏覽器編碼
b) 通過代碼指定瀏覽器為utf-8編碼,代碼中加上頭部元素信息:
"content-type"?content?=?"text/html;charset=utf-8">
/?head>
#include?
int?main()
{
?printf("");
?printf("");
?printf("");
?printf("");
?printf("測試\n");
?printf("");
?return?0;
}
樹莓派Pico:僅4美元的MCU
嵌入式Linux開發(fā)板裸機(jī)程序燒寫方法總結(jié)
國產(chǎn)16位MCU的痛點(diǎn),可以用這款物美價(jià)廉產(chǎn)品
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!