訂閱
糾錯(cuò)
加入自媒體

Linux:知道多少東西才算入門?

到底要如何Linux入門呢?

因?yàn)長(zhǎng)inux的知識(shí)體系非常的龐大,IT行業(yè)很多領(lǐng)域都需要使用到Linux,有運(yùn)維的、有應(yīng)用程序開(kāi)發(fā)的、有驅(qū)動(dòng)開(kāi)發(fā)的、有系統(tǒng)優(yōu)化的、有搞單片機(jī)的、有做系統(tǒng)移植的、有做網(wǎng)絡(luò)產(chǎn)品的等等。

總結(jié)一句話,IT的很大部分從業(yè)者都需要掌握Linux的部分知識(shí),但是由于每個(gè)人的從事領(lǐng)域不一樣,對(duì)Linux的要求也不一樣,這就直接導(dǎo)致,網(wǎng)上搜索學(xué)習(xí)路線有很多種,還有就是推薦的書籍很多都不利于初學(xué)者。

比如Linux命令的學(xué)習(xí),很多人都力推《鳥(niǎo)哥的私房菜》這本書,一口君在直播間多次強(qiáng)調(diào),初學(xué)者不要看這本書,不是說(shuō)這本書不好,而是,這本書其實(shí)你要當(dāng)做一本工具書來(lái)看,如果你的目標(biāo)是想快速的基于Linux做一些開(kāi)發(fā)工作,最迫切的就是快速掌握一些基本的命令,一些和開(kāi)發(fā)相關(guān)的最基礎(chǔ)的知識(shí),而不是去學(xué)習(xí)那些可能這輩子都用不到的命令。

為了讓初學(xué)者更好的學(xué)習(xí)Linux,入門Linux,一口君特地整理了Linux入門必須掌握的一些基礎(chǔ)知識(shí)點(diǎn),掌握這些知識(shí)點(diǎn)之后,就可以學(xué)習(xí)C編程的知識(shí)了,后續(xù)遇到一些不熟悉的命令和配置,只需要網(wǎng)上搜索下就可以很快上手了。

后續(xù)一口君會(huì)陸續(xù)錄制Linux入門的視頻,手把手教大家Linux入門。

持續(xù)更新中。

一、Linux操作系統(tǒng)概述

1、發(fā)展

1991 Linus Linux 0.0.1版,代碼為8K行,F(xiàn)在最新版本為5.12.4。Linux加入了GNU,整體基于GPL協(xié)議,允許開(kāi)源、分享傳播、修改。

內(nèi)核下載的地址:

https://www.kernel.org/

2、組成 kernel內(nèi)核:

核心程序,用于管理硬件設(shè)備、系統(tǒng)的線程進(jìn)程、內(nèi)存、交換空間、文件系統(tǒng)、精靈進(jìn)程(守護(hù)進(jìn)程)等。主要實(shí)現(xiàn)系統(tǒng)程序與硬件之間的控制管理功能。

Shell:

包裹在內(nèi)核之外的人機(jī)交互界面,用于用戶和內(nèi)核之間打交道的功能,類似于windows的cmd。通過(guò)Shell將輸入的命令與內(nèi)核通訊,好讓內(nèi)核可以控制硬件并正確無(wú)誤的操作工作。

Shell有著不同的分類,比如Bourne shell(sh),Korn shell(ksh)、C shell (csh)、Bourne-again shell(bash)、tcsh。其中最常用的有csh和bash。

ubuntu 16.04的terminal如下:

user applicationLinux根據(jù)程序的運(yùn)行,分為用戶空間和內(nèi)核空間,簡(jiǎn)單的理解就是,普通的應(yīng)用程序運(yùn)行在用戶空間,一些涉及到系統(tǒng)核心資源的操作的程序運(yùn)行在內(nèi)核空間,比如TCP/IP協(xié)議棧、驅(qū)動(dòng)、進(jìn)程調(diào)度、內(nèi)存管理、文件系統(tǒng)等都運(yùn)行于Linux內(nèi)核空間,

其實(shí)一些應(yīng)用程序當(dāng)需要訪問(wèn)系統(tǒng)資源的時(shí)候,必須通過(guò)系統(tǒng)調(diào)用,通過(guò)一些內(nèi)核函數(shù)將系統(tǒng)資源由內(nèi)核空間拷貝到用戶空間。

Files System:文件系統(tǒng),管理文件和目錄。

3、Linux的特性:

