當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導(dǎo)讀]本文詳細(xì)介紹了Unix/Linux操作系統(tǒng)。

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)秀的特點:
  1. 開放性;
  2. 完全免費;
  3. 多用戶;
  4. 多任務(wù);
  5. 良好的用戶界面;
  6. 設(shè)備獨立性;
  7. 提供了豐富的網(wǎng)絡(luò)功能;
  8. 可靠的系統(tǒng)安全性;
  9. 良好的可移植性。

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ū)動器盤符,我們看到的是文件夾(目錄):

RedHat

Ubuntu

在早期的 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. 第1個字母代表文件的類型:“d” 代表文件夾、“-” 代表普通文件、“c” 代表硬件字符設(shè)備、“b” 代表硬件塊設(shè)備、“s”表示管道文件、“l(fā)” 代表軟鏈接文件。
  2. 后 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">

#include?

int?main()
{
?printf("");
?printf("");
?printf("");
?printf("");
?printf("測試\n");
?printf("");

?return?0;
}



若覺得文章對你有幫助,隨手轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動力。

END

來源:程序員編程指南,作者:不二

版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。

推薦閱讀

樹莓派Pico:僅4美元的MCU

嵌入式Linux開發(fā)板裸機程序燒寫方法總結(jié)

國產(chǎn)16位MCU的痛點,可以用這款物美價廉產(chǎn)品


→點關(guān)注,不迷路←

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