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