多用戶、多任務(wù)(進(jìn)程、線程處理),多平臺(tái),圖形化界面(x-windows)、硬件配置、通信與聯(lián)網(wǎng)、應(yīng)用程序的支持(編輯器、編輯工具、數(shù)據(jù)庫(kù)、辦公軟件、圖形處理、Internet應(yīng)用、游戲)。

二、Linux操作系統(tǒng)安裝

1、Linux的選擇

red hat:企業(yè)級(jí)的,已經(jīng)開(kāi)始收費(fèi)(商用)。

CentOS是RHEL的克隆版本。RedHat一直都提供源代碼的發(fā)行方式,CentOS就是將RedHat發(fā)行的源代碼重新編譯一次,形成一個(gè)可使用的二進(jìn)制版本。由于Linux的源代碼是GNU,所以從獲得RedHat的源代碼到編譯成新的二進(jìn)制,都是合法。只是RedHat是商標(biāo),所以必須在新的發(fā)行版里將RedHat的商標(biāo)去掉。通常搭建服務(wù)器選用CentOS。

ubuntu:桌面開(kāi)源的,比較純正的Linux,android官方指定的編譯操作系統(tǒng),發(fā)展快、已支持ARM架構(gòu)。ubuntu在開(kāi)發(fā)者中,非常受歡迎,一口君所有的文章和視頻都以u(píng)buntu為主。

2、安裝Ubuntu Desktop

Linux環(huán)境安裝篇幅較長(zhǎng),安裝詳細(xì)步驟參考這篇文章:

《linux驅(qū)動(dòng)、ARM學(xué)習(xí)環(huán)境搭建》

3、基本操作 ctrl+alt F2  可以進(jìn)入終端界面
ctrl+alt F7  進(jìn)入桌面界面
ctrl+alt+t    文本編輯

我們通常用快捷鍵ctrl+alt+t打開(kāi)一個(gè)終端,這個(gè)一定要記住。

其中:

peng    當(dāng)前用戶

ubuntu  主機(jī)名

~       當(dāng)前用戶主目錄,/home/peng,每一個(gè)用戶都會(huì)在/home下創(chuàng)建一個(gè)與用戶名同名的目錄
$       普通用戶

如果切換到管理員用戶

root  管理員
/home/peng  當(dāng)前工作目錄
#     當(dāng)前是管理員

三、Linux文件系統(tǒng)及文件基礎(chǔ)

1、文件系統(tǒng)概述

Linux 中一切皆為文件,文件系統(tǒng)用來(lái)組織計(jì)算機(jī)的文件和資料的系統(tǒng),是操作系統(tǒng)封裝的一個(gè)系統(tǒng)服務(wù)程序,實(shí)際是一個(gè)軟件程序,用來(lái)存儲(chǔ)和管理計(jì)算機(jī)文件和資料。文件系統(tǒng)分類如下:

磁盤文件系統(tǒng):NTFS,EXT3
閃存文件系統(tǒng):JFFS2,YAFFS
數(shù)據(jù)庫(kù)文件系統(tǒng):BFFS,WINFS
網(wǎng)絡(luò)文件系統(tǒng):NFS
虛擬文件系統(tǒng):VFS(Proc)

文件系統(tǒng)的功能:能定義文件的組織方式,文件的結(jié)構(gòu);提供建立和存取文件的環(huán)境(目錄和文件)

2、Linux文件系統(tǒng)及文件

EXT3:是一個(gè)日志方式的文件系統(tǒng),系統(tǒng)中的每個(gè)文件都有索引,用戶對(duì)文件的每個(gè)操作都會(huì)記錄在日志中,形成一個(gè)任務(wù)隊(duì)列。

SWAP:是交換分區(qū)的文件系統(tǒng),類似于windows的虛擬內(nèi)存,其實(shí)現(xiàn)的方式有以下兩種:第一種是進(jìn)行內(nèi)存排列像內(nèi)存池一樣,進(jìn)行優(yōu)化;第二種是把硬盤上的空間模擬成內(nèi)存。Swap是Linux 的虛擬內(nèi)存,在安裝時(shí)要設(shè)置好大小,一般設(shè)置為物理內(nèi)存的兩倍。

目錄結(jié)構(gòu)linux 的結(jié)構(gòu)是由很多文件塊區(qū)組成,與Windows分區(qū)不同。

目錄應(yīng)放置檔案內(nèi)容/bin系統(tǒng)有很多放置執(zhí)行檔的目錄,但/bin比較特殊。因?yàn)椋痓in放置的是在單人維護(hù)模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般帳號(hào)所使用,主要有:cat,chmod(修改權(quán)限), chown, date, mv, mkdir, cp, bash等等常用的指令。/boot主要放置開(kāi)機(jī)會(huì)使用到的檔案,包括Linux核心檔案以及開(kāi)機(jī)選單與開(kāi)機(jī)所需設(shè)定檔等等。Linux kernel常用的檔名為:vmlinuz ,如果使用的是grub這個(gè)開(kāi)機(jī)管理程式,則還會(huì)存在/boot/grub/這個(gè)目錄。/dev在Linux系統(tǒng)上,任何裝置與周邊設(shè)備都是以檔案的型態(tài)存在于這個(gè)目錄當(dāng)中。只要通過(guò)存取這個(gè)目錄下的某個(gè)檔案,就等于存取某個(gè)裝置。比較重要的檔案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等/etc系統(tǒng)主要的設(shè)定檔幾乎都放置在這個(gè)目錄內(nèi),例如人員的帳號(hào)密碼檔、各種服務(wù)的啟始檔等等。一般來(lái)說(shuō),這個(gè)目錄下的各檔案屬性是可以讓一般使用者查閱的,但是只有root有權(quán)力修改。FHS建議不要放置可執(zhí)行檔(binary)在這個(gè)目錄中。比較重要的檔案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/等等。另外,其下重要的目錄有:/etc/init.d/ :所有服務(wù)的預(yù)設(shè)啟動(dòng)script都是放在這里的,例如要啟動(dòng)或者關(guān)閉iptables的話:/etc/init.d/iptables start、/etc/init.d/ iptables stop/etc/xinetd.d/這就是所謂的super daemon管理的各項(xiàng)服務(wù)的設(shè)定檔目錄。/etc/X11/與X Window有關(guān)的各種設(shè)定檔都在這里,尤其是xorg.conf或XF86Config這兩個(gè)X Server的設(shè)定檔。/home這是系統(tǒng)預(yù)設(shè)的使用者家目錄(home directory)。在你新增一個(gè)一般使用者帳號(hào)時(shí),預(yù)設(shè)的使用者家目錄都會(huì)規(guī)范到這里來(lái)。比較重要的是,家目錄有兩種代號(hào):~ :代表當(dāng)前使用者的家目錄,而 ~guest:則代表用戶名為guest的家目錄。/lib系統(tǒng)的函式庫(kù)非常的多,而/lib放置的則是在開(kāi)機(jī)時(shí)會(huì)用到的函式庫(kù),以及在/bin或/sbin底下的指令會(huì)呼叫的函式庫(kù)而已 。什么是函式庫(kù)呢?妳可以將他想成是外掛,某些指令必須要有這些外掛才能夠順利完成程式的執(zhí)行之意。尤其重要的是/lib/modules/這個(gè)目錄,因?yàn)樵撃夸洉?huì)放置核心相關(guān)的模組(驅(qū)動(dòng)程式)。/mediamedia是媒體的英文,顧名思義,這個(gè)/media底下放置的就是可移除的裝置。包括軟碟、光碟、DVD等等裝置都暫時(shí)掛載于此。常見(jiàn)的檔名有:/media/floppy, /media/cdrom等等。/mnt如果妳想要暫時(shí)掛載某些額外的裝置,一般建議妳可以放置到這個(gè)目錄中。在古早時(shí)候,這個(gè)目錄的用途與/media相同啦。只是有了/media之后,這個(gè)目錄就用來(lái)暫時(shí)掛載用了。/opt這個(gè)是給第三方協(xié)力軟體放置的目錄 。什么是第三方協(xié)力軟體?舉例來(lái)說(shuō),KDE這個(gè)桌面管理系統(tǒng)是一個(gè)獨(dú)立的計(jì)畫,不過(guò)他可以安裝到Linux系統(tǒng)中,因此KDE的軟體就建議放置到此目錄下了。另外,如果妳想要自行安裝額外的軟體(非原本的distribution提供的),那么也能夠?qū)⒛愕能涹w安裝到這里來(lái)。不過(guò),以前的Linux系統(tǒng)中,我們還是習(xí)慣放置在/usr/local目錄下。/root系統(tǒng)管理員(root)的家目錄。之所以放在這里,是因?yàn)槿绻M(jìn)入單人維護(hù)模式而僅掛載根目錄時(shí),該目錄就能夠擁有root的家目錄,所以我們會(huì)希望root的家目錄與根目錄放置在同一個(gè)分區(qū)中。/sbinLinux有非常多指令是用來(lái)設(shè)定系統(tǒng)環(huán)境的,這些指令只有root才能夠利用來(lái)設(shè)定系統(tǒng),其他使用者最多只能用來(lái)查詢而已。放在/sbin底下的為開(kāi)機(jī)過(guò)程中所需要的,里面包括了開(kāi)機(jī)、修復(fù)、還原系統(tǒng)所需要的指令。至于某些伺服器軟體程式,一般則放置到/usr/sbin/當(dāng)中。至于本機(jī)自行安裝的軟體所產(chǎn)生的系統(tǒng)執(zhí)行檔(system binary),則放置到/usr/local/sbin/當(dāng)中了。常見(jiàn)的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。/srvsrv可以視為service的縮寫,是一些網(wǎng)路服務(wù)啟動(dòng)之后,這些服務(wù)所需要取用的資料目錄。常見(jiàn)的服務(wù)例如WWW, FTP等等。舉例來(lái)說(shuō),WWW伺服器需要的網(wǎng)頁(yè)資料就可以放置在/srv/www/里面。呵呵,看來(lái)平時(shí)我們編寫的代碼應(yīng)該放到這里了。/tmp這是讓一般使用者或者是正在執(zhí)行的程序暫時(shí)放置檔案的地方。這個(gè)目錄是任何人都能夠存取的,所以你需要定期的清理一下。當(dāng)然,重要資料不可放置在此目錄啊。因?yàn)镕HS甚至建議在開(kāi)機(jī)時(shí),應(yīng)該要將/tmp下的資料都刪除。3. Linux文件屬性:

Linux文件屬性一共7種:

類型字母說(shuō)明普通文件類型-Linux中最多的一種文件類型, 包括 純文本文件(ASCII);二進(jìn)制文件(binary);數(shù)據(jù)格式的文件(data);各種壓縮文件.第一個(gè)屬性為 [-]目錄文件d就是目錄, 能用 # cd 命令進(jìn)入的。第一個(gè)屬性為 [d],例如 [drwxrwxrwx]塊設(shè)備文件b塊設(shè)備文件 :就是存儲(chǔ)數(shù)據(jù)以供系統(tǒng)存取的接口設(shè)備,簡(jiǎn)單而言就是硬盤。例如一號(hào)硬盤的代碼是 /dev/hda1等文件。第一個(gè)屬性為 [b]字符設(shè)備c字符設(shè)備文件:即串行端口的接口設(shè)備,例如鍵盤、鼠標(biāo)等等。第一個(gè)屬性為 [c]套接字文件s這類文件通常用在網(wǎng)絡(luò)數(shù)據(jù)連接?梢詥(dòng)一個(gè)程序來(lái)監(jiān)聽(tīng)客戶端的要求,客戶端就可以通過(guò)套接字來(lái)進(jìn)行數(shù)據(jù)通信。第一個(gè)屬性為 [s],最常在 /var/run目錄中看到這種文件類型管道文件pFIFO也是一種特殊的文件類型,它主要的目的是,解決多個(gè)程序同時(shí)存取一個(gè)文件所造成的錯(cuò)誤。FIFO是first-in-first-out(先進(jìn)先出)的縮寫。第一個(gè)屬性為 [p]鏈接文件l類似Windows下面的快捷方式。第一個(gè)屬性為 [l],例如 [lrwxrwxrwx]1、普通文件

使用 ls -l 命令后,

第一列第一個(gè)字符為 "-" 的文件為普通文件.

2、目錄文件

Linux 中的目錄也是文件,目錄文件中保存著該目錄下其他文件的 inode 號(hào) 和文件名等信息,目錄文件中的每個(gè)數(shù)據(jù)項(xiàng)都是指向某個(gè)文件 inode 號(hào)的鏈接,刪除文件名就等于刪除與之對(duì)應(yīng)的鏈接。目錄文件的字體顏色是藍(lán)色,使用 ls -l 命令查看,第一個(gè)字符為"d"(directory)。

目錄文件的權(quán)限:

1)r 表明該目錄文件具有可讀權(quán)限,即可以使用 ls 命令查看該目錄的存儲(chǔ)情況;2)w 表明該目錄文件具有寫權(quán)限,即可以往該目錄下添加、修改、刪除文件;3)x 表明該目錄文件具有可執(zhí)行文件,即可以使用 cd 命令進(jìn)入到該目錄下。

可以使用 chmod 指令來(lái)改變文件的權(quán)限。

3、鏈接文件

鏈接文件一般指的是一個(gè)文件的軟連接(或符號(hào)鏈接),使用 ls -l 命令查看,第一個(gè)符號(hào)為  "l",文件名為淺藍(lán)色,如下:

這里,test_softlink 就是一個(gè)鏈接文件,從結(jié)果上還可以看到它是文件 test.txt 的軟鏈接,刪除原文件 test.txt 的話,對(duì)應(yīng)的軟鏈接文件 test_softlink 也會(huì)消失?梢允褂 ln 命令來(lái)創(chuàng)建一個(gè)文件的鏈接文件:

1)軟鏈接軟鏈接(又稱符號(hào)鏈接),使用 ln -s file file_softlink 命令可以創(chuàng)建一個(gè)文件的軟鏈接文件:

ln -s test.txt test_softlink

軟鏈接相當(dāng)于給原文件創(chuàng)建了一個(gè)快捷方式,如果刪除原文件,則對(duì)應(yīng)的軟鏈接文件也會(huì)消失。

2)硬鏈接硬鏈接,相當(dāng)于給原文件取了個(gè)別名,其實(shí)兩者是同一個(gè)文件,刪除二者中任何一個(gè),另一個(gè)不會(huì)消失;對(duì)其中任何一個(gè)進(jìn)行更改,另一個(gè)的內(nèi)容也會(huì)隨之改變,因?yàn)檫@兩個(gè)本質(zhì)上是同一個(gè)文件,只是名字不同。使用 ls -i 命令查看,可以發(fā)現(xiàn)硬鏈接的兩個(gè)文件的 inode 號(hào)是一樣的:

同樣的,使用 ln 命令可以創(chuàng)建一個(gè)文件的硬鏈接:

ln test.txt test_h(yuǎn)ardlink

4、設(shè)備文件

Linux 中的硬件設(shè)備如硬盤、鼠標(biāo)等也都被表示為文件,即為設(shè)備文件。

設(shè)備文件一般存放在 /dev/ 目錄下,文件名為黃色,如下:

設(shè)備文件分兩種:

1)塊設(shè)備文件:

塊設(shè)備文件支持以塊(block)為單位的訪問(wèn)方式。在 EXT4 文件系統(tǒng)中,一個(gè) block 通常為 4KB 的大小,也就是說(shuō)每次可以存取 4096(或其整數(shù)倍) 個(gè)字節(jié)的數(shù)據(jù)。應(yīng)用程序可以隨機(jī)訪問(wèn)塊設(shè)備文件的數(shù)據(jù),程序可以自行確定數(shù)據(jù)的位置,硬盤、軟盤等都是塊設(shè)備。使用 ls -l 命令查看,塊設(shè)備文件的第一個(gè)字符是 "b"(block)。

2)字符設(shè)備文件:

字符設(shè)備文件以字節(jié)流的方式進(jìn)行訪問(wèn),由字符設(shè)備驅(qū)動(dòng)程序來(lái)實(shí)現(xiàn)這種特性,這通常要用到 open、close、read、write 等系統(tǒng)調(diào)用。字符終端、串口和鍵盤等就是字符設(shè)備。另外,由于字符設(shè)備文件是以文件流的方式進(jìn)行訪問(wèn)的,因此可以順序讀取,但通常不支持隨機(jī)存取。使用 ls -l 命令查看,字符設(shè)備文件的第一個(gè)字符是 "c"(char)。

5、管道文件(FIFO文件)

管道文件主要用于進(jìn)程間通信,使用 ls -l 命令查看,第一個(gè)字符為 "p"(pipe)?梢允褂 mkfifo 命令來(lái)創(chuàng)建一個(gè)管道文件:

mkfifo fifo_file

在 FIFO 中可以很好地解決在無(wú)關(guān)進(jìn)程間數(shù)據(jù)交換的要求,F(xiàn)IFO 的通信方式類似于在進(jìn)程中使用文件來(lái)傳輸數(shù)據(jù),只不過(guò) FIFO 類型的文件同時(shí)具有管道的特性,在讀取數(shù)據(jù)時(shí),F(xiàn)IFO 管道中同時(shí)清除數(shù)據(jù)。

6、套接字文件

套接字文件,通常指域套接字文件,使用 ls -l 命令查看,第一個(gè)字符為 "s"。

域套接字是進(jìn)程間通信(IPC)的一種方法,是可靠的一種IPC通信,是POSIX標(biāo)準(zhǔn)的一個(gè)組件,只能用于同一主機(jī)間的通信。

后續(xù)學(xué)習(xí)進(jìn)程間通信需要學(xué)習(xí)該知識(shí)。

4. 文件顏色

常見(jiàn)的文件顏色如下:

藍(lán)色:目錄文件綠色:可執(zhí)行文件淺藍(lán)色:鏈接文件紅色:壓縮文件黃色:字符設(shè)備灰色:其他文件

1  2  3  下一頁(yè)>  
聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)